G8 Centaur Posing - Horse 2 body poses

TirickTirick Posts: 230
edited July 2021 in The Commons

Am I overlooking something, or is there no easy way to apply horse poses to the lower part of the centaur body? When I try to apply to the base figure it just shifts the root a little. If I apply to the Centaur body it pulls the whole lower body down a 1/2 ft or so. I hadn't set out to get Centaurs, they were just in the megapack I picked up today so I'm taking a look at them.

Thoughts? I'm not averse to eventually picking up actual Centaur poses, I'm just curious if there there a method I am not aware of. 

Thank you,

Tirick

CentaurPose.png
1920 x 1040 - 468K
Post edited by Tirick on

Comments

  • carrie58carrie58 Posts: 4,029

    What I did was recreate the DH2 poses ,on the centaurhorse body ,and saved those for my centaur figure .It takes some time but it's worth it plus it helps with learning how to pose figures .

  • GordigGordig Posts: 10,187
    edited July 2021

    Just had to experiment with this, and if you hold down CTRL (presumably CMD if you're on Mac) when you add the pose to the centaur body, it will bring up the options menu. Go down to translations and uncheck Y axis, and the pose will work as expected. At least it did in my experiments.

    Applying pose normally:

    CTRL+apply, disable Y translation:

    posenormal.png
    1200 x 900 - 706K
    posecontrol.png
    1200 x 900 - 719K
    Post edited by Gordig on
  • richardandtracyrichardandtracy Posts: 5,924
    edited July 2021

    I imagine the bone names and zero pose positions are different between G8 Centaur and Horse 2. It's the sort of thing that cries out for a little transfer script between the two. If someone wants to edit one of my freebie pose transfer scripts (G1F->G8F for example, https://www.daz3d.com/forums/discussion/502771/victoria-5-g1f-to-g8f-pose-transfer-script) to do the job, they are welcome to do so. There'll be about 2000 lines of code to edit, but it isn't difficult. Would just ask that it could be kept as a freebie.

    I'm afraid I can't do the job myself, as I have neither model and in all honesty I don't really want them.

    Regards,

    Richard.

     

    Post edited by richardandtracy on
  • TirickTirick Posts: 230

    Gordig said:

    Just had to experiment with this, and if you hold down CTRL (presumably CMD if you're on Mac) when you add the pose to the centaur body, it will bring up the options menu. Go down to translations and uncheck Y axis, and the pose will work as expected. At least it did in my experiments.

    Applying pose normally:

    CTRL+apply, disable Y translation:

    Brilliant, thank you!
  • TirickTirick Posts: 230

    carrie58 said:

    What I did was recreate the DH2 poses ,on the centaurhorse body ,and saved those for my centaur figure .It takes some time but it's worth it plus it helps with learning how to pose figures .

    I need to explore the figure a bit. It wasn't really my primary reason for the mega pack, but now that I have them I'll likely take some time to explore their options.
  • TirickTirick Posts: 230

    richardandtracy said:

    I imagine the bone names and zero pose positions are different between G8 Centaur and Horse 2. It's the sort of thing that cries out for a little transfer script between the two. If someone wants to edit one of my freebie pose transfer scripts (G1F->G8F for example, https://www.daz3d.com/forums/discussion/502771/victoria-5-g1f-to-g8f-pose-transfer-script) to do the job, they are welcome to do so. There'll be about 2000 lines of code to edit, but it isn't difficult. Would just ask that it could be kept as a freebie.

    I'm afraid I can't do the job myself, as I have neither model and in all honesty I don't really want them.

    Regards,

    Richard.

     

    I had not run across that script, thank you for the link, and the offer. I'm not familiar with the way Daz scripts function but I'm happy to dig in and have a look.
  • richardandtracyrichardandtracy Posts: 5,924
    edited July 2021

    I have done quite a number of transfer scripts, all of which are in the freebies forum here, but they are more easily found in my freebies over at Rendo - https://www.renderosity.com/users/richardandtracy/freestuff.

    To create a new script is relatively simple, but tedious. To begin with you need to pose the 'source' figure in its zero pose. Then pose the destination figure so it matches the source figure as closely as possible. Where the limb matches another exactly, the code would look like: oZRotCtrlG8F.setValue(nZRotG1F); .(used with G1F to G8F)

    When there is non-zero pose value for a parameter in a limb, this is an offset that needs to be programmed in along these lines (for an example 5 degree offset in the motion being considered):  oZRotCtrlG8F.setValue(nZRotG1F + 5.00);  

    Furthermore, at each bone you need to check that a set deflection at a bone causes the same deflection in both figures (eg G1F shin at 90 degrees is only matched by G8F bending 94 degrees). If the two figures don't move the same distance, find the angle of the destination figure needed to match the source figure's deflection. Then a scale factor can be calculated. The scale factor is calculated from destination deflection/source figure deflection. Imagine the source figure moves 90 degrees and the destination figure needs to move 94 degrees to match, this leads to a scale factor of 94/90 = 1.0444. So, we could end up with a line like: oZRotCtrlG8F.setValue(1.0444 * nZRotG1F + 5.00);.

    Then there is a final thing - does the parameter slider cause the same direction of movement? If the direction is opposite (as G8F eyes compared to V3/V4/G1/G2) then a reversing minus sign is needed, as oZRotCtrlG8F.setValue(-nZRotG1F);

    Do this for every bone in the source figure, and every parameter you want to consider (eg Bend, Twist & Side-Side). I tend to add overall scale & particular axis scale values too. That way they are not missed if a pose uses them. You need to get the bone name and parameter name EXACTLY as shown on screen, even the case & spaces need to be right. I tend to start at the hip & work to the extremity of each limb, following the bone tree in the scene tab. Where a set of bones in one figure corresponds to a different set in the second, then I leave it up to you to decide how to divide up the movements. In a G8F to V4 transfer, the G8F pelvis and thigh bones have to be shared out into the V4 thigh bones. That's the sort of thing that needs to be considered on a case by case basis..

    Hope this helps  a little. Contact me if you need any advice. It's not hard - I had virtually no scripting experience when I started the first one - and have leveraged my limited learning about as far as it'll go.

    Regards,

    Richard

    Post edited by richardandtracy on
  • carrie58carrie58 Posts: 4,029

    richardandtracy said:

    I have done quite a number of transfer scripts, all of which are in the freebies forum here, but they are more easily found in my freebies over at Rendo - https://www.renderosity.com/users/richardandtracy/freestuff.

    To create a new script is relatively simple, but tedious. To begin with you need to pose the 'source' figure in its zero pose. Then pose the destination figure so it matches the source figure as closely as possible. Where the limb matches another exactly, the code would look like: oZRotCtrlG8F.setValue(nZRotG1F); .(used with G1F to G8F)

    When there is non-zero pose value for a parameter in a limb, this is an offset that needs to be programmed in along these lines (for an example 5 degree offset in the motion being considered):  oZRotCtrlG8F.setValue(nZRotG1F + 5.00);  

    Furthermore, at each bone you need to check that a set deflection at a bone causes the same deflection in both figures (eg G1F shin at 90 degrees is only matched by G8F bending 94 degrees). If the two figures don't move the same distance, find the angle of the destination figure needed to match the source figure's deflection. Then a scale factor can be calculated. The scale factor is calculated from destination deflection/source figure deflection. Imagine the source figure moves 90 degrees and the destination figure needs to move 94 degrees to match, this leads to a scale factor of 94/90 = 1.0444. So, we could end up with a line like: oZRotCtrlG8F.setValue(1.0444 * nZRotG1F + 5.00);.

    Then there is a final thing - does the parameter slider cause the same direction of movement? If the direction is opposite (as G8F eyes compared to V3/V4/G1/G2) then a reversing minus sign is needed, as oZRotCtrlG8F.setValue(-nZRotG1F);

    Do this for every bone in the source figure, and every parameter you want to consider (eg Bend, Twist & Side-Side). I tend to add overall scale & particular axis scale values too. That way they are not missed if a pose uses them. You need to get the bone name and parameter name EXACTLY as shown on screen, even the case & spaces need to be right. I tend to start at the hip & work to the extremity of each limb, following the bone tree in the scene tab. Where a set of bones in one figure corresponds to a different set in the second, then I leave it up to you to decide how to divide up the movements. In a G8F to V4 transfer, the G8F pelvis and thigh bones have to be shared out into the V4 thigh bones. That's the sort of thing that needs to be considered on a case by case basis..

    Hope this helps  a little. Contact me if you need any advice. It's not hard - I had virtually no scripting experience when I started the first one - and have leveraged my limited learning about as far as it'll go.

    Regards,

    Richard

    and this is so beyond my understanding I could cry...... which is why I line everything up by hand ,and laugh and laugh ,til my kids take the computer away from me !!!laugh

  • richardandtracyrichardandtracy Posts: 5,924

    wink

    Regards,

    Richard.

Sign In or Register to comment.