Blender+Rigify to Unity humanoid - best practices?

posted to: Humanoid Rig Setup

Hi, I received a Blender Rigify character to be imported into Unity. I found a pretty detailed Blender+Rigify page in the Unity docs and tried to follow it. It's quite complicated and a little messy. I tried a few variations with some partial success. I didn't see any specific equivalent training on CGCookie with a quick look. I guess this issue is faced quite often? Maybe someone (on either Blender or Unity side) has better/simpler methods? [Specifically concerned with rig, not so much animation]

  • Jonathan Gonzalez(jgonzalez) replied

    That would actually make for a good article. I think we've run into a number of issues in the past trying to get Blender rigs to work with Unity properly so it would be a good idea for us to show you all what we ran into and how you can properly setup different types of rigs to work with Unity from Blender. 

  • techworker1 replied

    Thanks jgonzalez . Looking forward to it.

    I did a "brute force" technique which seemed to work well. Long and tedious, but straightforward and easy to understand.

    A. Massively clean up armature

    1. Keep "master", "root", all "DEF-*" bones. Delete all other bones.
    2. Delete a few extra floating "DEF-*" bones not part of skeleton.
    3. For all DEF-* bones, check and fix parenting to get the skeleton tree.
    4. For all DEF-* bones, check and fix "Connected". Some of them look connected but aren't.
    5. Merge to remove a few unwanted divisions in spine, leg, arm bone chains.

    B. Re-skin

    For each skin mesh,
    1. Delete all vertex groups.
    2. Re-parent mesh to clean armature, automatic weights.
    3. In Weight Paint, delete all the unnecessary vertex groups.
    NOTE: For fingers, keep the hand and last 3 finger bones only.
    4. In Weight Paint, select each valid vertex group and verify/update the weights.

    Export FBX Armature/Mesh and import into Unity. Seems clean without lots of extra noise.
    Select Humanoid rig and automatically create avatar.

    [If you survive, give yourself a treat.]

    I hope to save the "clean" armature in a safe place to use again on other characters.

  • techworker1 replied

    My "cleaned-up" Rigify worked some, but had serious issues.

    A simple rig generated by MakeHuman 1.1.1 seemed to work pretty well right out of the box, even using Raw Mocap clips.

    I guess I'll try to avoid Rigify for now.

  • techworker1 replied

    So...

    • Rigify seems to produce way too much for Unity - cleanup is daunting
    • MakeHuman comes much closer, but is missing some head details. Not that difficult to add them by hand.

    It shouldn't be that hard to write a Python script to generate the exact set of parts desired, and save a lot of excess manual labor.

  • Javier Herrera(javierhowler) replied

    Any news about this? Im eager to learn a good workflow on exporting from rigify to mecanim

  • techworker1 replied

    I actually found MakeHuman to be much easier to work with. Use “game engine” armature, set to T-pose, export as FBX.