Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

Getting skin and muscles to flex correctly at joints: Beginner seeks a workflow

Discussion in 'Animation' started by RobbieTheCupcake, May 20, 2020.

  1. RobbieTheCupcake


    Aug 3, 2019
    Hi all!

    Let me preface this by saying I'm still very new to this. I've been trying learn Unity and C# off and on for the past 18 months or so, but that is limited to coding and Unity itself. I am not an artist and I know basically nothing about how 3D models are created. What I'm asking for may be very obvious to some of you and the answers may be readily available. I promise you I've tried to search first and come up with nothing. It could very well be that I'm just not searching to the right terms as I'm not familiar with the terminology.

    I'm working with a group of friends on a project to provide resources for a certain type of game development. Without going into detail, the end goal that I want is for a character model to be able to swap flat shoes for high heels, and for the skin and muscles in the ankles, legs, and glutes to stretch, flex, and deform realistically as a result of the character model wearing high heels. This is a very important aspect of the type of resources we're trying to develop, and I'll let you guess why.

    Now, I'm going to use Daz3D as a reference for explaining what I'm trying to do, as I've been using Daz for about 6 months to make still images and short pre-rendered animations and I'm familiar with it. I want to be clear that I understand how Daz is different than Unity. I understand that Daz pre-renders individual frames, and as a result its 3D figures can have very complicated mesh morphs to replicate the realistic motion of skin and muscles. My understanding of Unity is that it only sees a static mesh, and thus it can only rotate bones and can't morph meshes to show muscles and tendons following those bone movements.

    An example of what I want to do and how Daz accomplishes it. Notice how the tendons and muscles around the ankles and legs have changed position in a realistic way how they would in real life:

    Now, notice how Unity normally handles this rotation. These images are from a youtube video on converting Daz models to Unity:


    You can clearly see the odd bend at the back of the heel and ankle because Unity is not deforming the mesh in a realistic way to account for the rotation.

    I'm only using Daz models here for examples. The final "product" I'm trying to develop would be built around a custom mesh.

    So how can I pull this off? From my limited knowledge of art and game development in-general, I figure I have two options:

    1. Develop a system for a dynamically morphing a mesh in Unity based on character animation. Something like this is far above my current skill level, and I don't even know if such a thing is possible in Unity. If it is, is there any reference material or are there any other systems like this for Unity or other engines I could use to get started learning?

    2. Export custom body meshes for individual sets of shoes that already have the correct mesh morph. This seems like it would be technically easier to pull off but I worry about having tons and tons of meshes for a single character model. Also, I would lose some of the subtle movements for things like rolling ankles side-to-side.

    What do you think of these? Are there any other methods to accomplishing what I'm trying to do? I apologize if this all seems confusing or if there is already some obvious solution that I've missed. I don't really know anything about 3D stuff so the "language" is not familiar to me and I don't know how to find what I'm looking for or communicate it clearly.

    Thank you in advance for any help you can give!