Tue, Apr 23, 4:25 AM CDT

Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2024 Apr 22 7:39 pm)



Subject: Randomize for La Femme


jfbeute ( ) posted Tue, 29 September 2020 at 6:20 AM · edited Fri, 08 March 2024 at 8:05 AM

Currently my go to figures still are V4 and M4. I do have tons of stuff for them but my main reason is the randomize scripts for them. Often I need several figures in a scene and by using the randomize it's very easy to get some variation. It took some time to get the scripts worrking and working to my satisfaction but it was time well spend (on and off it took 12 iterations of fixes over some 3 weeks).

Similar scripts do not exist for La Femme and L'Homme. With the body kits available for these figures it should be possible to create randomize scripts. My simple question is if people would have interest for such a script and if anyone is already working on such a script. I have found that for the V4, M4 and K4 randomize scripts I have made several variations (to include some specific modifications or to keep some things static) so I would only be interested in scripts that can be modified to suit my needs should anyone offer these scripts for sale.


ssgbryan ( ) posted Tue, 29 September 2020 at 8:42 AM

I would be interested in these types of scripts for all series of figures (LF&LH, Dawn & Dusk, Paul & Pauline, etc).

One of the main reasons I use all the figures, is because for most vendors (Poser or DS), once you have 3 or 4 of their characters, you have all of their characters.



hborre ( ) posted Tue, 29 September 2020 at 8:52 AM

Such a script would be invaluable and practical. Hopefully, such a script would be available after Poser 12 is released; with the change in Python Script and the drop in support for Poser 11, a premature release could make it unusable.


FVerbaas ( ) posted Tue, 29 September 2020 at 11:30 AM
Forum Coordinator

Again: nothing was said about stopping support for Poser 11. It will no more be available for purchase. That is something different.

Yes a randomize script would be very welcome.


hborre ( ) posted Tue, 29 September 2020 at 12:28 PM

Oops, I stand corrected.


RobZhena ( ) posted Tue, 29 September 2020 at 1:05 PM

Randomhive is available at the Hive for Dawn, Dusk, and Luna.


structure ( ) posted Tue, 29 September 2020 at 1:27 PM · edited Tue, 29 September 2020 at 1:31 PM
Forum Coordinator

sadly, randomize scripts are pretty much useless on LF/LH, ok for the body,but with the head you often get results like this :

image.png

Locked Out


structure ( ) posted Tue, 29 September 2020 at 1:31 PM · edited Tue, 29 September 2020 at 2:04 PM
Forum Coordinator

The body can also give some interesting results :

image.png

image.png

image.png

image.png

image.png

Locked Out


RobZhena ( ) posted Tue, 29 September 2020 at 1:47 PM

structure posted at 2:46PM Tue, 29 September 2020 - #4400622

sadly, randomize scripts are pretty much useless on LF/LH, ok for the body,but with the head you often get results like this :

image.png

I really like that one!


structure ( ) posted Tue, 29 September 2020 at 1:49 PM · edited Tue, 29 September 2020 at 1:57 PM
Forum Coordinator

for anyone interested in improving or using the script

here is the code


# -*- coding: utf-8 -*- 
# structure 2001 - 2020
# =====================

import poser
import random
import wx

scene = poser.Scene()

class dialogs:
    def choose( self, title = "", prompt = "", OptionList = [], parent = None ):

        dialog = wx.SingleChoiceDialog( parent, prompt, title, OptionList )
        
        if not OptionList == []:

            return dialog.GetStringSelection() if dialog.ShowModal() == wx.ID_OK else None

class geomops:
    def get_geometry( self, actor ):
        acceptablegeoms = ( 'LaFemme1', 'LaFemme1R1', 'L'Homme1' )
        geomName = actor.GeomFileName()

        if (geomName and not geomName == ''):
            geom=os.path.splitext(os.path.basename(geomName))[0]
            geompath=os.path.dirname(geomName)

        if geom in acceptablegeoms:
            return geom
        return None

class ignoredials:
    def IsValid_dial( self, parm ) :

        if parm.TypeCode() in range(1, 11) or 
        parm.TypeCode() in range( 17, 23 ) or 
        parm.TypeCode() in range( 26,29 ) or parm.TypeCode() == 65:
            return True

        if "JCM" in parm.Name().upper():
            return True
        if "front-back" in parm.Name().lower() 
        or "up-down" in parm.Name().lower() 
        or "side-side" in parm.Name().lower():
            return True

        return False

class randomize:
    def randomize( self, actor ):
        parms = actor.Parameters()
        for parm in parms:
            if not ignoredials().IsValid_dial( parm ):
                # print parm.Name(), parm.TypeCode()
                x = random.randint( 0, 2 )
                if not x == 0:
                    parm.SetValue( random.uniform(-.5, .5) )

figure = dialogs().choose( "Randomize Body", "Choose a figure", [figure.Name() for figure in scene.Figures() ] )
geom = None
geom = geomops().get_geometry( scene.Figure( figure ) )

if geom:
    figure = scene.SelectFigure( scene.Figure( figure ) )
    figure = scene.CurrentFigure()
    figure.Restore()
    randomize().randomize( figure.Actor( "Body" ) )
    # randomize().randomize( figure.Actor( "Head" ) )

else:
    figure = None

scene.Draw()

to randomize the head - remove the # from # randomize().randomize( figure.Actor( "Head" ) )

this script applies random values between -0.5 and 0.5 to the morphs on la femme / l'homme.

to change the range of values modify this line : parm.SetValue( random.uniform(-.5, .5) )

it ignores transformation dials etc.

Locked Out


jartz ( ) posted Wed, 30 September 2020 at 2:07 AM

Quite curious... what does Randomize do?

____________________________________________________________________________________________________________________________

Asus N50-600 - Intel Core i5-8400 CPU @ 2.80GHz · Windows 10 Home/11 upgrade 64-bit · 16GB DDR4 RAM · 1TB SSD and 1TB HDD; Graphics: NVIDIA Geforce GTX 1060 - 6GB GDDR5 VRAM; Software: Poser Pro 11x


CHK2033 ( ) posted Wed, 30 September 2020 at 3:30 AM · edited Wed, 30 September 2020 at 3:33 AM

jartz posted at 3:28AM Wed, 30 September 2020 - #4400671

Quite curious... what does Randomize do?

It Randomizes your figure ,different body shapes different head shape, you know a quick different shape from 1 figure

-----------------------------------------------------------------------

HP Zbook 17 G6,  intel Xeon  64 GB of ram 1 TB SSD, Quadro RTX 5000 

-----------------------------------------------------------------------


FVerbaas ( ) posted Wed, 30 September 2020 at 6:39 AM · edited Wed, 30 September 2020 at 6:41 AM
Forum Coordinator

In short for the above script: it sets 2 out of every 3 morph parameters of the body actor to a random value between -0.5 and 0.5. This is of course a universal and pretty rude approach but it does the essentials. A more refined version of the script would be dedicated to the figure and use information about the function of the dials in that particular figure. The floating eyes and innermouth of the face image suggests a dial was triggered that for this figure is best left out for this process. In the code you would have to change 'ignoredials' to return 'True' for this dial.


Privacy Notice

This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.