Animated arms and head do not rotate with UpperTorso when UpperTorso.Waist.C0 is rotated

Expected Behavior
Arms and head “look” in the same direction as the UpperTorso when UpperTorso.Waist.C0 is rotated, even when the head and arms are being animated (UpperTorso.Waist is a motor6D, also the AnimationPriority is Enum.AnimationPriority.Action).

Example:


Actual Behavior
Arms and head look in the same direction as they were before the rotation of the UpperTorso when the arms and head are animated.

Example:

Reproduction steps

option 1

  • go to this game and observe how the arms are not looking in the same direction as the UpperTorso when you move the mouse up or down:
    TPS - Roblox

option 2

  • make an animation that has the arms and/or head rotated
  • start a playtest
  • once the game has loaded copy this into the command bar and run it:
local animator = workspace.YOUR_CHARACTER_NAME.Humanoid.Animator

local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://YOUR_ANIMTION_ID"

local animationTrack = animator:LoadAnimation(animation)
animationTrack.Looped = true
animationTrack.Priority = Enum.AnimationPriority.Action
animationTrack:Play()

task.wait(3)

local waist = workspace.YOUR_CHARACTER_NAME.UpperTorso.Waist
waist.C0 *= CFrame.Angles(45,0,0)

option 3

  • download and open this place file: bug_repro.rbxl (53.4 KB)
  • open the roblox animation editor plugin and click on the dummy
  • in the animation editor window press … > Publish to roblox
  • copy the id in the window.
  • open replicated storage and paste the id into the string value.
  • start a playtest.
  • press the button on the left, observe the animation, and then press the button on the right.

Workarounds

  • Setting workspace.AnimationWeightedBlendFix to disabled.
  • Setting workspace.Retargeting to disabled.

Issue Area: Engine
Issue Type: Display
Impact: High
Frequency: Constantly
Date First Experienced: 2022-10-02 10:35 (+0:00)
Date Last Experienced: 2022-10-08 5:32 (+10:00)

18 Likes

We’ve filed a ticket to our internal database, and we’ll follow up when we have an update.

Thanks for the report!

15 Likes

I’ve experienced this issue as well. Setting Workspace.AnimationWeightedBlendFix to ‘disabled’ serves as a temporary fix but hopefully the official fix comes soon as the AnimationWeightedBlendFix property is slated to be removed on November 1, 2022.

5 Likes

This happens for every limb, not just the upper torso and head. Happens with the arms and legs as well.

Apparrently, another work around is to change the animation to the Core priority, but this isn’t ideal. Any priority below Movement will allow some motion, but Core allows all freedom of C0.

5 Likes

this happened to me too. out of nowhere. its a studio issue with the new animations update

2 Likes

So, this happens to me, IDK how to solve it, and November 1 is coming and nothing of Roblox give a solve ;/

4 Likes

Like @InfiniteEffect said, you could temporarily set Workspace.AnimationWeightedBlendFix to disabled to fix this issue for now.

4 Likes

This has now been removed so we’re back on the search for an alternative solution.

Edit:

as per suggestion of @AllYourBlox , setting workspace.Retargetting to disabled will fix this issue.

9 Likes

We’re actively exploring ways to make it easier to do procedural animation through Lua code that will actually replicate to the server and other clients. You can currently animate joints via Lua by updating the Motor6D.Transform property on RunService.Stepped, but if done from a LocalScript on your own character, it will not replicate to the Server or to other clients. It requires manual replication via RemoteEvents, which is cumbersome.

Motor6D.C0 and Motor6D.C1 are the part-to-joint-pivot CFrames that are initialized when your character spawns, from pairs of attachments that have “RigAttachment” in their names. Local changes to them don’t replicate either. These values aren’t meant to be animated; there is a separate animatable Transform property sandwiched between them that is intended changed every frame. A Motor6D’s three CFrames all get multiplied together in the order C0 * Transform * C1:Inverse() when the joints are evaluated, so anything you would have done to C0 directly should instead be done as a post-multiply using Transform. The Animator also sets Transform, so if you’re blending a procedural change with animation changes, you may not want to just set (overwrite) Transform, you may need to modify it instead.

Wherever possible though, animation should be done with animations, not code. There is no mechanism available right now to procedurally animate on the client from Lua and have it replicate automatically, or with temporal consistency or interpolation, to the server or other clients. Animation on the other hand is synched to a real-time clock on each machine, and interpolated, so it’s smooth.

11 Likes

Setting Workspace.Retargetting to disabled does infact unlock the arms, but it won’t stay disabled for me. If I set it to disabled, it switches to default in player or if I restart studio. If anybody else is having this issue, you can set it to disabled during runtime with this code:

game.Workspace.Retargeting = Enum.AnimatorRetargetingMode.Disabled
7 Likes

There is easy fix, just set the animation priority to core and then to whatever you want.

Example: Animation fix - YouTube

2 Likes

I used this workaround several months ago, but it still doesn’t solve the root cause.

2 Likes

I am also experiencing this issue. I am very upset that not only has Roblox forced AnimationWeightBlendedFix onto us, but will also presumably force Retargeting onto us. While retargeting mostly fixes the issue, I am completely unsure how to make arms rotate with the torso with it enabled. I need that to make the weapon I’m holding point towards the way the torso is orientated.

EDIT: It would seem that using Motor6D.Transform mostly resolves the issue

4 Likes

Retargeting is fine and does not cause issues for me. Am I not aware of an issue?

I will test this again in case they applied a fix.

1 Like

I tried this, the arms just look like they are frozen. They don’t react to the animation.

3 Likes

I was having this problem too, thank you!

3 Likes

I am also having this issue! I hope it is resolved soon. :slight_smile:

1 Like

To fix this issue you need to set Workspace.Retargetting to disabled.

Furthermore, from my tests, animations made before Workspace.Retargetting was added will work fine with changes to C0 even if it is enabled

2 Likes

Currently having a same problem there.

Retargeting seems to work fine but only in Studio, in the published game the animations still break.