Description

There's a bug in the anim bp compiler which results in split pins on animation nodes not being merged properly back onto their parent pin during compilation. The result of this is that any input to these pins ends up getting ignored at runtime. The code responsible is in FAnimBlueprintCompilerContext::MergeUbergraphPagesIn()

 ExpandSplitPins(ConsolidatedEventGraph); 

This method only gets run on the top level graph within the anim blueprint. Any sub-graphs do not get fixed up.

Steps to Reproduce
  1. Create an anim blueprint
  2. Within it create a state machine
  3. Create a state and drop in an animation sequence
  4. Connect the animation node to a Transform (Modify) Bone node
  5. Set the new node to:
    1. Bone = spine_03
    2. Translation Mode = Add To Existing
    3. Translation Space = World Space
  6. R-click on the Translation pin and select Split Struct Pin to split the pins into X, Y, Z components
  7. Create a new float variable in your anim blueprint and connect it to the new Translation Z input pin of the Transform (Modify) Bone node
  8. Compile the blueprint
    1. Note how you get warnings in the Compiler Results log: "Translation X was visible but ignored", etc
    2. When manipulating the Transform (Modify) Bone node via the blueprint variable, nothing will happen - the bone translation is not modified.

Have Comments or More Details?

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

1
Login to Vote

Fixed
ComponentUE - Anim - Runtime
Affects Versions4.26
Target Fix4.26.2
Fix Commit15749279
Main Commit15797488
Release Commit15749279
CreatedMar 16, 2021
ResolvedMar 19, 2021
UpdatedNov 30, 2022