How do I keep a pose after closing the animation editor?

Right now I’m trying to make my character do a pose so I can screenshot it and use the picture. I’ve tried to think of the best way to do this and I decided that I should use the default animation editor. However, when I close the animation editor, my character goes back to the default pose. I’ve looks at other topics about this but the solutions didn’t help.

2 Likes

Run the game, load and play the animation on the character.

1 Like

I don’t know how to play animations on npcs. Is there any other way I could do it or should I just look for scripts in resources?

This is so scuffed lol. So, put the posed rig right in the workspace (not in any folder or model or anything, just workspace) and name it “ThePosedRig” exactly. Then, while you have the animation editor open and the rig posed, copy-paste the following code into the command bar and press enter to run it.

local animdata = Instance.new("Folder", workspace)
animdata.Name = "PoseData"

for _, v in pairs(workspace.ThePosedRig:GetDescendants()) do
	if v:IsA("Motor6D") then
		local kf = Instance.new("CFrameValue", animdata)
		kf.Name = v.Name
		kf.Value = v.Transform
	end
end

game:GetService("ChangeHistoryService"):SetWaypoint("SetPosedRigData")

Yes I see the problems, but I warned you it was scuffed

This should make a folder in workspace called “PoseData”. Close the animation editor, then copy-paste the following code into the command bar and run it (be sure to get rid of the old code before doing this with Ctrl+A and then backspace!).

local data = workspace.PoseData

for _, kf in pairs(data:GetChildren()) do
	local motor = workspace.ThePosedRig:FindFirstChild(kf.Name, true)
	
	if motor then
		motor.C0 *= kf.Value
	else
		warn("Didn't find " .. kf.Name .. " in rig")
	end
end

game:GetService("ChangeHistoryService"):SetWaypoint("LoadedPose")

After running the code, the rig should have the pose you made in the animation editor. You can delete the “PoseData” folder now. You should also be able to use Ctrl+Z in case the code I sent messes up the rig (just, not with the animation editor open for some reason).

Edit: If you do this multiple times, you will need to get rid of the PoseData folder after running the second bit of code in case the pose of a different rig loads for a newer one.

11 Likes
local animation = game.Workspace.Dummy.Script:WaitForChild('Animation')

local humanoid = game.Workspace.Dummy:WaitForChild('Humanoid')

local dance = humanoid:LoadAnimation(animation)
dance:Play()

In the dummy, place a script and inside the script place an animation with its ID, but the problem is that the pose go back to it first pose when its done

2 Likes

OK, that sounds like it will work. I’l tell you how it goes.

Wow this is very useful, exactly what I was looking for, thanks for your help.

1 Like

use this plugin: https://create.roblox.com/marketplace/asset/1882309978/Legacy-Animation-Editor%3Fkeyword=&pageNumber=&pagePosition=

open it and pose character as normal, then with the plugin still open, anchor all the parts in the character model. now close the plugin and the pose will be saved

2 Likes

For those who may encounter only the warnings, or it just doesn’t work. Use this for the last code input instead:

local data = workspace.PoseData

for _, kf in pairs(data:GetChildren()) do
	for _, Part in workspace.ThePosedRig:GetChildren() do
		if Part:FindFirstChild(kf.Name, true) then
			if Part[kf.Name]:IsA("Motor6D") then
				Part[kf.Name].C0 *= kf.Value
			end
		end
	end
end

game:GetService("ChangeHistoryService"):SetWaypoint("LoadedPose")

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.