Why do things move when unparented?

DekeDeke Posts: 1,288

Shouldn't they stay where they are...and just be unparented? Instead they move, parheps to some default location.

Comments

  • L'AdairL'Adair Posts: 7,144
    edited May 31

    It would help if you were more specific than just "things", but I'll take a stab at it:

    • If you right-click on a prop Object in the Scene tab, and select the Change "Object" Parent… a dialog window opens showing all the nodes available for parenting to.
    • Below that are two options, Parent in place and Show Hidden Nodes.
    • If Parent in place is checked, the object should not move when you parent it to a node.
    • To retain that location, Daz Studio will calculate the Transforms needed to keep the Object in the same place.
      • A simple example would be a sphere with one Transform setting at non-zero: Y-Translate set to 10.
      • Parenting the sphere to a Group with a Y-Translate of 20 requires the sphere's Y-Translate change to -10.
    • If Parent in place is not checked, the sphere's Y-Translate becomes 0, putting the sphere at the bottom of the group, which is at Y-Translate of 20. The sphere is actually being moved to the XYZ location of 0, 0, 0 of the group, so it will also lose any Z-Translate and/or X-Translate. (Rotation is not affected.)
      • Enable the Parent in place option again and drag the sphere out of the group. It should now have a Y-Translate of 20.
    • When you change the node an object is parented to, including changing to None, if parenting in place is enabled, the prop object will not move.

    I hope this helps understand what happens. However, notice I specified a prop object. I believe objects with rigging aren't that straight forward. But I admit, I haven't done extensive testing, just notice unparenting a rigged object here and there that moved in ways other than I was expecting.

    Hopefully, someone who understands those situations will step in and help us both out.

    Post edited by L'Adair on
  • DekeDeke Posts: 1,288

    Thanks. I didn't know there was a difference between a prop object and a rigged object. I was talking about things like a set that has many elements and when I set the one of those elements to Parent--.None....it moved. Of course the opposite is also true and I can have an item that isn't parented and when I parent it to another item (for instance parenting a prop to a character's hand), the item might move or change position or scale (perhaps based on the settings of the hand its being parented to). Sort of frustrating.

  • Syrus_DanteSyrus_Dante Posts: 954
    edited May 31

    The short answer to the OP question: Go to the Scene pane option menu and check Parent Items In Place.

    If you want to know why read: Drag & Drop in Scene pane, "Parent Items In Place" global setting

     

    L'Adair said:
    Hopefully, someone who understands those situations will step in and help us both out.

    I feel addressed. These issues with parenting are confusing people all the time since years now and I already made screenshots but didn't found the time to answer until now.

    I hope this post eliminates some of the confusions, its still a complicated topic and maybe better explained with a video and examples, but I try it with screenshots for now.

    With "things"[*1] not parented to anything they use Global Transformations (Position, Rotation, Scale). Once you parent something it gets transfered to Local Transformations.

    [Edit_1]: With Parent Items In Place off in the Scene pane options menu the parented items / figures will always "snap" to the other elements Center Point with zeroing the position (translations).

    Parent In Place will define if the transformations of the scene element you parent will be added to the other elements transformations you parent to or not.

    With Parent In Place it will "saty in place" by parenting.

    There are two ways of parenting / unparenting "things"[*1] its eighter an item or figure but in case of parenting it dosn't matter.

     

    Change Parent dialog

    One way to (re)parent "things" is to use the right-click menu in the Scene pane, or the main menu Edit>Figure/Object>Change Parent.

     

     

    The downside of the Change Parent dialog is you can only parent a single thing ;) (item / figure) at a time. The checkmark "Parent in Place" at the bottom applies only to the current action.

     

    Drag & Drop in Scene pane, "Parent Items In Place" global setting

    The other method of (re)parenting is simply using drag & drop in the Scen pane, which I prefer because you can parent multible selected items / figures at once. In this case there is a "global" Parent Items In Place setting in the Scene pane option menu, that is a toggle switch and once set it stays like this between DS sessions. Notice even it says "Items" it also applies to figures.

    You may never have used drag and drop in the scene pane but this Parent Items In Place setting will also affect what will happen if you right-click an item / figure and choose Unparent. I think this Parent Items In Place checkmark is a bit hidden so I've added it to a toolbar. It dosn't have an icon but the text gets a highlighted color if activated to remind me of if its currently on or off.

    Tool Bar toggle Actions

    The sentence "Without Parent Items In Place they will snap to the center position of the other node" in the image is only true for items that have no transformations applied. If they have transformations they will be added to the transformations of the other item you parent it to in relation to the other items Center Point. Also if you unparent items / figures with Parent Items In Place set to off the Local Transformations become Global Transformations in relation to the wold center / point zero or how do you call it.

    If you want to change the Center Point of an item / object / figure select the Joint Editor tool, open the Tool Settings pane and move the green crosshair to change the Pivot / Origin Point how the Center Point is also called.

     

    Snap to parent - Example to practice (time saver method)

    Now try this example Create a primitive object, it will spawn at world center with no transformations. Then select the genesis figure right hand in the viewport by double click (first click will select the whole figure). By doing this the figure node hierarchy will expand in the Scene pane. Now uncheck Parent Items in Place and drag & drop (you can scroll the long list with the mouse wheel while dragging) the primitive in the Scene pane to the genesis figure hand, it will snap directly into position of the Center Point of the right-hand bone/node. Saves you some time parenting props to the hands or the head or whatever. Don't forget to turn on the Parent Items In Place afterwards or things again start to jump around in unexpected ways.

     

    Definition: Item / Object / Figure?

    [*1] Confusion about those "things" this is my definition, I'm not exactly shure if this is right, please correct me if you know it - I want to know the correct definition.

    Definition of an Item (I thnik DS isn't consistent with naming it Item or Object):

    • object/prop with geometry but no rigging (no bones, no movable parts)
    • object with no geometry: Null, Group, Light, DFormer, ect.
    • a single selected figure Node can also be handled as an Item eg. Zero Selected Items Pose applied to a bone

     Definition of a Figure:

    • a figure is defined by beeing rigged having a skeleton with bones also called Nodes
    • can be: genesis figure, clothes, hair, shoes, props with movable parts, ect.
    Post edited by Syrus_Dante on
  • L'AdairL'Adair Posts: 7,144
    edited May 31

    @Syrus_Dante, Thank you.

    When I was testing the sphere and group example I gave, with Parent Items In Place unchecked, it didn't matter what the values were for XYZ Translate settings of the sphere, they were zero-out when I parented the sphere to the group. I was expecting DS to add the sphere with the translate value intact, that is to leave Y-Translate at 10 inside the group, making the sphere jump to the equivalent of 30, (10 for the sphere and 20 for the group.) In other words, I was expecting "If they have transformations they will be added to the transformations of the other item you parent it to in relation to the other items Center Point." However, I was using the current 4.11 beta. I now think I should test this in other versions I have installed!

    Post edited by L'Adair on
  • Syrus_DanteSyrus_Dante Posts: 954
    edited May 31

    I'm still using latest "stable" DS version 4.10.0.123.

    But you are right with Parent Items In Place unchecked the translations (position) gets zeroed-out and the item will snap to the others item Center Point with using drag and drop in the scene pane. However the other transformations like Rotation and Scale stay as they are. If the item / figure you parent your selection to is allready rotated it will be added to the rotation with Parent Items In Place unchecked.

    I will correct this wrong information in my previouse post.

    In case the item / object you parent your selection to has scaling applied by default the parented items / figures use the setting Inherit Parent Scale, so they change scale in relation to the scale of the item / figure they are parented to. Most times this is not what you want. You can change that by activating the Joint Editor tool and open up the Tool Settings pane to uncheck this Inherit Parent Scale setting.

    Edit: Otherwise if you scale a Group you would expect the parented elements in that Group to change scale acordingly and this is what happens by default.

    Post edited by Syrus_Dante on
  • L'AdairL'Adair Posts: 7,144
    edited May 31

    Okay, I just tested this with a sphere (Y-Translate: 10) and a group (Y-Translate: 20) in 4.8, (on this computer,) and 4.9, (on The Beast.)

    With Parent Items In Place enabled, the sphere behaved as expected in both 4.8 and 4.9; it never moved within the viewport.

    With Parent Items In Place disabled in 4.9, the sphere moved to 0, 0, 0 of the group.

    With Parent Items In Place disabled in 4.8, the sphere moved to 0, -15.24, 0 of the group. (I wasn't expecting that!)

    I then did some further testing and realized the difference was caused by creating the spheres in 4.8 with Origin set to Object Center, but in 4.9, Origin was set to World Center. In every case, parenting the sphere to the group with Parent Items In Place disabled put the Object Center to 0, 0, 0 of the group. The value shown in Y-Translate for the sphere was determined by the size of the sphere! (When I used a plane instead of a sphere, the Y-Translate went to 0, 0, 0.)

    This has been an enlightening rabbit hole. lol

    (I added this info in an edit to my previous post, then moved it here when I discovered you'd posted before I finished the edit. This is not actually a response to your post.)

    Post edited by L'Adair on
  • L'AdairL'Adair Posts: 7,144

    I'm still using latest "stable" DS version 4.10.0.123.

    But you are right with Parent Items In Place unchecked the translations (position) gets zeroed-out and the item will snap to the others item Center Point with using drag and drop in the scene pane. However the other transformations like Rotation and Scale stay as they are. If the item / figure you parent your selection to is allready rotated it will be added to the rotation with Parent Items In Place unchecked.

    I will correct this wrong information in my previouse post.

    In case the item / object you parent your selection to has scaling applied by default the parented items / figures use the setting Inherint Parent Scale, so they change scale in relation to the scale they are parented to. Most times this is not what you want. You can change that by activating the Joint Editor tool and open up the Tool Settings pane to uncheck this Inherint Parent Scale setting.

    As you said originally, parenting is a complicated topic. At least, if one wants to know what it's doing and why. Such a simple thing, but so many possibilities! I think I shall content myself with the fact it works. lol

Sign In or Register to comment.