AnimationController
An object which allows animations to be loaded and applied to a character or model in place of a Humanoid. Creates an Animator and loads animations to update Motor6Ds of said character to react in the way that is described within the animation asset referenced by an Animation object.
Note that the LoadAnimation() method of this class has been deprecated. Instead, you should call Animator:LoadAnimation() directly from an Animator which can be created manually in Studio and directly referenced in scripts. When the deprecated method is called from an AnimationController, the controller itself does nothing regarding the animation intended to be loaded, except to automatically generate an Animator, onto which the loading call and animation ID are transferred. In this way, the AnimationController can be thought of as nothing more than an empty shell for a child Animator object which handles any actual functionality regarding animations.
Code Samples
This code sample demonstrates how an AnimationController can be used in place of a Humanoid for non player character objects.
A basic rig is loaded using InsertService and the default Humanoid is replaced with an AnimationController. An AnimationTrack is then created and played.
local InsertService = game:GetService("InsertService")
-- Load a model for demonstration
local npcModel = InsertService:LoadAsset(516159357):GetChildren()[1]
npcModel.Name = "NPC"
npcModel.PrimaryPart.Anchored = true
npcModel:SetPrimaryPartCFrame(CFrame.new(0, 5, 0))
npcModel.Parent = workspace
-- Replace the humanoid with an animationcontroller
local humanoid = npcModel:FindFirstChildOfClass("Humanoid")
humanoid:Destroy()
local animationController = Instance.new("AnimationController")
animationController.Parent = npcModel
-- Create and load an animation
local animation = Instance.new("Animation")
animation.AnimationId = "http://www.roblox.com/asset/?id=507771019" -- Roblox dance emote
local animationTrack = animationController:LoadAnimation(animation)
-- Play the animation
animationTrack:Play()