Search Unity

Freeform Animation : Modular Rigging

Discussion in 'Animation Rigging' started by awesomedata, Mar 20, 2019.

Thread Status:
Not open for further replies.
  1. ProceduralCatMaker

    ProceduralCatMaker

    Joined:
    Mar 9, 2020
    Posts:
    108
    I wonder if this video and some of your post suggestions will be taken care in Dots Animation that is still in the workings.
    Maybe you should get back to them with this stimulus now. Bye
     
  2. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    Radio silence in terms of DOTS Animation -- How is this going so far?


    I'm loving Animation Rigging, but I'm really curious what's become of the DOTS Animation workflow?

    Here are some things I'd like to see:

    1. I would like to see more Overgrowth-like "pose-to-pose" interpolation control in my animations.
    2. Automatic "follow-through" profiles for springy bits (i.e. Cloth / Hair / Ears) given to me for free.
    3. Easy, (bone) chain-level authoring support for rig constraints
    4. Shortcuts to add certain types of constraints to currently-selected bone-chains instantly (in scene)
    5. Play a procedural animation "stack" based on game logic
    6. Enable/Disable bone chains/animations (and save performance)
    7. Graph / Constraint additions/manipulation and other control via scripting would be handy
    8. Skeleton and Bone-chain references to be passed over (to and from) Kinematica / AnimationRigging
    9. Entire poses copied/pasted between various 'types' of skeletons w/similarly-named bones
    10. Mirror constraints from one side to the other in an animation rig in the scene view
      (Mirror and copy entire poses between different animation systems based on bone names)

    I could go on and on -- but that's what I've got so far.
    Now what have you got? :)
     
    ProceduralCatMaker and NotaNaN like this.
  3. ProceduralCatMaker

    ProceduralCatMaker

    Joined:
    Mar 9, 2020
    Posts:
    108
    Nice list. I agree Animation Rigging is very powerful ad is somehow a gane changer. For now I would like to see some more action here by Unity team towards DOTS.
    Wonder what is your opinion in the humanoid vs modular/generic expressed by Dave Hunt at GDC on evolution of animation rigging workflows where he talks about the need of abandoning the monolithic avatar approach.
    As we know Animation Rigging package is not aimed at traditional humanoids, and for me this is good because gives more freedom. I Believe DOTS will follow a similar route.
    What is your opinion?
     
  4. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    While humanoids are definitely convenient in terms of animation transfer/sharing across a wide array of models/rigs, I think @davehunt_unity is absolutely on-the-nose about abandoning the Monolithic rig in animation, as animation sharing is still possible with constraint-based rigs as well (with bi-directional motion transfer) though this is not _quite_ as convenient yet.

    The ideal solution would be to make a meta constraint "rig" that automatically fits itself to the model (like the humanoid tries to do) and then make the animations relative. This would be based less on parenting than the different sub-rigs in the meta-rig. For example, the "hand" sub-rig could have 1-5 fingers, but animation always starts at the first bone. The "arm" sub-rig could have 20 bones, as long as the animation starts at the shoulder and you have defined a "tip" or the "end" -- which is just the start of the "wrist" in a standard human-like meta constraint rig. None of these sub-rigs need to know about one another -- only the bone-chain start and ends. For something like the "hand" rig, you have a simple "structure" -- that is, 1-5 children bones, each potentially with their own "children" bones (and no more beyond those).

    That means, each rig can be executed simultaneously, without knowledge of the parent rig (other than the transform it happens to begin from and the transform(s) it happens to end at.) This would allow each sub-rig (currently just called a "rig") to execute only the bits from the animation clips it needs (i.e. opening/closing the fingers on a "hand" sub-rig only cares about the part of the animation that describes the bones that are assigned to the "hand" rig -- and ignores all the rest of the animation clip.)
    Since these are scaled out/in to match the position of the bones themselves on the actual model, the constraints get scaled too, and so does the animation for that particular model (since the constraints solve for the motion of the model to begin with.) This means that a separate animation clip is not necessary. You essentially are just animating the basic control rig -- which doesn't care about anything, even the bone positions. Only the constraints themselves are modified to "fit" each model. That is, if you have a character with a long finger chain -- and another who has only two fingers -- only the first two fingers get animated (on the two-fingered character), while only the tip of that long finger chain for the model with, say, 5 fingers gets animated for each finger. This ensures the animation is flexible and far-reaching, while also just as convenient as the humanoid.

    I'm hoping @davehunt_unity and friends are working on something akin to this in DOTS Animation. This is really the only thing that is missing (functionally) from Animation Rigging. Perhaps copying/pasting poses between characters and rigs would be nice too though... :D


    As for my opinion on the AnimationRigging workflow, it's here if you're interested:

    Even since the 90's, it boggled my mind to see just how freaking complex modeling applications like 3ds Max (and later Maya, which held the torch for all other animation packages to follow) made 3D animation. Even way back then, I could see just how ridiculous the workflow was. To be fair, skeletal animation hadn't really taken off as widespread as it is now -- Actually, everything was about vertex-processing (and rightfully so -- it was expensive!)

    When skeletal rigs became more widespread (especially with the .x, .ms3d, .3ds, and eventually the .fbx formats), I was stoked. I had hoped something was going to be done about the massive workflow issues, since skeletal stuff was getting to be mainstream. I could see the constraint system working for more comfortable animation workflows all the way back then. Yet that change never came.

    Even when procedural animation had overtaken video games (i.e. AAA titles), the workflow for getting that level of control in industry-standard packages was just absent, and was mostly made up of dudes who could throw together their own tools to make these kinds of approaches. You practically had to be a _programmer_ just to have a comfortable animation workflow -- that was also effective and flexible. This was true all the way up to 2016 or so even. Eventually tools became a bit more available if you really wanted them, but most people didn't even know they were out there -- much less where to even look.


    In general, when one combines tiny workflow-enhancement tools into a single, powerful, entity -- you get something quite amazing to behold. The constraints Unity uses are simply a pile of small scripts that Maya animators have been using for decades in "toolshelf button" form -- but having these at the _end_ of the pipeline (rather than the beginning) and making the "beginning and the end" closer together in terms of workflow, the guys at Unity have created something really special here.
    They essentially combined all the animation tools a user will ever need into a single tool at the end of the pipeline, and have allowed them to (seamlessly) alter the result of the tools typically found at the very beginning of the pipeline.

    As a result, this makes the entire workflow better.

    Animating a monolithic rig (if you really want to) is still possible in Unity, but the flexibility of making everything you need to animate be modular (separated into whatever parts you wish), and no longer having to animate that original rig directly, ensures you've got a (realtime!) solution that scales from back to front, from beginning to end, across the pipeline! The benefits are awesome, clearly, but as @davehunt_unity also points out, the workflow itself is just better all around for round-trips than exporting from Maya and hoping the animation turns out as nice in Unity as it is in Maya.

    Also -- because I think it's important:

    Akeytsu and Cascadeur are two up-and-coming animation packages that outshine Maya in different ways from one another.

    These two packages are looking at their own concept of the "modular rig" and show the possibilities of how it can affect overall animation workflows -- I hope Unity takes note of them and considers their strong points in DOTS Animation workflow as well. It would be extremely nice to be able to animate along arcs (as Cascadeur allows) and generate some basic weights and rigging (as well as use similar-acting animation widgets -- i.e. grabbing the character himself to pose him rather than just bones or floating constraints) in a similar way that Akeytsu allows. D:
     
    Last edited: Sep 29, 2020
  5. ProceduralCatMaker

    ProceduralCatMaker

    Joined:
    Mar 9, 2020
    Posts:
    108
    What can we say after this "lectio magistralis" from awesomedata in response to my request for his opinion on traditional Unity humanoid vs modular-generic as we see in Animation Rigging package and GDC's talk by Dave Hunt?
    Of course i agree totally with him, and feel that once also the bi-directional workflow will be understood better, the animation as we have known for decades will change forever.
    Thanks master, you deserve better recognition of your knowledge by all of us.
    bye
     
    andreiagmu, awesomedata and NotaNaN like this.
  6. NotaNaN

    NotaNaN

    Joined:
    Dec 14, 2018
    Posts:
    325
    Man.
    I really wish you were in charge.
    I know that sometimes you can get a little excited (or overzealous) about a given topic—but it's just to push your fantastic/surprisingly-always-correct viewpoint, so its justifiable. (And we all get heated from/about topics now and then). :p

    But once again... your posts are spot-on!
    Some people ignore your posts due to length—which is honestly really sad... because they're truly missing out. (Every time I see a new post in the forums from you, I get pumped to read it—and I just let the good stuff poor over me like a tidal wave. :D)

    Anyway... heh heh :oops:

    It's great that Dave Hunt is working hard on giving us the wonderful, modular-rigging future that you described—but I still wish you were working on it with him! ;)


    Oh, and would you mind just throwing in links to Akeytsu and Cascadeur in your post? I'd love to check them out and taste the future a little bit. :D
     
  7. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    Wow! -- Such high praise!! xD

    Thank you both for that! -- It means a lot to know you think that way! ^___^


    Haha, I definitely do get overexcited/overzealous sometimes -- but I think a lot of that comes from the fact that I don't hold back much, and I just can't see how some people can't see this sort of stuff -- especially when I've spelled it out to them. To think, by default, without any evidence, that there is no other way to approach a problem -- just drives me mad.
    Pigeon-holed thinking drives me up the walls though -- it's my one pet-peeve.
    It's all about consideration (i.e. if you had to be the guy in the chair using the tool, how the hell would you want it to work?)

    That being said -- I appreciate the complements though.

    How cool would it be to work alongside guys like @davehunt_unity who make these kinds of tools real for people?

    The tragedy is -- I freaking hate programming -- I know because I've done it. It saps my creativity. I can't stand it when my thinking becomes pigeon-holed and limited. To combat this lack of mental-plasticity that comes with programming, I just find more creative and ergonomic ways around technical problems. I'm nothing special though -- I just care that these problems are solved. I don't like stagnant people/ideas, and the industries in question have been stagnant for decades.
    What drives me up the wall is that I go out of my way to understand why, only to find out it's just lazy thinking / lack of consideration for others -- and then realizing that people are defending that stagnant crap! I know change is hard, but a tool that sucks just freaking sucks! -- How can I know if a design happens to be good if I can't see the obvious benefits of that design (without having to convince myself!)
    It gets my blood boiling when somebody argues with me without making any attempt at understanding _my_ side of an argument. I always tend to have a pretty good reason for arguing a point. After all, if I'm really wrong, no matter how much I argue -- how can I expect to ever be right? Who am I really lying to?
    Besides. Without shortcomings, how else can I really grow?


    So yeah -- That's me in a nutshell.

    You guys made me smile though! -- I definitely feel less of an ass for being who I am thanks to you guys! :)

    Haha! -- Done. :)
     
  8. NotaNaN

    NotaNaN

    Joined:
    Dec 14, 2018
    Posts:
    325
    I like to give credit, accolades, and endorsement to those who deserve it!
    And truly, you deserve it. ;)


    Yeah, people can be infuriatingly difficult, I admit it. :mad:

    They say it's best to seek to understand, rather than seek to be understood.
    And I can understand that — because people want to be understood. And once they are understood, they are much more open to understanding. So it makes sense, and it seems a rather effective strategy.

    Unfortunately understanding every single individual on the forum would take a while. But still; it's advice I myself do not employ frequently enough, especially in scenarios where application of such advice may bring a fruitful result. :cool:

    *Sigh*
    Still though,
    Doesn't it often feel like you're a lighthouse in a morass of incompetence? o_O


    It's a fair pet-peeve. I, for one, dislike illogical thinking. It frustrates me beyond belief... but that's another topic.
    Be wary though. This next generation seems like its spinning up to be especially pigeon-holed. So you might need to adopt a consider twice bombard once mentality.
    Not everyone can be swayed. :(


    ;)


    That's understandable. :D


    I am with you completely.
    Programing is a completely different state of mind than the "artist zen".
    Mind you, there is a zen state in programing as well, it's just different. The issue is that both zen states are practically at opposite ends of the spectrum, so switching between them is a difficult task, and translating one to the other is even more so, causing a strong conflict between states of mind.
    It's why being a true Indie (doing everything for yourself, learning and using all and every kind of tool) is an extremely difficult task.


    Words of truth that hurt my soul! (Preach it).
    That being said — Unity is really trying to turn around the corner with DOTS, I'm just afraid they may not add the proper "interface" to it, so to speak. We need to be able to use it fast and intuitively, and not waste time trying to optimize the heck out of everything. Performance by Default needs to come without the glaring cost that it currently has right now, which is boilerplate and workflow velocity.


    Yes.
    It truly is disturbing.
    More often than not — it does seem that what you have said is exactly the case. I like to hope that they aren't defending these poor ideas / implementations intentionally (in the sense that they don't know better), or that the drive to do so merely comes from them trying to win the "brawl" of a conversation that every discourse seems to devolve into.
    That's not how it works, though. And we both know that.
    The goal is to better everybody by finding find the best answer to the problem, unbiasedly.
    It's too bad that mindset is so rare nowadays. :(


    Welcome to the 21st century. :(
    It only gets worse from here, lemme tell you.
    These days it's about slinging mud at each other until one side achieves "victory" and gets to be president or something.
    These days, we're never actually addressing problems, we're never trying to figure out the best solutions, all we do is try to win at any cost, even if it means demeaning yourself and others.
    Terrifying.


    Yeee!
    The growth mindset...
    It's glorious!
    If there is one thing society is missing it is the constant iteration on oneself to improve and get better.
    The second (and arguably more important) thing society is missing is the unbiased search for the Truth. But that's another topic...


    Seems like a pretty fantastic nutshell to me! :D


    Hey, you're great, man.
    Life is a personal journey. You will never be anyone else, so don't try to be.
    Just constantly try to improve You in every way — be it socially, professionally, philosophically, politically, any and every aspect — because that's the only thing we have control over.
    The only three things we can compare against is our past self, current self, and our ideal self. (Sans the Perfect Standard, of course)
    So as long as you keep improving on yourself and never stop, you're in the all-clear. :D
    And for the record — you are definitely not an ass. ;)


    Thanks!

    I checked out the links — and man oh man, the future is lookin' pretty good. :p
    Cascadeur looks like the Animator's dream. And Akeytsu and its workflows seem to greatly reduce the inception-creation-animation friction by automating stuff for you whenever possible.
    I now have a lot to be excited about!
    Happy me. :D

    I gotta keep researching this stuff. :p
     
    Last edited: Sep 30, 2020
  9. ProceduralCatMaker

    ProceduralCatMaker

    Joined:
    Mar 9, 2020
    Posts:
    108
    Innovation is a hard route.

    As we do not want to be pigeon-hole limited, going back to the start of this conversation about Humanoid Vs generic I just invite who is interested to enlarge his view to have a look at the approach that in medical research has been under way for years, starting from the Department of Bioengineering at Stanford.
    OpenSim and its evolution modules can open our mind on what will be possible in our case with DOTS integrating physics in procedural animation.
    https://www.youtube.com/user/OpenSimVideos/videos

    It will take a few years, but my cat someday will know how to walk, run, jump by itself using this approach!
    The same with lip-sync and facial expression based on cat musculoskeletal simulation I am a deriving from research on animal expression at animalfacs.com (University of Portsmouth) , the home of scientific observational tools for identifying and coding facial movements in non-human species.

    I like to look at the moon, not at the finger pointing at it. It will take time to get out of stagnation, but we will succeed.

    personal small print
    In the late '80s I used to fly to the US to attend Siggraphs (those days I have been the proud owner of the first Silicon Graphics 4D workstation in Italy - cost me more than a Ferrari TestaRossa) and worked on first realtime animation models.
    Those days I was a young excited dreamer.
    Today, over 30 years after, I see clearly that we now have all the potential technology to make our dreams reality.
    Let's help to speedup the change.
     
    andreiagmu, awesomedata and NotaNaN like this.
  10. LeonhardP

    LeonhardP

    Unity Technologies

    Joined:
    Jul 4, 2016
    Posts:
    3,136
    Hi everybody,

    Thanks for all the feedback, we really appreciate it. We’re currently actively working on our animation roadmap but have no further details to share at this time. We will update you as soon as we have something to share.

    I'm closing this thread since the original discussion has run its course.
     
Thread Status:
Not open for further replies.