In AnimNode_ApplyLimits.cpp the inputs for the ConstrainAngularRange function are going to the wrong rotator values. The XYZ of the node's input vec3 is being stored in YPR of the clamped rotator, where it should be going to RPY (Yaw and Roll are swapped).

Swapping the Yaw and Roll values on the inputs of the node in the AnimGraph provides correct functionality for the constraint, but the preview ranges are shown incorrectly.

This issue was reported and tested in 4.20.3 (CL-4369336). This was reproduced in 4.21 (CL-4541578) and Main 4.22 (CL-4542756). This node was not present in 4.19.2 (CL-4033788)

Steps to Reproduce
  1. Open the UE4 Editor and create Third Person project
  2. Open the Animation BP for the Third Person Character and go to the Anim Graph
  3. Add an "Apply Limits" node between the Default State Machine and the Final Animation Pose
  4. Select "the "Apply Limits" node and add an Array Element to Angular Range Limits.
  5. Modify the Min & Max Limit values to any number and select a bone
  6. Modify chosen bone's rotation to see that the constraints are not working correctly.

Results: In the preview window, the axis constraints show correctly colored according to the XYZ inputs of the node, however the constraints don't work correctly when manually rotating a bone.

Expected: The rotation constraints should match the displayed values on the preview window.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-66293 in the post.

Login to Vote

ComponentUE - Anim - Rigging
Affects Versions4.
Target Fix5.3
CreatedNov 8, 2018
UpdatedJan 20, 2023