adjust rigging to shape for my geograft.

I decided to replace the tongue and teeth.
I tied them to the bones of the daz femele 8.
And I loaded morphs for this figure, but the problem is that when I use "adjust rigging to shape", it's not the bones that change, but the shape of the teeth.

What should I do to change the location of the bones?

Some morphs have the same names on both their figure and teeth.

So when I put teeth on the figure the morph with the same name disappears.

Comments

  • Richard HaseltineRichard Haseltine Posts: 100,468

    Show Hidden Properties on should let you see the matching morphs, but if you want the bones to be independent then they need to have unique names - if the names match then the centres need to match the base, and will pose to follow them.

  • zeni1agentzeni1agent Posts: 61

    Richard Haseltine said:

    Show Hidden Properties on should let you see the matching morphs, but if you want the bones to be independent then they need to have unique names - if the names match then the centres need to match the base, and will pose to follow them.

    I have bones for a daz female 8. My geofraft hides the geometry of the tongue and now the bones on the tongue are empty. I don't want to rename the bones because it creates extra garbage after exporting. I want to apply "adjust rigging to shape" to my geofraft so that the bones on the figure also change, because they still only affect my geofraft now, and all unnecessary geometry is hidden.

  • Richard HaseltineRichard Haseltine Posts: 100,468

    I would think then that you need to cretae a "shadow" version of the morph for the base figue and use that to guide the rigging adjustment.

  • zeni1agentzeni1agent Posts: 61
    edited July 30

    Richard Haseltine said:

    I would think then that you need to cretae a "shadow" version of the morph for the base figue and use that to guide the rigging adjustment.

    Can I somehow copy the position of all the bones from one object to another? 

    But only for the bones of the tongue

    Post edited by zeni1agent on
  • Richard HaseltineRichard Haseltine Posts: 100,468

    If the bones are named to match the bones of the original figuer then they should already match. Having bones with the same name but diffrent centres would break the item.

  • zeni1agentzeni1agent Posts: 61
    edited July 30

    Richard Haseltine said:

    If the bones are named to match the bones of the original figuer then they should already match. Having bones with the same name but diffrent centres would break the item.

    Yes, they match and work, but when I apply the morphs, the bones stay in one place.
    I can't change their position.
    I tried to load the geograft after applying (adjust rigging to shape) and after (Fit to)
    But then the position of the bones returns to the initial one

    Original morph

    after (Fit to)

    Post edited by zeni1agent on
  • Richard HaseltineRichard Haseltine Posts: 100,468

    You need to move the base figure bone centres to the positions you want for the GeoGraft's, or break the link with the base figure bones.

  • zeni1agentzeni1agent Posts: 61

    Richard Haseltine said:

    You need to move the base figure bone centres to the positions you want for the GeoGraft's, or break the link with the base figure bones.

    I tried to move the centers of the bones of the base figure. But I don't know how to move them if the figure does not see the geographer. The original grid is motionless and hidden. I tried to do this in the river but it is difficult because in order to see the bones I constantly have to switch between the figure and the geographer. 

  • PadonePadone Posts: 3,675

    Unless you support the specific FBM, the extra bones will not follow. You need to adjust rigging to shape separately for the extra bones.

    steps:

    1. apply the figure FMB
    2. select only the extra bones in your geograft for adjust rigging to shape
    3. eventually ERC freeze and save as support asset to support the FBM for the geograft
  • zeni1agentzeni1agent Posts: 61

    Padone said:

    Unless you support the specific FBM, the extra bones will not follow. You need to adjust rigging to shape separately for the extra bones.

    steps:

    1. apply the figure FMB
    2. select only the extra bones in your geograft for adjust rigging to shape
    3. eventually ERC freeze and save as support asset to support the FBM for the geograft

    Maybe you didn't understand me.
    I have a problem with bones that have the same name.
    I have a figure of the character DAZ Female 8 and a Geograft that replaces some parts in the model.
    And a morph that changes the shape of the mesh and the position of the bones. Both for the Figure and for the Geograft.
    I can change the position of the bones on the Figure. But the geometry that hides the Geograft does not change because it is hidden and I do not need it.
    The Geograft also changes shape, but I can not move the bones in any way.

    before using the morph

    After using the morph

    After applying adjust rigging to shape

    adjust rigging to shape if it is separated from the figure

  • Richard HaseltineRichard Haseltine Posts: 100,468

    If the base figure does not chnage there is nothing for the graft to follow. You cannot ignore the areas thata re hidden on the base, or at least you have to adjust the base rigging to match what you want the graft to do (manually sicne Adjust rigging to Shape has nothing to work with) and then link those changes to the controller for the morph. The matching bones on base and fitted items, including grafts, will always be the same in set up and will be controlled by the base.

  • zeni1agentzeni1agent Posts: 61

    Richard Haseltine said:

    If the base figure does not chnage there is nothing for the graft to follow. You cannot ignore the areas thata re hidden on the base, or at least you have to adjust the base rigging to match what you want the graft to do (manually sicne Adjust rigging to Shape has nothing to work with) and then link those changes to the controller for the morph. The matching bones on base and fitted items, including grafts, will always be the same in set up and will be controlled by the base.

     Can I copy the position of one or more bones from Geograft to a figure? because copying every value for every bone is just awful

  • Richard HaseltineRichard Haseltine Posts: 100,468

    Are these the adjustments that you want? I don't think there is a bulk copy/paste, but it would probably be scriptable.

  • zeni1agentzeni1agent Posts: 61

    Richard Haseltine said:

    Are these the adjustments that you want? I don't think there is a bulk copy/paste, but it would probably be scriptable.

    Can I at least copy the position of one bone? 

  • Richard HaseltineRichard Haseltine Posts: 100,468

    Not as far as I know or can see. The scripting commands you would need are all in DzNode - http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/scripting/api_reference/object_index/node_dz - you would need to copy from one node and assign the values to the matching proeprties on the other node. The simplst method would be to go proeprty by proeprty, using

    DzFloatProperty    getOrientXControl()
    DzFloatProperty    getOrientYControl()
    DzFloatProperty    getOrientZControl()

    DzFloatProperty    getOriginXControl()
    DzFloatProperty    getOriginYControl()
    DzFloatProperty    getOriginZControl()

    DzFloatProperty    getEndXControl()
    DzFloatProperty    getEndYControl()
    DzFloatProperty    getEndZControl()

    though there are other options which will use a vector to set all the values at once.

    void    adjustEndPoint( DzVec3 endPnt )
    void    adjustOrientation( DzQuat orientation )
    void    adjustOrientationAngles( DzVec3 angles )
    void    adjustOrigin( DzVec3 origin )

    DzQuat    getOrientation( Boolean defaultVal=false )
    DzVec3    getOrigin( Boolean defaultVal=false )
    DzVec3    getEndPoint( Boolean defaultVal=false )

    void    setOrientation( DzQuat orientation, Boolean makeDefault=false )
    void    setOrientationAngles( DzVec3 angles, Boolean makeDefault=false )
    void    setOrigin( DzVec3 origin, Boolean makeDefault=false )
    void    setEndPoint( DzVec3 endPnt, Boolean makeDefault=false )

  • zeni1agentzeni1agent Posts: 61

    Richard Haseltine said:

    Not as far as I know or can see. The scripting commands you would need are all in DzNode - http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/scripting/api_reference/object_index/node_dz - you would need to copy from one node and assign the values to the matching proeprties on the other node. The simplst method would be to go proeprty by proeprty, using

    DzFloatProperty    getOrientXControl()
    DzFloatProperty    getOrientYControl()
    DzFloatProperty    getOrientZControl()

    DzFloatProperty    getOriginXControl()
    DzFloatProperty    getOriginYControl()
    DzFloatProperty    getOriginZControl()

    DzFloatProperty    getEndXControl()
    DzFloatProperty    getEndYControl()
    DzFloatProperty    getEndZControl()

    though there are other options which will use a vector to set all the values at once.

    void    adjustEndPoint( DzVec3 endPnt )
    void    adjustOrientation( DzQuat orientation )
    void    adjustOrientationAngles( DzVec3 angles )
    void    adjustOrigin( DzVec3 origin )

    DzQuat    getOrientation( Boolean defaultVal=false )
    DzVec3    getOrigin( Boolean defaultVal=false )
    DzVec3    getEndPoint( Boolean defaultVal=false )

    void    setOrientation( DzQuat orientation, Boolean makeDefault=false )
    void    setOrientationAngles( DzVec3 angles, Boolean makeDefault=false )
    void    setOrigin( DzVec3 origin, Boolean makeDefault=false )
    void    setEndPoint( DzVec3 endPnt, Boolean makeDefault=false )

     

    I have never worked with DzNode.
    Do I need to enter the script in the Script IDE?
    Is this C# syntax?

    How to access the required bones
    public Value1
    public Value2

    Value1 = getObject(Path to the bone to copy)
    Value2 = getObject(Path to the bone to paste)

    Value2.setOrientation( Value1.getOrientation( Boolean defaultVal=false ), Boolean makeDefault=false )

  • Richard HaseltineRichard Haseltine Posts: 100,468
    edited August 1

    You can use any text editor, it is broadly Javascript (both are forms of ECMA2 script, as I recall). You can use the Scene methods to get selections - you could also check to see if one node had the other as a followBone to get the direction of copying right (or use the fact that the first selected is the Primary Selection and use that to decide which needed to be copied from and which to).

    http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/scripting/start

    Post edited by Richard Haseltine on
Sign In or Register to comment.