How to copy dynamic hair room settings ?

  • I want to apply the dynamic hair settings to a different set of hair - how may I copy the Hair Room settings to the new hair, please ??

  • @ibr_remote a python script can access and replicate those parameters on another strand hair prop. I’m away from my computer ATM, but I probably have something I can quickly adapt.

  • @ibr_remote just looking at this script now. I'm assuming you'd want to select the dynamic hair prop to use as a parameter template, but how do you imagine defining which other dynamic hair props will have the parameters copied to them? Multiple actor selection from a list of all dynamic hair props in the scene (excluding the chosen template) or just one at a time copies.

    Another option would be to assume that whichever dynamic hair prop is currently selected will be the target to have its parameters set, and the user will be prompted to choose the template dynamic hair prop (which is easier and quicker to implement than multiple destination selections).

    I should also ask how comfortable you are with modifying python scripts (if at all)?

  • @anomalaus -- I can't deal with python scripting hahaha ! Since there aren't too many dials to turn, I just write down the values and manually enter them for the other different dynamic hair. Oh boy ! Thank you for thinking aboutt his though !

  • @ibr_remote no problem. It seems like a useful thing to have available, since Poser doesn't make it easy to copy directly. I'll see how I go on the second option, first, and then determine whether the first is any more efficient.

  • Cage used to have a script that would save the hair parameters of a selected hair prop. Then you could select another prop and load the parameters. Unfortunately, it was loaded as an attachment in a thread at renderosity and got deleted when they upgraded and decided not to allow attachments anymore. You might try that if you can't make poser copy directly.

  • This post is deleted!

  • @ibr_remote current protracted render almost finished so I can test the script before I throw it out there.

  • @ibr_remote in looking at the saved dynamic hair that I have in my library, in concert with the Poser Python manual, I've come to the conclusion that Python API support for the parameters of the Bullet Physics Solver is incomplete. There doesn't seem to be a way to return or distinguish between the Legacy and Bullet solver methods for the gravity parameter. The only method on the growth group, Gravity(), always returns the Legacy solver value, which is in undocumented and indeterminate units (usually, -0.0003) as opposed to the Bullet solver (usually -10, which conveniently approximates the SI units 9.81kgms^-2 of Earth surface gravity). No matter which Solver is chosen, the legacy value is returned. Python is also unable to determine or select which solver is in effect.

    Now, until that is resolved, I will suggest remaining with the Legacy solver for hair dynamics, as my script will be unable to copy the bullet solver parameters until they are exposed to Python (without resorting to saving the prop to the library and then parsing the file, which I could do, but will not for this simple expedient, that it requires the use of masses of code which I am still in the process of developing and am not prepared to release yet).

    [More to come, soon]

  • @anomalaus D'Oh! that's Force units, not gravitational acceleration, which is just ms^-2.

  • @ibr_remote OK, try this:
    The script will ensure that you have a dynamic strand hair prop selected, and that it can find another, different strand hair prop to copy the growth parameters from, before it will let you do anything.

    If you click OK, without having chosen another strand hair prop from the list, it will assign a set of default parameters to the selected strand hair prop. The script is quite explicit, in that it will not accept ordinary prop hair (non-strand) as the selection or list choices. If there is anything wrong with the hair (e.g. if it can't find a matching parent and the growth group on that parent which refers to the strand hair prop, it will ignore it).

    Please let me know if you have any problems, like parameters that don't get copied or errors the script throws up which you don't understand. There is a debug flag which can be set to 'True' if you're prepared to edit the script, which will get more informative about what the script is doing.

    @redphantom I looked, but couldn't find cage's script, but given the dates he was active, it probably wouldn't include the latest Poser dynamic hair features, like the Bullet Solver.

  • @ibr_remote here's a link to the script on ShareCG, for anyone who can't access

  • @anomalaus just got it after a few days away. Testing it today. Thank you !

  • @anomalaus WORKS FINE !! Thank you !!

  • @ibr_remote glad to hear it meets your needs :-)

  • @anomalaus Everyone interested:

    Here is a draft quality SuperFly render in which I transferred the dynamic grass hair settings to the dynamic hair generated in Hair Room ( I used one of the default scalps in Poser content). Model figure is Syndey G2. Of course, this is merely an example, but the script works !!