Change Parent Function

  • Hi there,

    I have a walking character and he is pulling a cage behind him. I animated him walking on the spot with his hands holding the cage and then I've use Inverse Kinematics on his hands to keep them in place. Everything is fine.

    I've then animated him holding the cage, but walking forward instead of on the spot. As you can imagine he moves forward and the cage stays put. So I parented the cage to his hand and now when he moves forward the cages follows. Here lies the problem, in a basic walk cycle a character generally moves up and down (low point and high point). The cage obviously inherits these moves, which looks wrong lol.

    My question is... is there a way to stop an object that is parented to another object, i.e a hand to not move on a certain axis? I'm wanting the cage to follow my character when he walks forward, but I don't want it to move up and down as it follows him.


  • @coull3d said in Change Parent Function:
    .. I'm wanting the cage to follow my character when he walks forward, but I don't want it to move up and down as it follows him.


    You could parent both it and the figure to a "null" object. Both will keep their relative positions related to the null and neither will move x/y/z unless the null is moved. (Make a null with primitive, render it invisible to the camera and check off everything but "visible" (that is optional) and then place it in the center x,z (should load that way), but change it's y value to below the ground/terrain, so it's out of the way. Then, parent the figure to it and the cage to it. You can move the figure and cage independently at any time. In absence of that, they'll still retain relative difference to the null unless you make them do otherwise.

    I don't know what this will do in a walk cycle, though. You may be able to, instead, parent the cage to the figure, but I don't think, in this case, you can parent it to anything but a specific group's center, which may change as the figure is animated, resulting in some "bouncing." (ie: I don't think props can be parented to a multi-grouped "figure's" center. Not sure.) You can parent it to the hip to check to see how badly it jiggles/moves.

    PS - I don't do animation, so there may be a much easier way to do what you wish to do. :) If so, disregard my ignorant post! :D

  • Perhaps you should be parenting the figure to the cage rather than the other way around? You can overlay an animation walk cycle on top of the movement of its parent, but to my knowledge, unless you counter keyframe the cage to stay on the floor, it doesn't go the other way. I also have a vague feeling that the constraint option might be of use although I don't remember how it would apply.

  • @morkonan Thank you for your reply, I'm pretty new to Poser so I knew nothing about "nulls" :) Is there a way to stop a null or prop moving on a certain axis. i.e I just want it to move along the x axis only, blocking its ability to move on the Y and Z.

  • @matb Thank you for your reply. I'm pretty new to Poser so I'm still figuring it out. I've looked at object constraining when I did the object pick up tutorial on Smith Micro graphics. I dunno If that could be applied to what I want though.

    Parenting the figures hand to the cage doesn't make the cage follow it when he walks forward. Looks like I'm going to need to do quite a bit of trial and error to figure this out!

  • @coull3d said in Change Parent Function:

    Is there a way to stop a null or prop moving on a certain axis. i.e I just want it to move along the x axis only, blocking its ability to move on the Y and Z.

    Two options spring to mind, and you could do one or both depending on preference. First open the parameter settings for the dial (right click on it and choose Settings...):

    • Hide the dial (which only stops the user operating it): check the 'Hidden' box.
    • Set the min and max limits both to zero to prevent it moving by any means; Also tick the 'Force limits' checkbox.

  • @englishbob

    Thanks Englishbob! I was unaware you could do that, pretty cool. Here lies my new problem, so my character is walking forward and naturally moves up and down (not by much). He is dragging a trolley behind him. I need the trolley to follow him on the x/z axis, but not to follow him on the y (i,e move up and down). Is there any way to do this?

    So the prop (trolley) inherits the characters x/z movement, but not its Y movement? I've parented the trolley to my characters hand. When my character walks forward the trolley naturally follows him, but it inherits his up and down movement, which I don't want. I've set the props y and z to 0 and turned on force limits.

  • It's a bit of a fiddle, because parenting is an all-or-nothing process.

    Here's how I would try to do it:

    • Set up the animation as you have done, with the trolley parented to the figure so it follows every movement they make. As you've seen, its translations are now relative to the figure, so setting limits has no effect.
    • In the animation palette, set keyframes for the trolley on every frame.
    • Un-parent the trolley (i.e. parent it to 'Universe'). It should still follow the figure, but now further changes to the figure won't affect it, and its movements are relative to the Poser universe again.
    • Set all the trolley's Y translations to zero (or whatever figure you want). You can do this in the animation palette by expanding the trolley's entries and deleting all the yTran keyframes. Then just set frame 1 to the appropriate figure.

    I suspect this won't be perfect. If the trolley runs on wheels, it should rock up and down slightly as the figure rises and falls. However you should have a starting point from which to refine. Animating in Poser isn't the easiest of tasks. ;)

  • Englishbob you are a genius!!! I've implemented it and it works!!!!!!!

    Ok so my character walks forward and the trolley now follows my character, but doesn't adopt his Y movement, winner!

    Many thanks!

  • Nobody is more surprised than I am. :)
    I mean, glad it worked as predicted!

  • @englishbob

    As a little side note if anyone else tries this, my cage has handles so to get your characters hands to stay on the handles while your character moves up and down, is to select the forearms and make them look at the cage, also make sure your cages green and red axis are on the handle.

  • One other way is to put a IK chain on the handle of the wagon and then constrain the handle to the figure.

    Here is the link that talks about constraining two objects/figures.