Forum: Poser - OFFICIAL


Subject: Experimental Poser #5 - Poses Without Posing (Sneak Peek)

bushi opened this issue on Feb 11, 2004 ยท 45 posts


bushi posted Wed, 11 February 2004 at 3:13 PM

OK, if you got through the background stuff then this will be easy. PoseGenie uses 100 chromosomes per generation and cycles through 20 generations. The image shows the pose resulting from the most-fit chromosome for each of the 20 generations in an example run. The Target is the sphere parented to Daisy's nose and the Seeker is the sphere parented to Daisy's finger. The body parts included in the chromosome were Head, Upper Neck, Right Collar, Right Shoulder and Right Forearm. As the basis for the genes that PoseGenie creates, the script reads a file that lists the body parts to include in the genes, the rotations to use for the body part and minumum and maximum limits for the rotations. The reason for needing minimum and maximum limits on the rotations is a result of the script's fitness function. The fitness function scores on how close the Seeker and Target are and the total number of degrees used by all of the rotations. Ideally, a pose will have a very small distance between the Target and Seeker and small total number of degrees. The problem is that a pose that adheres too tightly to the small distance, small degree number principle can look unnatural. In the example image, if the Bend property on the Right Shoulder hadn't been limited to a range of from 50 to 75 degrees then the elbow would have ended up being too high in the final pose. It really isn't necessary to rein in the rotations too hard but a little tinkering can make a world of difference in the result.

As to the pose itself, this is a simple example using just the right arm, neck and head. More complex poses can be developed by breaking the body into sections and using PoseGenie on each section, positioning the Target and parenting the Seeker as necessary.

I was a bit surprised at the runtimes for the script. There's a lot going on in the script but poses like the one in the image usually take around a minute. It's sometimes necessary to run the script 2-3 times to get the best results. Much of how the pose ends up depends on the random selections for the first generation. It is possible that selections for the first generation do not contain the range of joint rotations necessary to give a desirable result even with the cross-overs and mutations. In GA jargon this is called hitting a local minima.

I'm planning on having this available in FreeStuff in another couple of weeks. The main script is solid but I don't like having to edit the text file used to describe the genes so I'm adding that functionality to the script's GUI. This script has taken several months to get in it's present form (with a detour to do the MeasureIt script) so another couple of weeks isn't going to matter. There will also be a PDF file included that has all of this background plus examples of how to use the script.

After PoseGenie is finished I'm thinking of writing a version that will use multiple Targets and Seekers. This one would be specific to creating hand poses (call it HandGenie maybe ... ;) ). Thanks for attention.

Credits:

Daisy figure by Thorne
Messy Hair by the Master Koz