Do I Have This Correct? Something New I Am Doing With Property Hierarchy / ERC Freezing Stuff.

Dark45Dark45 Posts: 86
edited November 26 in Daz Studio Discussion

Sorry if this is confusing, I really hope I can explain this good enough. I've figured out a decent amount but am struggling to make sure during testing I am doing everything correctly still.


So, I am currently creating JCM's that should only trigger if multiple bones are moved. This is all on a custom character morph and these JCMs will not tigger on a default genesis.

Examples.

Bend joint  =  Bend only JCM (Bend as the 1st stage controller + Character morph as 2nd Stage controller on the bend morph I created). Seems to work.

Bend + Side to Side  =  Bend + the Side To Side morph I created on top of the Bend morph. From what I can tell, this does not have a 1st stage controller for any joint. Instead in the 2nd stage controller of the morph needing to be activated, I have Character Morph + Bend + Side to Side so this way it will only trigger if these conditions are met. If this is the correct way of doing something like that, is an ERC freeze needed? I would think so. Do you perform an ERC Freeze on the character morph at that point after you test it all and make sure it is working? Or would you just simply save these JCMs at that point to retain the information?

EDIT :

Messing around a bit more. On these morphs that trigger only when multiple bones are moved... it looks like maybe the character morph should be the 1st stage controller? Maybe? It seems to be working correctly.

Post edited by Dark45 on

Comments

  • ERC Freeze is a basic tool - it links one controller to one or more  subcomponents using addition with a scalar to ensure that when ther controller has its   currenmmt value the sub-components have their current values. Optionally it can add a single attentuator, which will multiply by the selected property (so you can use it to set up your basic bend correction that is triggered only when both the bend and your morph, as the attentuator, are in effect). Abything beyond that level of complexity will require working in the Property Hierarchy - whether you go there straight off or do an ERC Freeze first is a matter of convenience, workfloww, and possibly the actual types of links needed.

  • crosswindcrosswind Posts: 7,287

    You may want to set up Multi-Dimensional controllers ... check these threads:

    https://www.daz3d.com/forums/discussion/656526/how-to-make-erc-for-pjcm-under-multiple-conditions

    https://www.daz3d.com/forums/discussion/651706/too-many-morphs-or-should-i-just-give-up-on-this/p1

    To make pJCMs / cbs work, you don't need ERC Freezing but just setting up ERC links in Property Hierarchy.

  • Dark45Dark45 Posts: 86
    edited November 27

     

    Richard Haseltine said:

    ERC Freeze is a basic tool - it links one controller to one or more  subcomponents using addition with a scalar to ensure that when ther controller has its   currenmmt value the sub-components have their current values. Optionally it can add a single attentuator, which will multiply by the selected property (so you can use it to set up your basic bend correction that is triggered only when both the bend and your morph, as the attentuator, are in effect). Abything beyond that level of complexity will require working in the Property Hierarchy - whether you go there straight off or do an ERC Freeze first is a matter of convenience, workfloww, and possibly the actual types of links needed.

    Thank you, Richard. As you can see, I've never setup something this complex so the ERC Freeze was just a workflow thing I was used to at the moment, I didn't even understand fully quite what it was until after I made this post lol (thought I knew but, nope lol). Anyway, as you can imagine, there isn't very many if any tutorials out there for something like this. I know just enough to make me feel like I know what I may end up doing and then I get myself into trouble ha. Looks like Crosswind may have some resources for me below. Thanks again, Richard, I hope everything goes well for you on your Holidays.

     

    crosswind said:

    You may want to set up Multi-Dimensional controllers ... check these threads:

    https://www.daz3d.com/forums/discussion/656526/how-to-make-erc-for-pjcm-under-multiple-conditions

    https://www.daz3d.com/forums/discussion/651706/too-many-morphs-or-should-i-just-give-up-on-this/p1

    To make pJCMs / cbs work, you don't need ERC Freezing but just setting up ERC links in Property Hierarchy.

     

    Thank you for the resources, Crosswind. I've already looked through them a bit and I'm going to look at this video by Mada as I haven't seen it yet. Since I made this post, I figured out a few things but obviously, I still haven't successfully completed what I set out to do. I'll see if I can explain it better but after seeing your information from the resources, I can see my approach is flawed and need to use a CTRLMD since the controller for the joint itself cannot be a 1st stage and 2nd stage as the new property would be able to do being floating point and not a degree value (at least if I am understanding that right).

    So here is a quick breakdown of the thought process here.

    Thigh Bend Joint = having the bend morph as a sub componenet 1st stage.
    Thigh Bend Morph = having the bend joint as it's controller 1st stage. The character morph I made is on the 2nd stage here as multiply so this morph will only trigger if this character morph is dialed in.

    Thigh Side To Side Joint = Everything from above with the Bend.

    Then we approach the complex part which is a corrective morph I created using the Bend Morph and not the Side to Side morph. In this scenerio, if someone were to dial in bend while side to side is also active I would like for the side to side only morph to subtract from to overall shape as the user dials in the bend or the side to side. That last part being where it gets really complex as I would like it to be as below.

    User dials in Side To Side first then Bend or if they do it vise versa. Either way I would like to end as the same result.

    I think where the main hitch is here is due to the CTRLMD dial not being created yet as this will need to be set as 2nd stage multipy on one of the properties from what I understand as well as be a 1st stage controller.

    I did figure out that putting side to side only as a subtract on the side to side + bend morph will blend the two morphs as something like "Bend" is dialed in but can not wrap my head around how something like that would be done as well for the side to side joint.

    So, lots of reading to do. I really appricaite the resources and I hope I can figure this out lol.

    I hope your Holidays go great for you, Crosswind.

     

    Post edited by Dark45 on
  • Dark45Dark45 Posts: 86
    edited November 27

    Alright this all looks like it has resolved the issues I faced. I actually needed to make x2 CTRL properties. I have the side to side only morph subtracting from the bend property that is set as the 2nd stage sub component that is in my bend joints CTRL property. Everything appears to be okay currently. I'll chime in if I see other issues but so far, no matter how I dial the rotations on the joints, everything is deforming correctly. Thank you both very much.

    Post edited by Dark45 on
  • I think in general you would want bend and Side-to-side correctives, then a final corrective that applied when both the bend and side-to-side were in effect to cancel out any interference - this is where Reverse Deformations in the importer is really useful  as you can make the final shape for Bend+Side-to-side, then import it with Reverse Deformations on and all that will be left are the adjustments.

Sign In or Register to comment.