Freazypose - a free PoserPython script to add EasyPose controls to a figure.



  • A free PoserPython script* to add EasyPose controls to a figure.

    (I've been in touch with Ajax and he's happy for me to release this as a freebie. He says that he doesn't do 3D any more, that his software hasn't been updated in 10 years, and that it'll be good to have an alternative ! :)

    Freazypose prototype 0.06 uploaded to ShareCG - https://www.sharecg.com/v/90739/view/8/Script/Freazypose-prototype0.06 if anybody fancy's giving it a spin. Feedback appreciated, especially problems and suggestions for improvement. (I know that my wave controls throw the thing off the longitudinal access, so there's something wrong there...)

    *Put on your peril-sensitive sunglasses if you want to look at the source - it's written in my usual monolithic held-together-with-chewing-gum-and-string style



  • Sweet! Does it run on a Mac?



  • @3dcheapskate
    Thanks for this, haven't had a chance to run it yet but had a squint at the code. Can I make one suggestion to your coding style? You do

    if a=b:
    	poser.DialogSimple.MessageBox( "message1" )
    else:
    	more code
    	more code
    	if b=c:
    		poser.DialogSimple.MessageBox( "message2" )
    	else:
    		more code
    		more code
    		if c=d:
    			poser.DialogSimple.MessageBox( "message3" )			
    		else:
    			more code
    

    Already you are 3 indents in (your script maxes out at about 15 tabs.

    If you recoded as

    if a=b:
    	poser.DialogSimple.MessageBox("message1")		
    	return
    
    more code
    more code
    if b=c:
    	poser.DialogSimple.MessageBox("message1")		
    	return
    

    it is a lot easier to read, especially on my laptop :) Unfortunately you can't do that if you aren't working inside a class or function while you are testing.



  • @RobZhena said in Freazypose - a free PoserPython script to add EasyPose controls to a figure.:

    Sweet! Does it run on a Mac?

    Errrr... don't ask me - I haven't got a Mac!
    It should do - I've had feedback that most/all of my scripts work fine on a mac, and they're a lot longer and a lot ropier* than this one.

    *Ropey, as in "held together with chewing gum and string", but the string wasn't strong enough so I used rope instead.



  • @amethystpendant said in Freazypose - a free PoserPython script to add EasyPose controls to a figure.:

    @3dcheapskate
    Thanks for this, haven't had a chance to run it yet but had a squint at the code. Can I make one suggestion to your coding style? ...

    Only one... ? You're too kind !;o)

    My mind works in mysterious ways, and I don't think 'return' is in its vocabulary. 'Wander off in a random direction' is the norm.

    And it likes indents. It tells me they're my friends...

    But I'll dangle a sugar coated 'return' in front of it to see if it bites...



  • @RobZhena yep, works on Mac, though adding EazyPose to Andy's foot seems like overkill ;-)

    @3dcheapskate of course, the DialogSimple.MessageBox() doesn't get adequately resized to fit the incorporated text, which makes it slightly problematic to read, but that's not a showstopper.



  • @anomalaus said in Freazypose - a free PoserPython script to add EasyPose controls to a figure.:

    ...
    @3dcheapskate of course, the DialogSimple.MessageBox() doesn't get adequately resized to fit the incorporated text, which makes it slightly problematic to read, but that's not a showstopper.

    Yeah, that always happens in my early versions of a script as I just write what I want it to display without checking where it wraps and/or overspills the box. I usually modify the text to say the same thing in less words a few versions down the line.

    (and my mind has decided that it likes 'return', so the next version should be less indent-y)



  • Progress report (if you can call it that! ;o): My working version has more 'return's, far fewer indents, and most text now fits in the message boxes.

    I've been playing with my 'Wave' stuff to make it work in the same way as the original Ajax EP. I've run into a problem when the figure already has EP and I let my script modify it (I'm using the original Ajax Easypose Tube* to compare/test against - loading two copies and letting my script modify one). The problem's basically my using [-1] to access the ValueOperation that I've just added. It looks as if I'll have to explicitly check whether the ValueOperation I want to add already exists in the relevant Parameter of the EP segment I'm trying to add it to - if it doesn't go ahead and add a new one, but if it does then explicitly modify the delta of the existing one. Something like that anyway...

    I'm also thinking about including a simple test figure with the next release to save people having to search for a figure to try it with.

    *The original Ajax Easypose Tube is still available as a Freebie at Renderosity here https://www.renderosity.com/mod/freestuff/easypose-tube/6590 - Other Ajax Easypose freebies at Renderosity here https://www.renderosity.com/mod/freestuff/?search=ajax )



  • Fixed that problem with a 'setValueOp()' function/method/whatyamacallit to do the checking and adding/modifying.

    I'm using ValueOperations because that's what it said in the book, but as it also said these don't get saved in a PZ2 pose file (PP2014 test, confirmed. They do get saved in a PZ3 scene though).

    Using 'targetGeom' instead of 'valueParm' was the books solution, but I can't see any Pythonic way to add target geometry.

    actor.CreateValueParameter(), which is what I'm using, seems to be the only option. I must be missing something ?



  • Prototype 0.10 uploaded to ShareCG - https://www.sharecg.com/v/90793/view/8/Script/Freazypose-prototype-0.10

    Includes text that almost fits into most of the dialogue boxes, more 'return's, less tabs, the prefix 'FP-' on any dials that the script adds (so it won't change any existing proper EasyPose stuff*), and a very simple 25 segment tentacle-type-thingy figure for you to try it with.

    *It's a neat way to test it. Apply Freazypose to a figure with proper EasyPose, set an EasyPose dial to e.g. 5, and then set the corresponding Freazypose dial to -5... if I've got things right they should cancel each other out ! (I know the S-Curves may have a kink in the middle if you try this, and that the Spirals don'tquite match)



  • (New post due to the irritating edit timeout. If the post looks odd it's due to the irritating post editor - it does some of the same screwy stuff as the Renderosity post editor. If it doesn't then I fixed it before the irritating timeout)

    Prototype 0.10 uploaded to ShareCG - https://www.sharecg.com/v/90793/view/8/Script/Freazypose-prototype-0.10

    Main thread still over on the SM forums... errr... that's actually here isn't it - this one.

    What's changed:

    • Minor tidy-up
    • Freazypose dials now all include the prefix 'FP-', so they will NOT interfere with any existing proper EasyPose dials.
    • Tried to make sure that all the delta calculations match the original Ajax EasyPose - I used the B.L. Render book and the original Ajax EP Tube to test. However, my Spiral calculations still seem to bend slightly less than the originals, and my S-Curve is different in the middle. The easy way to compare is to apply FreazyPose to something that already has proper EasyPose, and then set a proper EasyPose dial (e.g. 'BendAll') to 20, and then set the Freazyposeequivalent (e.g. 'FP-Bend-All' to -20) -the two should canceleach other out if I've got it correct!
    • Includes a 'Basic Tentacle' figure, something to test Freazypose on. Ither good things to try it on:
      - The tentacly freebies at ShareCG by KnochenKater (aka ancestorsrelic) are crying out for EasyPose - http://www.sharecg.com/ancestorsrelic
      - Some of the original Ajax EasyPose freebies(including the EP Tube that I tested with) are still available at Renderosity http://www.renderosity.com/mod/freestuff/?search=ajax