Animations affecting disabled Motor6D's

Issue Type: Animations
Impact: High
Frequency: Constantly
Date First Experienced: N/A
Date Last Experienced: 11/18/2022

Reproduction Steps:
Clone Motor6d tree under different part. Disable initial Motor6ds
TraditionalRigTree.rbxm (550.3 KB)

You can paste both this rig and the rig below into workspace to see how the animations affect the character’s arms.

Expected Behavior:
Disabled Motor6Ds are not affected by animations, even when a clone of the initial Motor6d tree exists.
Character labeled “Inverted Rig Tree” in video

Actual Behavior:
Disabled Motor6Ds are affected by animations when clone of initial Motor6d tree exists.
Character labeled “Traditional Rig Tree” in video

Workaround:
Flip the Part0 and Part1 values of Motor6ds and adjust CFrame offsets accordingly
Untenable due to some parts getting affected by multiple Motor6Ds making using the animation editor impossible.
RigTreeFlipped.rbxm (550.5 KB)

Is this just a built in behavior to allow renaming of R15 joints? If so how can I work around this without inverting the rig tree?

Additional Information

My use-case is manually setting Motor6D offsets to hold the gun in a static position, while still connected to the player’s character, in this case the head. It is connected to the head so when the players head moves with a head rotation system, the gun moves with it.

The flow is as follows:

  • On equip of a tool, create an AnimBase part connected via a Motor6D to the players head.
  • Create facsimile Motor6Ds replicating the traditional R15 Rig(Shoulder, Elbow, and Wrist. Each with Part0 set to limb above and Part1 set to the current limb) and parent to the AnimBase part
  • Create GunWeld Motor6D to attach weapon to characters hand and parent it to AnimBase part
  • Offset facsimile Motor6Ds to desired position
  • Parent it all to player
  • Disable characters true arm Motor6Ds so they aren’t affected by animations
  • On unequip, destroy AnimBase part and re-enable characters true arm Motor6Ds

Doing it this way doesn’t quite work as the character’s arms still seem to be affected by animations despite the Motor6Ds parented to characters arm parts being disabled. So I have inverted the rig tree where the Part1 and Part0 is swapped for each Motor6D parented to AnimBase. This makes animation nearly impossible as the AnimBase part is now the Part1 to the shoulder Motor6Ds and excludes many released animations which are designed for a traditional R15 rig and prevents the use off the built in animator as the AnimBase is affected by multiple Motor6Ds. I can provide more information as needed.

Before BlendedAnimationFix was released, the issue still persisted. Disabling Retargeting property does not affect the outcome either.

1 Like

We’ve filled a ticket into our internal database for this issue, and we will update you when we have further information.

Thanks for the report!

3 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.

Hello, This behavior is expected. Animation data is matched by Part0->Part1 in KeyframeSequences and CurveAnimations (with the added tweak that CurveAnimation match the whole hirearchy, not just Part0->Part1). The naming of Motor6Ds is irrelevant, and so are their position in the hierarchy. Having two or more enabled motor6ds under your character model will lead to undefined behavior.
You can achieve the desired result by moving the cloned motor6d rig out of the character model. It will not be picked up by the Animator and running AnimationTracks won’t apply to these motors.

1 Like