Deweh / Native-Animation-Framework

A multi-character animation framework for Fallout 4.
GNU General Public License v3.0
20 stars 5 forks source link

Animation Studio Improvements #10

Open Deweh opened 8 months ago

Deweh commented 8 months ago

Suggested Animation Studio Improvements:

jarari commented 8 months ago

Bug fixes

Suggestions

Deweh commented 8 months ago

@jarari

  • [ ] Unlink IK bones from pelvis

This can be done by changing the effectorParentNode in NAF_graphInfo.xml

  • [ ] Deleting all keyframes on the bone allows it to follow the animation

This is intentional. NAF's animation system passes through vanilla animation data if the active NAF animation has no data for the corresponding bone, which allows for partial animations.

  • [ ] Make IK bend the connected bones (which is usually the default behavior of IKs in animating software)

I'm guessing you mean roll, as the bones do bend to point at each other. The IK solver properly applies roll when set to continuous mode (preserves the result of the last IK solve and solves based off of that), but when using continuous mode the skeleton can easily twist around into obviously wrong orientations if moved around in certain ways.

The solution I came up with for this was deterministic mode, which solves based off of the animated position & rotation each time. The downside of course is that the task of setting bones to the correct roll is then up to the animator, but I figured that's better than having the skeleton randomly twist into the wrong orientation.

Also with continuous mode, the IK result ends up slightly different each time depending on the movements that came before, which messes with animation baking. All-in-all, continuous mode gives a better result, but is much less stable. I can add an option to toggle continuous mode on though.

Note: This is using an implementation of the FABRIK solver. It may be possible to get a stable roll solve with an analytical two-bone IK solver, but I've already spent upwards of 3 weeks straight working on the IK system, so I'm not too eager to delve back into that :P