脚本控制动画片段
概述
本指南介绍如何在资产库查找动画片段、在空间中配置动画,并通过 LUA 脚本播放动画。
步骤
-
查找动画片段
- 进入资产库浏览可用动画片段。
- 查找并添加名为 "Wave Hip Hop Dance_Wave Hip Hop Dance" 的动画片段。
-
选择合适的模型
- 资产库中的动画片段适用于人形模型,查找并放置名为 "BackRoomsCharacter01" 的人形模型到空间中。
- 资产库中的动画片段适用于人形模型,查找并放置名为 "BackRoomsCharacter01" 的人形模型到空间中。
-
绑定动画片段到模型
-
需使用社区组件 "Animation-play ability"。
-
该组件可在资产库找到。
-
将组件绑定到模型并选择要绑定的动画片段。
-
-
将模型转换为动画控制器
- 只有动画控制器才能播放动画片段。将模型设为 NPC 即可。
- 通过添加怪物组件将模型设为 NPC。
-
播放动画 创建脚本并绑定到已添加到空间的模型。
脚本设置:
- 在场景中为模型创建实体。
- 检查实体是否为动画控制器,只有动画控制器才能播放动画片段。
local _selfEntity = script:SelfEntity()
if not YaAnimatorAPI.IsAnimatorController(_selfEntity) then
return
end- 播放动画片段,获取 AnimatorControllerEntity 并调用 play 方法:
local _animatorControllerEntity = YaAnimatorAPI.Instance(_selfEntity)
local _handle = _animatorControllerEntity:Play("Wave Hip Hop Dance_Wave Hip Hop Dance")- 设置动画循环:
_handle:SetLooping(true) -
触发动画片段 可在脚本中添加事件监听器以触发动画:
local _selfEntity = script:SelfEntity()
function OnAvatarSpawned(playerId, spawnPointEntity, avatarEntity)
if not YaAnimatorAPI.IsAnimatorController(_selfEntity) then
return
end
local _animatorControllerEntity = YaAnimatorAPI.Instance(_selfEntity)
local _handle = _animatorControllerEntity:Play("Wave Hip Hop Dance_Wave Hip Hop Dance")
_handle:SetLooping(true)
end
function OnPlayerJoined(playerId)
local player = YaGame:GetPlayer(playerId)
EventHelper.AddListener(player, "SpawnedEvent", OnAvatarSpawned)
end
EventHelper.AddListener(YaGame, "PlayerJoinedEvent", OnPlayerJoined) -
保存脚本并进入试玩模式测试效果。