Rigging

Rigging101 » Rigging128

Dynamic Parent (15 posts)

About This Topic

Tags

No tags yet.

  1. Animatix

    offline
    Member
    Posted 8 years ago
    #

    If I could bring up this topic again. I'm trying to develop a dynamic parent tool and I have some thoughts and questions. My main concentration is fixing popping when animations are adjusted.

    There are basically three transfers that can happen, but when you add animation on the child object it increases six... maybe. The first three are:
    1. WORLD to Character
    2. Character to World
    3. Character to Character

    How would you guys fix the popping at any of these three transfers?

    Example 1 W to C:
    Parented to WORLD from frame 0 to 10. At frame 10 switch the Parent to the Character. Now if you change the animation of the parent at frame 10 you will get a popping between frame 9 and 10. How would you solve this? Would you go back to frame 0 get the position of the child, then go to frame 10 and frame10_childPosition = frame0_childPosition. Now at frame 10 the Child doesn't line up the the Parent.

    Example 2 C to W:
    the Child is parented to the character from frame 0 to 10. At frame 10 switch the Parent to the WORLD. Now change the animation of the Character at frame 10, you will get a pop between frame 9 and 10. How would you solve the popping? frame10_childPosition = frame9_childPosition? (This would give you double keys at frame 9 and 10). The Best solution for this is cut Parent switching keys and then redo the Parent switching. Fixes the Popping and doesn't give double keys.

    Exapmle 3 C to C:
    The child is parented to charA from frame 0 to 10. At Frame 10 switch the Parent to CharB. Then Change either CharA or CharB Animation at Frame 10. You will get a pop. If you fix the pop the same as example 2, one of the Char's wont line up anymore. How would you fix this?

    Then it gets complicated if you add animation to the child. Say, the child is parented to the Character from frame 0 to 10 the at frame 10 its parented to the WORLD, then you set a key for the CHild at frame 10, go to frame 20 and move the child, like its falling to the ground. If you change the animation of the Char at frame 10, it will pop. and if you fix the popping according to example 2, the child will not hit the same position at frame 20 it will have an offset, because of the pop fixing. Should you account for the child animation, find its next key position and set that after fixing the pop?

    Sorry its a long post and ive been thinking about it a lot trying to get to work in most situations. Its not to bad to solve if you don't take into account the child animation on top of the dynamic parenting.

  2. Javier "Goosh" Solsona (admin)

    offline
    Key Master
    Posted 8 years ago
    #

    This is a great post and not an easy task to solve

    I remember in my previous job I worked a whole dynamic parenting system. And yeah, building the system wasn't as complicated as all the different combinations that could potentially happen when animation does some adjustments.

    I thought what I did was working ok, but I left just after so I don't think it was fully tested and I'm not sure (probably not since I wasn't there to debug stuff) if it's being used.

    As far as I remember I build a few different nodes. One way was easier than another. You could go into a "move" mode and readjust thing and then press another button that would take care of the children and anything happening downstream. I really can't recall exactly how it all worked out. :S

    I'll see if I have anything of my old notes lying around

  3. Erick

    offline
    Member
    Posted 8 years ago
    #

    This is a great topic and instead of giving a useful answer (which I don't have) I'll just redirect you to some of the stuff I've found over the last couple years of lazily searching for the same solution.

    I know Lightwave has a dynamic parenting solution that I've used and it works.

    MotionBuilder also has a Multi-Reference Constraint system that is stable and I've been holding my breath for Autodesk to integrate into Maya and Max since they acquired MoBu.

    There are some Autodesk DVD's on Bi-Directional Constraints in Maya Co-Authored by Andrea Maiolo and Tim Naylor that use a vDag node plugin and Jazz Tigan has developed another Multi-Directinoal Constraint system with a Flash-based UI based on Maiolo and Naylor's setup.

    Now the DVD's and Jazz's stuff is circa 2007 and before, so I don't know if anything new has come of it. Jazz was on Jason's forum, but I haven't seen or heard anything new from the guy since SIGGRAPH in San Diego ('07). He has some really interesting ideas and techniques in rigging though. His reel has a demo of this stuff at his site:
    http://adventuresinstorytelling.com/reel/
    and the Maiolo work can be seen here:
    http://www.angelfire.com/ex2/maiolo/multiWayConstraint.html

    I don't know if this answers ANY questions or just poses more, but I'm just trying to keep the convo going! Anyone who has used any of these methods may be able to shine some light on how they work or how they could be adapted into a new Maya solution.

  4. scroll_lock

    offline
    Member
    Posted 8 years ago
    #

    > I know Lightwave has a dynamic parenting solution that I've used and it works.

    Are you talking about the "parenter" plugin ? I haven't used Lightwave for years but if I recall correctly it was working only if you don't change the animations on the parents....So the same issues apply there too.

    In Maya I`m doing it with animated weights on the constraints. I have scripts that change from one space to another and it works ok, but as long as you don't change the moment where the switch occur. For that particular reason I gave the animators the ability to directly manipulate the time of the change. It is a little more work for them, and they have to be very careful when making changes like that. Most of the animators were ok with that but a lot of them were quite frustrated.... In other rigs I don't do dynamic parenting at all for that reason - I give them the ability to switch from one space to another, but without snapping actually from one space to another- only shifting... But then they have to manually adjust the animations so the object smoothly shifts from one to another. I haven't found a perfect solution where the animator can do a button click and change it easily without trouble.

    ps: there is also a bi-directional plugin by Andrea Maiolo and Tim Naylor from ILM...

  5. Erick

    offline
    Member
    Posted 8 years ago
    #

    >Are you talking about the "parenter" plugin ?

    scroll_lock- in lightwave I am using the Follower modifier in the Motion Options to set up the hierarchy, but then there is a Dynamic (keyable) Parent modifier that I apply to the parent object. The Dynamic (keyable) Parent modifier seems to be pretty stable, once you get the hang of keying the switch. I've only used this for basic setups though, so you may be correct in changing the animation of the parent after the fact causes issues. I don't use Lightwave much, but that's the only software I have used that has a decent built-in dynamic keyable parent solution.

    I mentioned that Maiolo/Naylor plug-in as well, but I have not used it. As for mentioning the MoBu Multi-Ref Constraint, I remember Brad Clark talking about it in Jason's forum back in the day (in a similar thread) and he mentioned that Autodesk should integrate that setup into Maya and Max, which I have to agree with although I haven't used MoBu. I figure if it's good enough for Brad, it's good enough for me!

  6. scroll_lock

    offline
    Member
    Posted 8 years ago
    #

    I see... yeah, I have not used LW recently too... don't remember how the Follower worked exactly. I have memories I used it for other stuff- like the frameCache node in Maya
    Anyway, I just found interesting link. Haven't checked the script, but the demo looks interesting:
    http://www.paolodominici.com/demos.php

    check the Parent Master

  7. Animatix

    offline
    Member
    Posted 8 years ago
    #

    Yeah, that's what I got my inspiration from to try and tackle this problem myself. It suffers from the same problems though. It has as Fix Snap but only work for certain cases. And i was hoping through this thread we could try to, at least, document most or all the cases that could get messed up and some possible solutions.

  8. Javier "Goosh" Solsona (admin)

    offline
    Key Master
    Posted 8 years ago
    #

    That's very similar to how my system used to work.

    I also had a kinda fix snap that would fix all the different problems you might encounter (I believe I found 3 o 4 main ones?)

    We all agree doing the attachment is not a big deal right? (first part of paolo's demo in the "machine")

    Now the problem is when there are changes to the animation. I believe they are

    1) child is animated an now it's in a different position. You need to be able to reattach the child in this new location. (if it's a hand reaching for a ball, you need to be able to move the hand to the new position) and propagate that new attachment
    2) parent is in a new position. you need to attach it now with the new parents position and also propagate it. Say a hand was grabbing a ball, now you need the hand in a new position, so you want to have the ball go to that new position)

    I haven't had time to look at my code, but I remember taking care of all these issues

    I promise to look into it soon..
    (Does anybody want to change diapers while I dig through code and take a look?)

    J

  9. Animatix

    offline
    Member
    Posted 8 years ago
    #

    J,

    Were you able to find any of those notes? Just curious. Thanks!

  10. Javier "Goosh" Solsona (admin)

    offline
    Key Master
    Posted 8 years ago
    #

    Haven't look too much yet...

    I've been dealing with poop and taxes.. (which funnily enough, they go very close hand in hand) :S

    We are also off to Bali on Thursday for a couple of weeks to take a little break, so we've been trying to get everything up-to-date at home, specially in the pictures department.. we have a billion and one pictures :S

    It is on my mind though.. I'll get to it.. I will I will..

  11. Javier "Goosh" Solsona (admin)

    offline
    Key Master
    Posted 8 years ago
    #

    Sooooo.. finally managed to get a few seconds to look at the files

    I've uploaded what I've got to
    http://www.rigging101.com/files/dynamicParentConstraint.zip

    it was still in development last time I took a look at it.. We were playing with ideas, etc with Cam (Cameron Fielding). You guys are welcome to rip it apart. Expand it, make it better, make it work, etc...

    If there are scripts missing (I used to use a lot of libs) let me know and I'll add them in

    Happy coding

    Javier

  12. Animatix

    offline
    Member
    Posted 8 years ago
    #

    Cool! I will definitely check it out!

    Thanks!

  13. kwilli30

    offline
    Member
    Posted 8 years ago
    #

    Looks like I'm missing "addOverrideList"....anywhere I can snag it?

    Thanks again!

  14. Javier "Goosh" Solsona (admin)

    offline
    Key Master
    Posted 8 years ago
    #

    Oh.. all that stuff?!?!?

    mmnn.. that's part of the fancy Right Mouse Button stuff (it's all part of the Tips And Tricks DVD)

    you don't really need any of that to make it work though..that's just adding buttons to the object

  15. geothefaust

    offline
    Member
    Posted 8 years ago
    #

    Hello all, this is my first post. I recently just discovered this site.

    I saw this post and felt obligated to post here.

    I currently use LW 9.6 for all my rigging, and just wanted to say that, dynamic parenting can be done in LW. I know of 4 different solutions:

    Parenter (don't recommend it, it's the worst of the bunch).
    Follower, which is good depending on what you're trying to do.
    SimpleOrientConstraints & SimplePointConstraints, both work great.
    Same as Item, it's new in 9.6 but works fantastically. I use this one regularly. In fact I recently used it on a full character for my rigging reel, with little error.

    If anyone is interested, I could create a few sample scenes demonstrating a few of these methods. Just let me know.

Reply

You must log in to post.

Rigging101 » Rigging128
1,099 posts in 307 topics over 110 months by 188 of 8,226 members. Latest: fashionpvp, d2q4p5z2j, gasheldonl