How do I convert Pose's CFrame to Motor6D's C1?

Making a CFrame animation converter thing and ran into an issue,
The pose’s CFrame is different from the Motor6D joint’s C1.

I need a way to fix that but idk how
For reference, this is the Pose’s CFrame
image

And this is the Motor6D’s C1 (when in animattion editor)
image

They don’t match, any way I can convert Pose’s CFrame to Motor6D C1?
Any help is gladly appreciated!

Bumping. Really need help anyone

Pose CFrame is applied to Motor6D.Transform property from the documentation.

So you can rearrange the CFrame weld equation:

Below is related but different, the function converts Part1 CFrame, to .Transform given a set of Motor6D values.

So for your case you have pose CFrame which is .Transform

--Motor6D equation given from .Transform documentation
PartParent.CFrame * CParent * Transform == PartChild.CFrame * Child
--Is equivalent to:
--If Part0 is closest to the root part
Part0.CFrame * C0 * motor.Transform = part1.CFrame * C1

--Solve for Motor6D C1
--Apply part 1 CFrame inverse both sides of the equation
 part1.CFrame:Inverse()*Part0.CFrame * C0 * motor.Transform = part1.CFrame:Inverse()* part1.CFrame * C1
--Cancel out the part1CFrame inverse
 part1.CFrame:Inverse()*Part0.CFrame * C0 * motor.Transform = CFrame.new()* C1
--Remove CFrame.new() identity CFrame does not effect the end value
 part1.CFrame:Inverse()*Part0.CFrame * C0 * motor.Transform =  C1

--Therefore
C1 = part1.CFrame:Inverse()*Part0.CFrame * C0 * motor.Transform
1 Like