一个允许动画被加载并应用到角色或模型的对象,取代 Humanoid 。创建一个 Animator 并加载动画来更新该角色的 Motor6Ds 以在动画资产由一个 Animation 对象引用时的方式反应。
请注意,该类的 LoadAnimation() 方法已被弃用。相反,你应该直接从 Animator:LoadAnimation() 调用 Animator ,这可以在 Studio 中手动创建并直接在脚本中引用。当淘汰的方法从 AnimationController 中调用时,控制器本身对要加载的动画无所作为,除了自动生成一个 Animator ,到其上传送加载调用和动画ID。这样, 可以被视为只是一个空壳,用于处理任何与动画相关的实际功能的孩子对象。
代码示例
这段代码示例显示了如何在非玩家角色对象中使用 AnimationController 来替换 Humanoid 。
一个基本装备使用 InsertService 加载,默认装备 Humanoid 被替换为 AnimationController 。然后创建并播放了一个 AnimationTrack 装备。
使用动画控制器来动画非玩家对象
local InsertService = game:GetService("InsertService")
-- 加载一个模型进行演示
local npcModel = InsertService:LoadAsset(516159357):GetChildren()[1]
npcModel.Name = "NPC"
npcModel.PrimaryPart.Anchored = true
npcModel:SetPrimaryPartCFrame(CFrame.new(0, 5, 0))
npcModel.Parent = workspace
-- 用动画控制器替换人形怪物
local humanoid = npcModel:FindFirstChildOfClass("Humanoid")
humanoid:Destroy()
local animationController = Instance.new("AnimationController")
animationController.Parent = npcModel
-- 创建并加载动画
local animation = Instance.new("Animation")
animation.AnimationId = "http://www.roblox.com/asset/?id=507771019" -- Roblox 舞蹈表情
local animationTrack = animationController:LoadAnimation(animation)
-- 播放动画
animationTrack:Play()