Search Unity

Question Incorporate/Combine Blendshapes into Animation Clips

Discussion in 'Animation Rigging' started by angiemon, Apr 28, 2022.

  1. angiemon

    angiemon

    Joined:
    Mar 26, 2018
    Posts:
    37
    Hi! I'm not sure if this has already been answered because I feel like this is basic knowledge and maybe I was just too clumsy to find it :)

    Soooo regarding Blendshapes and animations clips.

    The way I see it, Animation clips (fbx animated in a DCC tool like Maya and then imported into Unity)
    are assigned/organized via the Animation Controller (have a bunch of experience with that)
    Blendshapes, if existent & exported, are part of the fbx that has the full rig (joints & bound mesh) on it and those can be animated via code or the Animation/Timeline tabs or something (no experience with that)

    Is it possible that Blendshapes are used in a "corrective" way? Like how you would do it for animation rendered in Maya? Where you can then link the blendshape to a (Maya) controller that is a curve with constraint to the joint (Not gonna lie, I hardly, okay never, use blendshapes and try to get by with joints and painted weights) so how would that work inside of Unity? That the blendshape gets "activated" for a certain clip at a certain keyframe with a certain influence?

    Example: I have an anticipation animation where the mesh at the knee looks weird. I can't really solve this with Painting Weights (either because it would then look weird in other poses or it simply doesn't look satisfying enough), but I can make a blendshape so that the knee looks good in this position.
    How can I use this in Unity?

    Can I do this inside of the Animation Controller somehow? Or something similar? (Timeline, or whatever)
    Or does this need (extensive) coding? I'm an artist and anything beyond "Hello World" or copying stuff from a Youtube tutorial into VS Code and praying it will work out is pretty much above my paygrade. lol
    I mean I try to look into scripts on my own and understand when something isn't working out, which is semi-successful (like... 80/20?) but at least I'm TRYINGGGG... okay I digress.

    Can I do what I just described on my own, or does this need coding, and if yes, what does this code approximately need to do? You know, so I can annoy someone who can do it.

    Thanks guys :)