What does C0 and C1 properties of motor6D mean?

I don’t have any problem today, i’m just confused about the C0 and C1 properties of motor6D in this case. I successfully make the head rotate up and down following my cursor as demonstrated in this video:

The thing that makes me confused is how do roblox calculate C0 and C1 because the C0 stay in the same position relative to the character even though i declare and calculate it only once which doesn’t happen with normal part CFrame.
In order to illustrate this, here is an example.
There are two parts, part1 and part2. If you do this :

part1.CFrame = part2.CFrame*CFrame.Angles(0,30,0)

the part1 position will now be inside part2 and the rotation is the same but however, in my code:

neck.C0 = originCFrame* CFrame.fromAxisAngle(originCFrame.RightVector,angle)

the neck.C0 doesn’t stay in the same position of originCFrame and i want to ask why does this occur? Hope someone can explain this phenomenon to me because i want to understand clearly what i just figured out.

If you have a weld with PartA as Part0 and PartB as Part1, then

C0 is the offset of PartB from PartA
C1 is the negative offset of PartB from PartA

C0 is added to PartA’s CFrame, C1 is subtracted from PartA’s CFrame

1 Like

but i tried to add C0 to partA’s CFrame manually and it just moves somewhere else. This is weird

not exactly added it but rather letting

neck.C0 = partA.CFrame*CFrame.Angles(0,30,0)

remember C0 and C1 are offsets, not CFrames of the actual parts.

2 Likes

Hmm, oh i get it, it offsets the CFrame relative to part0, right?

Yes that’s exactly right. They’re just added and subtracted onto the CFrame of Part0.

2 Likes

thank you for ur help, i appreciate that

1 Like