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.
Run the game, load and play the animation on the character.
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.
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
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.
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
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.