Putting Together Multiple Rigged Models

Hey all,

I know that @masterprompt already answered a similar question, but this pertains mainly to what I think is a bug in Unity.

I've been working on the models for the characters in BOTW (as I think it'd be fun to make a Unity port :P), and Link's character model is understandably separated into a number of different components, each of which I am assuming is synthesized (or stitched together) at runtime. However, this step (which I initially assumed would be a quick fix) has become seemingly impossible, since the models randomly disappear as I work with them.

My steps:

I drag the main Link model — without hair or any accessories — into the scene. It appears as normal. Each child of the Link object is a simple GameObject at pos (0, 0, 0) with a single component: a SkinnedMeshRenderer with a material, a root bone, and a mesh.

I drag Link's hair model into the scene. It appears as normal.

Now, I take every child object from the hair parent object and place them as children into the Link object. They appear just fine, but they aren't part of the link skeleton yet.

Now, I merge the two skeletons (manually at the moment) as they contain the same hierarchy but with different hierarchy extensions (Link for example has arm bones while the hair logically doesn't).

Finally, I take the children of the hair prefab root bones and change them to the appropriate root bone on the merged skeleton. The hair remains there, as expected.

Now, I delete the obsolete skeleton which the hair came with. The hair remains there (as expected).

Now I play the scene and POOF! The hair is gone. What happened? The extents for each of the SkinnedMeshRenderers are not zero, the materials and meshes are still there… so what’s going on? It happens for every other accessory I’ve tried as well :(. It also happens in reverse: putting the link model as part of the hair prefab causes the hair model to disappear.

1 Reply

Solved! I had to develop a script which would also set the corresponding SkinnedMeshRenderer.bones for each bone hierarchy, which wasn't present in the visible properties of the SkinnedMeshRenderer, as well as the rootBone.