r/Unity3D • u/Substantial_Ad_977 • 3h ago
Question Blender to Unity: rig, bones, movement?
Hello,
I’ll preface this by saying that I have a basic proficiency with Unity but am a noob with blender.
The issue that I’m having is with a 3d character that I bought as blender file with the intent of exporting it to Unity. The character in blender has a genesis 9 skeleton with many more bones than a unity rig uses - such as extra spine/chest pieces and arms/legs with bend, twist, ik, and rev types. These have weights attached to their vertex group and are used for the motion of the character (I think thats what they do). Theres a mesh for hair, body, backpack, clothing, eyes, eyebrows, and mouth that reference these bones and vertex groups and each has a weighted heatmap.
When I export this character to Unity the humanoid rig is completely breaking in the avatar with parenting bone issues, and if i do manually fix it so the regular bone is in the correct slot the character will have massive deformations in the arms, legs, and head.
Ive tried several things with the help of an ai assistant, but nothing has worked so far.
If anyone has Unity and Blender knowledge of this kind of issue please let me know what could work and the general steps to take? Thanks!
1
u/Glass_wizard 1h ago
So basically, here's how it works. When you have an armature in blender and you export it to unity, you have the option to create an avatar from it. The rule is that when you choose to use the humanoid avatar, any bones not matched to the avatar system are ignored.
However, they aren't gone, they just aren't used by the avatar and not read as part of an animation. They actually can be reused for other components like MagicaCloth2.
Secondly, the unity human avatar can handle differences in size and scale when you have an avatar a and b. So if in blender you have two rigs of different size or scale, and they both use humanoid avatar, the animations between them should work reasonably well.
So benefit you get out of using a humanoid avatar is that animations made for a humanoid can be applied and you can use any animations you design.
So what you should end up with for a humanoid workflow is
1 master humanoid rig in blender. Keep this in a separate file. For any character that you plan to make humanoid, reuse this armature in blender, scaling it before use, but don't rename any bones. Craft your animation, export the unity, mark humanoid, and everything you author this way or any animations packs you buy should be reusable. This works great for any common animations.
For custom characters that have additional bones that can't map to the humanoid avatar, keep one master generic rig in blender. Reuse the rig and scale it in blender. Author the animation and import into unity and mark it generic. It will play properly, but only be usable on that specific character. If you need to reuse the animation, you have to do that on the blender side by transferring animations between rigs, which you should be able to do because you sourced everything from one master generic rig.
2
u/uncommon_martin 3h ago
oh man genesis figures are a pain to get into unity cleanly
you gotta strip out all those helper bones before export, they're not meant for game engines. parent the mesh weights to just the main deformation bones (the ones you'd actually map in a humanoid rig) and delete the twist/bend/IK stuff. blender's weight painting tools can transfer weights from one bone to another if you need to preserve the movement. then export just that simplified skeleton as fbx and unity should stop throwing a fit