Home Technical Talk
The BRAWL² Tournament Challenge has been announced!

It starts May 12, and ends Sept 12. Let's see what you got!

https://polycount.com/discussion/237047/the-brawl²-tournament

[MAYA] why there is no "parent" constraint?

evilmushroom
polycounter lvl 10
Offline / Send Message
evilmushroom polycounter lvl 10
It’s weird that such a basic (and mandatory) constraint is missing from the "top-tier" animation software.
But before someone points to that thing labelled "Parent" under the Constrain menu, or shares links to the help docs. let’s define what parenting actually means.

A parent is a hierarchical relationship: one object is the parent, the other the child. The child follows the parent’s transform (translate, rotate, scale). You do this in Maya by MMB-dragging the child under the parent in the Outliner. Simple.
All objects are initially parented to the world. Changing a child’s parent just changes the hierarchy, it doesn’t affect the object’s ability to be animated.

Now here’s the weird part:
Maya’s so called Parent Constraint doesn’t behave like that at all.
It doesn’t create a hierarchy. It just copies the transform of the target. And if you animate the constrained object? It breaks the illusion completely because it was never a real parent relationship. It’s just a glorified "Copy Transform" by blender language, or "position constraint" by 3dsmax language, mislabeled as "Parent."

So here’s the question:
Why doesn’t Maya have a real Parent Constraint, one that simulates dynamic hierarchy changes with actual world-space preservation, like Blender’s Child Of, or 3ds Max’s Link Constraint from 20 years ago?

Every DCC has its own philosophy, sure.
So what’s the philosophy here?
Am I missing something?
Or is it the same line of thinking that made Maya users extrude along spline for 20 years… until Mesh Sweep was introduced in 2022?

Replies

  • Eric Chadwick
    I'm not a longtime Maya user, but maybe the workflow described here might help you.
    https://forums.autodesk.com/t5/maya-forum/constrains/td-p/6719882
  • evilmushroom
    Offline / Send Message
    evilmushroom polycounter lvl 10
    I'm not a longtime Maya user, but maybe the workflow described here might help you.
    https://forums.autodesk.com/t5/maya-forum/constrains/td-p/6719882

    Thank you for taking the time to respond, but just to clarify, I’m not asking how to use Maya’s “Parent Constraint.” I’m pointing out that the feature itself is fundamentally not a real parent constraint, and that’s the core issue.

    the problem in the link you shared can indeed be solved by a "copy transform" (by blender language) or "position constraint" (by 3dsmax language) or "parent" (by maya language), as all is needed is to have that scalp to follow the exact head animation with or without offset, because the scalp does not need to move.

    lets explain what copy transform is first, it means copy the transforms from parent and apply them to child frame by frame, if child is animated, copy transform is no longer valid as it cannot do its job.

    lets take a second example, if you parent a knife to the hand, that knife will follow the hand, if you move the fingers, you will have to animate the knife, it can be done if you parent through the outliner with a real parenting, but if you use constraint, the moment you animate the knife, the link is broken in maya, but works fine in every other DCC, why? because maya does not have a "parent" constraint, it has a copy transform labelled "parent" .. like a fiat car with ferrari logo, it does not make it a ferrari. 

    I also know the maya solution (or better say workaround), you have to:
    1. create locator
    2. align locator with hand
    3. parent locator to hand through outliner
    4. parent constraint the knife to locator

    while in any other DCC its:
    1. parent constraint knife to hand
  • Eric Chadwick
    Yeah you’ll need someone super familiar with Maya rigging, which is not me. Perhaps @poopipe
  • Sage
    Offline / Send Message
    Sage polycounter lvl 20
    When I did rigging in Maya back in 2017 I thought their tools worked fine especially when compared to say 3D Studio Max. What do you expect the parent constraint to do that the one in Maya isn't doing? I thought their Parent constraint did both the rotation and position and that is how it was different from say the orientation constraint (rotates), or point constraint (move). There were bugs so sometimes you had to take that into account. This constraint seem to be meant to control a rig.

    In Maya the way you Parent something to get a Hierarchy is to select the object (target) and then select the other object that is going to be the Parent and press P. The constraints can be used to control your rig with Controllers. Usually the controllers are made with splines to make the life of the animator more pleasant.

    I don't rig in Blender so I'm not sure what your desired outcome is. Do you not want to be able to animate the knife by mistake? In Maya you can lock  and hide the transforms you don't want the animator to modify by mistake. This is step is done at the end of the rigging process to prevent the animator from breaking the rig.


  • Eric Chadwick
    No, I think they basically want to animate the child, and be able to switch parents. So they could animate the knife to match the parent's finger animations, then the hand releases the knife, so a need to re-parent the knife to a table and animate the knife falling over or whatever.
  • evilmushroom
    Offline / Send Message
    evilmushroom polycounter lvl 10
    => What do you expect the parent constraint to do that the one in Maya isn't doing?

    to be able to animate the child, the constraint name is "parent" so it should act like parenting using "P" (p for  parent),
    Maya Keyboard Shortcuts, Hotkeys & Commands Guide | Autodesk
    (as you know, if you parent an object to another using "P", animating the parented object does not break the hierarchy, unlike the "parent" constraint), 
    if it cant, then its something else labelled "parent"

    if you know 3dsmax, then you have two constraints:
    • position constraint
    • link constraint
    link constraint act like a link but without changing the hierarchy
    position constraint makes an object keep the same offseted position from the object it is constrained to 
    but in maya you have only one:
    • position constraint (parent)
    and link constraint is completely missing, if you want it, you have to simulate it through a long process as I explained in my second reply.

    usability: parenting with "P" in the outliner works for only one object, if you want to space switch it between two objects, lets say gun from belt to hand, you will have to parent constraint it, if you do so in maya, boom .. you're not able to animate the gun to repositions it properly in the hand.
    you can say, yeah but in maya we dont
    1. parent constraint the gun to belly
    2. parent constraint the gun to hand
    3. animate influence,
    instead we
    1. create a locator at belly
    2. create locator at hand
    3. parent with "P" the first locator to belly
    4. 
    parent with "P" the second locator to hand
    5. parent constraint the gun to first locator
    6. parent constraint the gun to second locator
    7. animate the influence

    So yeah, Maya can simulate parenting. But not through the parent constraint, and not in a clean or intuitive way. If it takes 7 steps and 3 locators to do what one node in Blender or one constraint in 3dsmax can do, that’s not a feature. That’s a workaround!! and a tedious one.
  • Sage
    Offline / Send Message
    Sage polycounter lvl 20
    Would this work? I guess it is sort of this in a nutshell. evilmushroom said:
    => What do you expect the parent constraint to do that the one in Maya isn't doing?

    to be able to animate the child, the constraint name is "parent" so it should act like parenting using "P" (p for  parent),
    Maya Keyboard Shortcuts, Hotkeys & Commands Guide | Autodesk
    (as you know, if you parent an object to another using "P", animating the parented object does not break the hierarchy, unlike the "parent" constraint), if it cant, then its something else labelled "parent"

    if you know 3dsmax, then you have two constraints:
    • position constraint
    • link constraint
    link constraint act like a link but without changing the hierarchy
    position constraint makes an object keep the same offseted position from the object it is constrained to 
    but in maya you have only one:
    • position constraint (parent)
    and link constraint is completely missing, if you want it, you have to simulate it through a long process as I explained in my second reply.

    usability: parenting with "P" in the outliner works for only one object, if you want to space switch it between two objects, lets say gun from belt to hand, you will have to parent constraint it, if you do so in maya, boom .. you're not able to animate the gun to repositions it properly in the hand.
    you can say, yeah but in maya we dont
    1. parent constraint the gun to belly
    2. parent constraint the gun to hand
    3. animate influence,
    instead we
    1. create a locator at belly
    2. create locator at hand
    3. parent with "P" the first locator to belly
    4. parent with "P" the second locator to hand
    5. parent constraint the gun to first locator
    6. parent constraint the gun to second locator
    7. animate the influence

    So yeah, Maya can simulate parenting. But not through the parent constraint, and not in a clean or intuitive way. If it takes 7 steps and 3 locators to do what one node in Blender or one constraint in 3dsmax can do, that’s not a feature. That’s a workaround!! and a tedious one.
    Have you tried to parent constraint Cube to rect A, then Cube to rect B? The result is the cube is parented constrained to rect A and rect B at 50%. Then you have to keyframe the influence. 
  • Sage
    Offline / Send Message
    Sage polycounter lvl 20
    I do agree the way Maya does it is not good as Max or Blender. I'm currently working on automating this: 
    I'm trying to make a script that does this: 
    Specify what the child object is
    Parent constraint the target to the object's offset(locator)
    Set the keyframes either with S shortcut or the UI
    Parent constraint the target to the other object's offset in the list(locator)

    Quality of life things:
    when you select the object from the parent list the object in the scene is selected and vice versa




  • evilmushroom
    Offline / Send Message
    evilmushroom polycounter lvl 10
    => Have you tried to parent constraint Cube to rect A, then Cube to rect B? The result is the cube is parented constrained to rect A and rect B at 50%. Then you have to keyframe the influence. 

    yes, at 50% you get thet spring effect, and you move influence to 100% and 0% depending on which you want the object to follow.
    but the thing is, as soon as you animate the object (not the influence), the link breaks, hence the locators, which is an extra step
    you can achieve the same behaviour in max using dummies (the equivalent of locator), and position constraint,
    But if you want real dynamic parenting with proper world-space preservation, you use Link Constraint.
    which means link constraint is a whole missing thing, which is weird given that maya is the "superior" animation tool, and both belong to autodesk.
  • Sage
    Offline / Send Message
    Sage polycounter lvl 20
    I'm still waiting for a modifier stack in Maya. Maybe when I turn 60 they will have it LOL.

    I tried doing a parent constraint the target to both rect A and rectB. The reason I wanted to add locators was to be able to offset the target as needed.
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    Sage said:
    I'm still waiting for a modifier stack in Maya. Maybe when I turn 60 they will have it LOL.
    good one..

    i actually don't know how you'd do this other than to animate the influence as you would with an fk/ik blend rig - i haven't done any maya character rigging since about 2012 though so any number of things could have changed (i.e. moved to a different menu)
Sign In or Register to comment.