This may not be an expected use of state machines, but it is becoming a showstopper for a couple of users.
These user's are caching their locomotion state machine and then using a second state machine to switch weapons, which calls on that cached locomotion pose.
Every time the locomotion cache is referenced, the locomotion state re-initializes itself from the entry node.
One user set up a test case for us. See repro steps
https://answers.unrealengine.com/questions/215497/possible-bug-in-using-two-anim-state-machines.html
https://forums.unrealengine.com/showthread.php?67503-How-to-connect-two-state-machines
One user also investigated the code a bit.
I debugged the code a bit, and what I discovered is that every time the upper body changes state the following function is called for the Locomotion state machine which basically resets the whole state machine.
USTRUCT() struct ENGINE_API FAnimNode_StateMachine : public FAnimNode_Base { ...... // FAnimNode_Base interface virtual void Initialize(const FAnimationInitializeContext& Context) override; ...... };
1. Download the attached files
2. Create a Third Person Blueprint Template project
3. Inside the zip file, copy the content folder
4. Paste it into the Third Person project directory and overwrite the existing files
5. Launch the project
6. PIE
7. Hit the F key
Result: The F key switches between two identical states in the "Test" state machine. These states simply plug the cached locomotion state machine into the Final Pose. Every time the "Test" state machine switches states, the Locomotion state machine is re-initialized. Locomotion state machine has a jump anim at the start to make it more apparent.
Head over to the existing Questions & Answers thread and let us know what's up.
0 |
Component | OLD - Anim |
---|---|
Affects Versions | 4.8 |
Target Fix | 4.12 |
Created | May 19, 2015 |
---|---|
Resolved | Apr 14, 2016 |
Updated | May 18, 2020 |