Search Issue Tracker

By Design

Votes

0

Found in [Package]

1.2.x

1.3.x

Issue ID

ARB-32

Regression

No

Incorrect Bone Transform values are retrieved when getting them with Script

Package: Animation Rigging

-

How to reproduce:
1. Open the attached user project “BugReporting.zip“
2. Open the “SampleScene“ Scene
3. Enter Play Mode
4. Compare the position and the rotation of the “hand.r“ and “Target“ GameObjects in the Hierarchy

Expected result: The position and rotation of the “hand.r“ and “Target“ GameObjects are the same
Actual result: The position and rotation of the “hand.r“ and “Target“ GameObjects are different

Reproducible with: 1.2.0, 1.2.1 (2021.3.27f1), 1.2.1, 1.3.0 (2022.3.2f1, 2023.1.0f1, 2023.2.0a19)

Reproduced on: macOS 13.4 (Intel), Windows 10 (by reporter)

Note: Issue is reproducible in Player

  1. Resolution Note:

    Hi, this offset you're getting when evaluating the `RigBuilder` in LateUpdate is expected in this situation.

    When the Animator evaluates, or when a PlayableGraph is manually evaluated, the default values are restored. This overrides the idle pose you had set up in your animator controller and since your idle pose had a higher shoulder position compared to your default pose, it carried over this offset in your constraint.

    The way to remedy this is to add `RigTransform` components in your transform chain. This component will sync your scene transforms in the RigBuilder AnimationStream and allow the values you animated in the `Update` loop to be used in your constraints.

    In this instance, adding GameObjects shoulder.r, arm_stretch.r, forearm_stretch.r and hand.r will allow your animation to carry over to your late update constraint.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.