I'm just curious if there as any reason why artists are so resistant to split their 3D models into multiple fbx files. I just find the code design much cleaner if 3D models are split up into multiple files, rather than having to dig through bone hierarchies to choose different parts of a model the code needs to control. Something similar is the 2D project layout with characters broken into different sprites, and being able to grab those by name. (I get that the artist can name bones to make the search nicer, but a search still needs to be done instead of giving a path) So, I get that it has to do with animating movement, but why can't that be split into multiple files? (For a maya workflow at least)

  • 1
    \$\begingroup\$ Bones don't just move separate models. The character needs to be a single mesh to allow for correct manipulation \$\endgroup\$ – Bálint Oct 5 '17 at 22:37
  • \$\begingroup\$ My understanding is there's a way to make multi-mesh characters. for controlling different parts of the character differently. Think Samus Aran and her gun arm. Isn't it possible to get the run animation correct for the entire character, but split the gun arm off so the programmer can treat it like a separate object with a different origin point? It seems like a nicer programmer work flow that might make the artist's life harder to get everything right. \$\endgroup\$ – ZeroPhase Oct 6 '17 at 1:53

Splitting meshes would work as you intend only if every polygon in the mesh is influenced by no more than 1 bone.

If you want the model to bend smoothly polygons need to be influenced by more than one bone so your different parts will have more than one bone and require a search just the same.

Here's an example of bone-weighting with just 5 of the bones selected (in colour)

enter image description here

If we look closer at the pelvic area we can see a triangle affected by 4 bones at once:

enter image description here

Isolated we can see the blend of 4 bones represented by 4 colours:

enter image description here

This means it's not possible to break down the mesh strickly by bones attached.

It would also cause a performance issue in most cases as each batch of triangles would need to be drawn in a separate draw call in order to change the set of bones affecting the part currently being rendered.

Having the entire mesh as one object allows the GPU to deform (animate) and draw the whole mesh all at once.

  • \$\begingroup\$ That's what I'm referring to needing to dig down the hierarchy to grab the shoulder. Isn't there a way to make the gun arm and rest of the model two separate objects while still allowing the GPU to draw the whole mesh at once. Something with files embedded in another file, so I can just type a string out for grabbing the right part of the model at the origin. Seems like it would work, but create an annoying workflow for artists. \$\endgroup\$ – ZeroPhase Oct 6 '17 at 1:45
  • \$\begingroup\$ Something more Unix like where the file is just a collection of symlinks. Or how it's possible to embed Lua scripts within a binary. I'm just looking for a way to not have to dig through a bunch of bones so the origin of an arm for instance is always at the shoulder. \$\endgroup\$ – ZeroPhase Oct 6 '17 at 1:59
  • \$\begingroup\$ Would it be reasonable to separate the meshes into different files and then construct them into one mesh at runtime? \$\endgroup\$ – Nick Savage Oct 6 '17 at 4:01
  • \$\begingroup\$ Yeah, at runtime or compilation time. I'm guessing it's basically drawing a hull around the shapes. I have a whole collision book on how to do that. I'm mostly asking to see if me making a risk for the artists to follow a work flow programmers would prefer is reasonable, or something impossibly difficult that Maya could not realistically do. \$\endgroup\$ – ZeroPhase Oct 6 '17 at 7:00
  • \$\begingroup\$ @ZeroPhase The slight gain of ease for you comes at a large cost of annoyance to the artist and the speed of the game. \$\endgroup\$ – user106170 Oct 30 '17 at 17:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.