Issue with IK constraints on rig when imported to Roblox (Blender)

General Summary


Hi everyone! :slight_smile:

I’ve modelled, segmented & rigged a character model in Blender 3D with IK constraints.
However, once imported into Roblox Studio, I was surprised it didn’t work for I followed the guidelines on this page on the DevHub.
I did add the Attachments afterwards, but should not affect the animation so much.

Expected Result


I expected the rig & model to be imported properly giving the following result:


(Video rendered in Blender)

I have the exact same setup as explained on the DevHub, exceptions being the IK constraints & controllers / handles.

Actual Result (The Issue)


However, unfortunately, it also includes (some of) the IK constraints & handles during the export, despite having ‘Deform’ disabled on these handles and having the ‘Only Deform Bones’ active in the export window.

Images

Disabled-Deform

So it still imports with a lot of issues which are most likely related to the IK controllers / handles.
WrongResult

Resolving Attempts


I have tried many things, but I’ll note the most important ones here in order from unsuccessful to successful research.

Unsuccessful Attempt 1 - Trying other settings

I’ve gone ahead and enabled / disabled many different kinds of setting combinations, but it turned out unsuccessful and fetched no useful results.


Successful Attempt 2 - Removing IK handles / controllers

Then I got in contact with @jonathanTheForgotten in the hope he knew more. We did find out that apparently the IK controllers & handles create the displacement.

However, I intended to use IK for easier animating and since this animation is based upon those IK constraints, it breaks in Roblox because the IK constraints can not be imported without messing up the rig. Reason why is that on the DevHub it is said that I need to follow the rig-rules, including the hierarchy, which do not include IK constraints.


I’d much prefer to work in a single workspace (Blender in this case) to make an animation. So I’m hoping IK constraints can still be used.
Does anyone know what I need to do in order to make this work? Or should I make a different approach to rigging & animating this?

Research Files


Just for the sake of resolving this mystery, here are the files I used to get to this result.

Files

Important: please do not use these assets for your own use. They’re production files which I am using for my project, use them only for researching this issue.

Roblox Dummy (with attachments): Dummy.rbxm (62.0 KB)
Blender File: Anim-Issue.blend (1.2 MB)
Model & Rig: Character-1-R15.fbx (446.8 KB)
Animation: Knockback-1-R15-Anim.fbx (136.9 KB)


3 Likes

Same problem on my end! Blender IK support is desperately needed if we are to properly animate skinned meshes!

4 Likes

I found a Solution! It’s a bit tricky and I kinda formed it together by myself but hear me out.


Step 1: Use Den_S Blender Addon to export any Roblox rig from ROBLOX studio; You will also need this to import animations into custom models.

Be sure to save a blender copy without IK for later!


_
Step 2: Create animation with IK as you normally do, When you are finished you want to bake the animation.

Once you click on it, make sure you have these exact settings.

image
_
Step 3: Now you should have Linear Keyframes, Go ahead and go into edit mode and delete your IK pointer bones. (Basically anything that isn’t being used to deform) This is going to be Model A.
_
Step 4: On another Blender window open your Model that doesn’t have IK (Model B),

Then go back into Model A with your animation and copy the first keyframe. Place the first keyframe of Model A into the Model B
_
Step 5: Copy entire Model and Rig of Model A that includes your baked animation and paste it over Model B. The two should be in the same exact pose and should intertwine.

In object mode select Model B rig FIRST, Then select your Model A rig that has the baked animation SECOND and navigate under the object tab to Link/Transfer Data, On the side menu choose Link Animation Data

Your animation should have successfully transferred, you can test the transfer by playing the animation. If both characters are moving you’ve done it correctly.
_
Step 6: Carefully delete the overlapping IK rig and parts, only leave the rig and parts of Model B that has never had IK. Be careful not to delete the rig meta of your clean rig.
_
Step 7: You can now continue to follow the steps in Den_S Blender addon to import your animation with working IK.


~
You should now have an animation that works with any IK setup in ROBLOX Studio.
Sorry this response is 2 years late. :sweat_smile:

4 Likes

Superb! Thanks for this in-depth response.

Luckily there’s a built-in Roblox plugin now that takes care of this I think! :slight_smile:
But for those who still use Den_S’s plugin this looks really nice.