Home Technical Talk

Modeling a Character with Changing Body Parts

DJShenanigans
polycounter lvl 9
Offline / Send Message
Pinned
DJShenanigans polycounter lvl 9
Hello! I try to make posting questions on here my last resort, but I've scoured the internet and it seems like a lot of possible answers instead lead to 404 pages, so here's the situation:

I'm doing this fun little project where I'm making myself and friends as 3D models of characters that would fit into the universe of The Legend of Zelda: The Wind Waker. One such character is a Rito, a bird person who's arms transform into wings when they fly. 

My question is, what is the best way to go about creating a character model who's arms can be swapped for wings and vise versa? 

My original two ideas where to either: 1. Have 2 separate instances of the same character, one where they have arms and the other where they have wings and I just somehow swap the models during animation or in engine, or 2. Have only one instance of the character and save out separate objs for each wing. The latter option is the one I've seen used in the "supposed" official model for Medli (a Rito character) that was apparently ripped from Hyrule Warriors (though I have no way of knowing if that's true or not). Link to download that resource for reference is here. Though if I were to go this route, I've no idea what the workflow is after that as far as rigging and animating goes.  :/ These models I'm making were originally only going to be used for renders and hopefully some animated shorts, but if it's possible, I sure would like them to be compatible for modding purposes! (Which I know very little about).

Any advice/help for how to approach this would be so very greatly appreciated!!

Replies

  • Alex_J
    Offline / Send Message
    Alex_J grand marshal polycounter

    I made some modular characters based from this ^^^.

    There's more than one way to set things up in engine. In my case, all characters existed in a single fbx and we used script to disable and enable different parts. Dunno is this is the most performant method, but it is relatively simple (as it was two beginners designing the system.)

    The rigging and weight painting is the tricky part. Be sure to test thoroughly with all your animations. You can ding me with any specific questions but I prefer to keep Q&A's on the public forum, so just tag my name.

  • DJShenanigans
    Offline / Send Message
    DJShenanigans polycounter lvl 9
    Hmmm after really rolling this around in my head for a couple hours, I generally understand how the arms could be swapped for wings (though I have a hard time envisioning it in practice if this were ever in engine. I think that might be a programmer issue that I don't understand). But what I don't understand, and what that page doesn't cover, is how the rigging and skin weighting could be swapped out as well. I'm completely unsure of how to approach that in the context of either an animated short or in a game engine unfortunately. 
  • Alex_J
    Offline / Send Message
    Alex_J grand marshal polycounter
    Skin weights are tied to the vertices. As long as the vertices at the borders are in the same position, you can transfer the weights precisely. That guide from Skankerzero will become more clear once you dive into the work a little. Don't got to wait for full understanding first -- that will come just from diving in a making mistakes.

    Try out a few tutorials on rigging and weight painting and you'll start to get the idea. You'll need to know how to do the basics of rigging -- setting up the rig, binding the skin, vertex weight painting -- and then there is some tools like transfer skin weights, copy and paste, etc taht will make your job a bit easier. It's a lot to take in but you only need a just a bit of familiarity with the basics to start being able to make something work.

    As far as the in-engine scripting goes, I had a programmemr take care of that so I can only tell you the very high level of how it worked. But you can get the characters totally setup and if you get that far I'm sure you'll be able to find the help you need to get things going engine side. I can ask the guy who I worked with for any advice.
  • DJShenanigans
    Offline / Send Message
    DJShenanigans polycounter lvl 9
    I'm already pretty deep in the process, I have the base mesh done and I'm at least somewhat experienced in rigging, skin binding, weight painting, etc (I have a BS in game art and animation, so these are all things I've done before). It's just the swapping out different parts that is very new and unfamiliar territory for me, and I'm doing this project on my own. I think the biggest thing I don't understand is how swapping out parts wouldn't break the rig, because it's changing the geometry of the mesh and it needs to change a part of the rig as well. This is why I keep thinking that it'd make sense to have two different versions of the whole character that get swapped out that have their own separate complete rig and weight painting (though of course the only difference on them would be at the arms/wings, but this way there's no editing of the rig involved). 
    Thank you for the advice thus far! 
  • Alex_J
    Offline / Send Message
    Alex_J grand marshal polycounter
    They can all be bound to the same skeleton. That's what I did. Not the only way, I am sure you can make a system to swap out different skeletons, but just binding everything was the simplest thign I could think of and it works.
  • DJShenanigans
    Offline / Send Message
    DJShenanigans polycounter lvl 9
    Unfortunately though, the skeleton itself needs to change. The rigging/skeleton for the fingers will be deleted, leaving only the upper and forearm bones, which will be elongated for the wings. That is what the example model shows. I suppose I COULD leave all the rigging for the fingers in and the wings would just have extra articulation, but I'd like to avoid this and get to the bottom of how the example model was done. 
  • monster
    Offline / Send Message
    monster polycounter
    ...My original two ideas where to either: 1. Have 2 separate instances of the same character, one where they have arms and the other where they have wings and I just somehow swap the models during animation...
    Do this. It's 10x less art and engineering work.

    Here's how I've done it in the past...
    1 skeleton with regular arms AND wing bones.
    2 models skinned and rigged to that skeleton.
    Export them both together in one file. (It's tricky to combine in engine, way easier to just export them together)
    When you animate, animate the wings and the arms as if only one is showing
    Swap models when needed between the wings and arms character
  • DJShenanigans
    Offline / Send Message
    DJShenanigans polycounter lvl 9
    Huh, ok, I think I get what you're saying! I didn't think about having one single skeleton that had both the arms section AND the wings section...I've never done something where 2 models share the same rig, if that's what you mean. So you just hide one model and show the other and flip between them as needed, all while using one skeleton?
  • Alex_J
    Offline / Send Message
    Alex_J grand marshal polycounter
    That's what I was trying to explain.

    Ten characters with dozens of hats and armor pieces all skinned to one skeleton. If they had wings, I just add those bones in but give them zero influence on meshes that got no wings.


  • DJShenanigans
    Offline / Send Message
    DJShenanigans polycounter lvl 9
    Hmm ok! I think I get it now! :) Thank you both so much for your help! This is a really interesting technique that I haven't explored before. If I run into any serious blocks while trying this out I'll be sure to post here. I'm excited to see how this project turns out. Thank you guys again, I really appreciate it!!
Sign In or Register to comment.