No. But if you’re not using the Transform property at all you should not use Motor6D. They’re meant for animation, and changing Motor6D.Transform is very efficient for that and we’re currently optimizing it even more. Otherwise you should just use a Weld, which has the same effect with less overhead.
If you are animating C0/C1 you probably shouldn’t that, since that avoids any of the optimizations we have for animated Motor6Ds. It’s measurably more expensive.
If they are also being controlled by an Animator, yes. Animator will still overwrite Transform before Stepped, and Transform will be applied to move the parts immediately after Stepped.
Changes made any other time will be overwritten before they can take effect.
If there is no Animator you can change Transform at any time. Stepped is still the most appropriate place, the latest possible time closest to when it is applied, where you’ll have the most up to date inputs possible.
That honestly sounds like a neat idea for a module, to set/disable replication however you want. However, it could come with some implications, like people using it for the wrong reasons when doing all that per client would be the better option.
I made System for that, which replicates every instance to server only when that instance contains “ReplicatedConnection” object. Would be this useful? If I posted that to #resources:community-resources?
Seems like some animators were maybe confused by this post, so here’s my summary:
Before Roblox would pick which side of the animation as the parentPart and the childPart based upon the assembly root part. This causes issue when root part swaps around.
Now parentPart is always Part0 and childPart is always part1
Other hot take-aways from this post:
Update animations on stepped, use transform only
Motor6D be cheap
Questions I have:
Does Motor6D velocity/desired angle/current angle do anything?
Why would you use this over a traditional hinge constraint?
Yep… Not that I’d recommend using them. If the Motor6D is not animated by an Animator or the Transform property it will function exactly as they do on the ancient legacy Motor instance that they are inherited from.
You might use the if you wanted something to have some constant rotation, it was a purely visual effect, and you wanted no amount of force to be able to stop it. Parts connected by a Motor6D are a single rigid body. The movement has no physical velocity attached to it and doesn’t apply any torque. It’s an animated weld. I’d usually use a hinge constraint instead.
Same performance cost of an animated Motor6D in general.
Best update ever. I had been dealing with this odd behaviour for a long while which lead me to either abandoning the project or create ugly solutions for those Motor behaviour.
Definitely looking forward to see how this gonna go!!
As much as I’d want to like this update, you just broke a massive amount of vehicles uploaded to Roblox, also putting tens (if not hundreds) of games on halt so we can fix our cars.
So whenever I try to animate my own custom rig with the legacy Motor6D handler, It gets weird (and frustrating real quick). Hopefully this works. Thanks.
This change just inverted all my DesiredAngle inputs…
I understand why this change has to occur but it sucks that many older games who dont update will now potentially have inverted Motor6D behavior with regard to DesiredAngle.