Hello, I’ve been messing around with animations that use Motor6Ds and I ran into an issue with trying to change a Motor6D’s CurrentAngle value. I have a basic script that equips then unequips a sword, and the Motor6D changes Part0 and parent based on a marker in the animation. Before the animation runs, my weapon welds to my back perfectly fine. Once the equip animation starts and hits a certain marker, the Motor6D changes Part0 to the Right Arm. When the equip animation plays again and the weapon is unequipped, the Motor6D changes Part0 back to the torso. This works, but the CurrentAngle of the motor is changed to some value that is not 0, which makes the sword look welded wrong. Here’s a section of my code:
--Weapon motors local weaponMotor = workerModule.createConnection(torso, torso, wepHold, cf(1.29086304, 2.28774834, 0.399882376, 0.48582688, 0.873950303, 0.0135400016, 0.872923017, -0.484351397, -0.058389008, -0.0444709659, 0.0401863307, -0.998202145), "Motor6D") wep.Parent = char weaponMotor.Name = "VanargandMotor" local shieldMotor = workerModule.createConnection(torso, torso, shieldRoot, cf(0, 0, 0) * ca(0, 0, 0), "Motor6D") shield.Parent = char shieldMotor.Name = "ShieldMotor" wait(4) local equipAnim = script.Equip local equipAnimTrack = hum:LoadAnimation(equipAnim) equipAnimTrack:GetMarkerReachedSignal("Weld"):Connect(function() if weaponMotor.Parent == torso then weaponMotor.Parent = rightArm weaponMotor.Part0 = rightArm weaponMotor.C0 = cf(0, -1, 0) * ca(0, rad(-90), 0) else weaponMotor.Parent = torso weaponMotor.Part0 = torso weaponMotor.C0 = cf(1.29086304, 2.28774834, 0.399882376, 0.48582688, 0.873950303, 0.0135400016, 0.872923017, -0.484351397, -0.058389008, -0.0444709659, 0.0401863307, -0.998202145) end end) wait(2) equipAnimTrack:Play() wait(3) equipAnimTrack:Play() equipAnimTrack.TimePosition = equipAnimTrack.Length equipAnimTrack:AdjustSpeed(-1)
Here’s a quick video I set up that demonstrates my problem:
Before any animations play and the sword is initially welded, the CurrentAngle in the sword’s motor is 0, as seen here:
However, after the animation plays and the sword put back on the back, the CurrentAngle is different, as seen here:
I tried setting the CurrentAngle to 0 in the script and it didn’t work. I’m able to set it to 0 in studio though. I heard some buzz online that you cannot changed CurrentAngle in parts named “Right Arm”, “Torso”, and “Left Arm”, but I’m not sure that is true. If so, that seems very weird, and maybe there should be an option to set that kind of functionality. Any ideas on how to fix this problem is appreciated!