chinedufn / blender-iks-to-fks

A Blender script that takes a mesh and armature that use IKs and other non-deformation bones and creates a new mesh and armature that uses only FK bones.
https://github.com/chinedufn/landon/tree/master/crates/iks-to-fks
44 stars 7 forks source link

FK Result Differs from Original Animation #4

Open Vercidium opened 5 years ago

Vercidium commented 5 years ago

Hi there,

We've been using this script for a while for our game (it's a lifesaver, thank you!), but realised that in some animations the bones slowly slide away from their correct positions.

For example the feet of the character slide when they are meant to be still, and their hands move away from the weapons they are holding. Our modeller says it might be because the feet are no longer anchored in the FK result.

I've attached our original .blend file here (pre IK-FK conversion).

bandit.zip

chinedufn commented 5 years ago

@Vercidium thanks for reporting this! Glad you're finding the script useful!

A couple questions before I take a look

In general any context that you can give on when/why/how this seems to be happening would be helpful.

After that I'd be happy to dive into your .blend file and see whatsup!

chinedufn commented 5 years ago

Lastly, and most importantly (:, if you can try your best to delete as much as you can from your model in order to create the most minimal example mesh/armature possible that demonstrates this broken behavior I'll be able to plop it right into the test suite and take a look at what's wrong.

Cheers!

Vercidium commented 5 years ago

@chinedufn thanks for your response! I've attached a minimal version of our blend file.

Normally the feet would not rotate with the hip because of the IK (the feet are planted). When it's converted to FK, the feet rotate with the hip.

Thanks in advance for your help

testscript.zip

chinedufn commented 5 years ago

Awesome thanks!

Just a heads up - I use blender-iks-to-fks very heavily so a bug like this is definitely on my radar.

I'm approximately 5-6 weeks out from focusing on enhancing some of the Blender tooling that I use ... which would mean that you wouldn't see a solution to this for some weeks.

If that's a huge issue let me know and I can try to re-arrange things that I plan to work on and/or figure out a way to help you take a look at solving the problem!

If it isn't an issue - great - I'll definitely be getting to this!

Vercidium commented 5 years ago

Unfortunately this is a big issue for us as we're using it for all animations in our first person shooter that we're starting alpha testing for soon. Most animation differences aren't noticeable, but there are some that stand out quite a bit.

We've figured out a temporary solution by creating keyframes at every frame of the animation before converting from IK to FK, which is good!

If you're busy we don't want to put pressure on you, we're happy for an update to the script when it suits you better.

Thanks again!

Vercidium commented 5 years ago

Update!

Numerous keyframes aren't a problem for me as I export the rotations of each bone at each frame to our model file format anyway. I removed the code (starting at line 165) that removes the extra keyframes generated from your script, and problem solved! The animation copies across perfectly

chinedufn commented 5 years ago

Awesome, so glad to hear!

I'll leave this issue open and still take a look at the issue next time I'm working on this library. But thanks for letting me know that you're all set.

I haven't taken a look at your model yet but I have noticed that bones that have Inherit Rotation don't get FK'd properly so just a heads up in case you ever run into that.

Anyways - thanks for the update!