Where there's a will... there is a script.



  • Every three days I set time apart to do fun things instead of working on Project E, and one of those things is now scripting. Many of these scripts are a dream come true for me, I wish I had started last year with some of these!!!!!! But I will share some of them with PE when she comes out. Just to give you an idea what is possible in Poser when one might think it wasn't:

    • JCMs can now get updated with IK (haven't tried callback yet)
    • Point At rotations can now get updated to their actual rotations (good for dependencies)
    • No need for those cumbersome constraints with my 'follow' script (between specified frames, and per frame optional, in situ, free of origin location)
    • Copy Origins from conforming parent
    • Place in front of camera (on floor, exact, facing)
    • place hand of figure on hand marker (loaded with pose)
    • point head and eyes as something (50% head, 50% eyes)
    • reset all children of actor
    • reset only fingers
    • bring actor near to other actor (next, in front, behind)
    • Set all XYZ and Rotation parameter keyframes in range (and not all morphs too)
    • Insert empty keyframes at current location
    • repeat keyframe after current frame
    • randomize current parameter within limits
    • replace figure with all conforming items, names, and materials (keyframes still working on)
    • Create controller in other bodypart for particular dial (handy for keyframing)
    • place magnets on limbs (either at origin, endpoint or middle) to affect some prop in a scene
    • place selected prop over origin of parent
    • and a load more naughty scripts that place figures in preparation for, and actually animating realistically in a naughty way!

    ...and for my latest script done today: ragdoll physics on any actor on any axis in any movement in any direction within any rotational limit. I'm NOT kidding it works for real. All you need to do is select an actor (that is parented to something else) and let it simulate within a specified range. It just dangles along with whatever the parent does. I'll try get some animations going a.s.a.p. It just simple for now, just single actors, but its a start I want to expand it to all children (like hair braids perhaps).

    Now some folks try to tell me that Poser cannot do certain things, making excuses for Poser... Lol. Like I've always believed, where there's a will, there's a way. Where there's programming, there's math, where there's math, there's the freaking universe! Guys I started after lunch, just finished it after dinner. My girlfriend was giving me cuddles while I was bent over the old formulas of angular momentum and Newtonian equations. I drank a few cans of San Miguel in the process. I am not clever at all, in fact I struggled enormously with the math, I suck at it, but I kept at it. With programming its all about just deciding to do it. Anything is possible, just persist.

    Don't ever tell me that something is not possible in Poser. Just don't!

    My next plans are:

    • comic onionskinning
    • point at follow (partly done already, just needs expanding)
    • walk simulator (walking rig already made and tested successfully)
    • drop to surface
    • convert body dials to pose
    • and I'm also thinking of a custom format Pose file (that doesn't kill off IK, for example)

    but first PE... :D



  • I want to see that animation when you get it done. This sounds cool!



  • You're a effing genius Ero. Do me a favor and look at this post and opine whether the process I describe could be scripted.link text



  • hehe cheers guys. Will get some animations up asap.

    @JAFO: could you condense that thread down for me, there's PLENTY that could be scripted there but what did you want to know specifically?



  • @erogenesis

    Basically:
    Spawn a morph on prop at interval ____
    Rename each morph to frame# it was spawned from.
    Set limits to min 0 and max 1.
    That's about it.

    Oh and if anyone came up with a way to re-time animation for multiple figures in one swipe, they'd be a Super Hero in my book....LOL



  • @JAFO said in Where there's a will... there is a script.:

    @erogenesis

    Basically:
    Spawn a morph on prop at interval ____
    Rename each morph to frame# it was spawned from.
    Set limits to min 0 and max 1.
    That's about it.

    Yeah that's probably quite easy, I think.

    Oh and if anyone came up with a way to re-time animation for multiple figures in one swipe, they'd be a Super Hero in my book....LOL

    Also doable, although re-sampling keyframes in Poser 10 and below is tricky because nobody seemed to be phased by the fact that you couldn't get the actual dial value from the dial, without first consulting all its controllers and parameters to see if it wasn't getting screwed by something else... and yet the value just sits there staring back at you in the UI (which just blows the mind).

    More tomorrow, off to bed.



  • @erogenesis What is "comic onion skinning" First time I've ever heard the term.





  • @phdubrov Ah, okay, got it now. Thanks.



  • This is an animated GIF of a script I'm developing in Poser (give it a moment to load, its 21Mb). Poser can do its own bullet physics but it cannot apply much of it to figures (besides soft body), and it also takes a while to set up properly. This script will allow me to select any body part and let it swing on its own axis, in a range of keyframes, according to the movement of the parent actor. Its obviously not real time (yet), it just calculates the resulting angle and sets their keyframes. It requires no extra set up, except just a few variable that might need adjusting. It will also be able to ignore gravity and be applied to bouncing or lolloping body parts ;)

    ( ! some animated GIFs might run faster in different browsers)
    alt text

    PS: sorry if I came across a bit snobby in my first post, but I was just so happy to have made all these scripts and I get so frustrated with this negative attitude some folks have. Don't get me wrong it all still needs cleaning up and debugging if I want to release any of it, but its definitely blown new life into my Poser workflow! I hope this stuff inspires you all. Its all actually really simple to do.



  • @erogenesis
    I didn't know that poser used Python; this has given it a big plus in my book.

    The main reason I posted though, is to ask what software do you use for gifs?
    (Gifs can be greatly optimized, far from just raw AVI output; especially with simple shapes, and few colors, like that one. It can be reduced to < 4MB with no appreciable difference. This means that you could do smaller files, or longer clips with the same size files.)

    --3.66mb
    https://www.dropbox.com/s/4n66vy9392esre5/pendulum_swing_tests_2_by_erogenesiscgi-_optimized.gif?dl=1

    --Further reduced via simplified color
    --2.31mb
    https://www.dropbox.com/s/vnd5pykb7f8tg3u/pendulum_swing_tests_2_by_erogenesiscgi-_OPT.gif?dl=1



  • @mechanaut said in Where there's a will... there is a script.:

    @erogenesis
    I didn't know that poser used Python; this has given it a big plus in my book.

    Yeah its great. It opens doors! I knew it has python but wasn't familiar with it until a month ago, and was too busy doing other stuff tbh. I have lots of experience with C# and I thought that Python was like fortran or some basic stuff. Turns out its freaking easy!

    The main reason I posted though, is to ask what software do you use for gifs?

    Adobe Premiere lol. Yeah I should have actually done it through Photoshop, but honestly I didn't even think about optimizing it. What app did you use to reduce it?



  • @erogenesis
    I tend to use Jasc AnimationShop; but there are plenty of others. The reason I like it is that it has what Adobe lacks... a cull frames option; and it can evaluate avi files to detect duplicate frames—converting them to delays.

    Of course I do use Photoshop if I need compositing and effects. But I usually optimize it further in AnimationShop.



  • Like spreadsheets, scripts are great for own use but badly suited for distribution. They usually come without documentation so user hardly knows what to expect, they are usually made to serve a specific situation/purpose and performance in other situations is unclear. Last but not least the scripts do not always fill the undo stack, so if an un-documented script does not do what was intended, one cannot 'undo' the scene to the situation before using the script.
    The success of for example EZSkin is also due to it being documented.
    What one would want for is the scripts environment providing acces to tracable specifications, say in xml format giving short help and build a sort of metadata registry.
    Including the help (.txt, .htm, .pdf ?) in the .zip is not enough because once the script is installed that connection is lost.



  • @F_Verbaas said in Where there's a will... there is a script.:

    They usually come without documentation so user hardly knows what to expect, they are usually made to serve a specific situation/purpose and performance in other situations is unclear. Last but not least the scripts do not always fill the undo stack, so if an un-documented script does not do what was intended, one cannot 'undo' the scene to the situation before using the script.

    No kidding, and they are very annoying and ultimately completely useless. If I do release these scripts I'll make them as user-friendly as possible.

    But I think the message I was trying to get at here is that all this can be done inside of Poser, it just needs to be decided that it has to happen. Of course there's always the issue of time and resources, and having to prioritize, there's nothing one can do about that, but SM will listen to a unified voice if there is one. Its this attitude of that its too complex to make, too difficult to integrate, or just focusing on the problems and hurdles... or simply cannot be done, really doesn't help at all to convince SM to go a certain direction (usually by certain Poser fans and 'experts'). That kind of mentality irks me to no end and is almost insulting to someone that has experience in programming. Then again, some of the best features in Poser were first addons and made by other folks, so maybe that's just how it has to go?

    In any case, Poser has become SO MUCH FUN now and I hope I can share some of it in a meaningful way so that others can have fun too. Of course I do need to keep some of it to myself, I must be careful not to give away too many trade secrets.



  • @erogenesis
    Sorry I should have been more clear. I just made a general conclusion from the scripts I see offered now. Even those that come with Poser's default install come without any description or catalogue. Using them is a matter of trial and error.

    You have been very clear about need for robustness and consistency in Poser so I had not expected anything else from the scripts you mention than good documentation and compatibiliy. Should have mentioned that. Sorry again.

    The point I wanted to make is that to use the power of the scripting to the fullest it would be very good if Poser provided better facilities to support scripted extensions, maybe a guideline for them giving a 'format' for the user interface, requirements for the error handling (what happens if a step in the script fails?) Does it clear up temporary files it made? Infromation how to clear any persistent datafiles, and so on. Maybe a sort of 'quality mark'.

    Consequently, my post was intended as a support for the development you proposed.
    (en Nederlanders doen dat nou eenmaal door wat te zeiken, dat weet je toch?)



  • @F_Verbaas no worries I understood it I think. I also think that Poser could use a bit more of a smarter Python script organizer. And yeah, the road to improvement starts by identifying the problem, and usually that comes in the form of complaining bitterly about it :D like I prefer doing! lol



  • Most of the technical stuff you talk about goes right over my head, but it sure is good to know that time is being invested in a program that has potential with the right funding, and Python programmers. Keep on experimenting, and let us know what you find out so that we can dream big.



  • Awesome scripts!

    And, of course, you should create nice examples and animations of the flashier ones to include in your marketing pack and front-end advertising! Mind blowers = $$$ (AND, customer satisfaction, too.)

    "Hi forumgoers! Lookit what I just bought! <swiggity swoogity booty script animation sequence> I AM SO COOL! You can be with the cool kids, too, if you bought erogenesis's products like I did! I am so very, very, cool, now.... "

    :)



  • You had me at "Place in front of Camera". That is something I have been wanting ever since I first started playing with Poser back at Ver 4. That and a Duplicate selected would make my decade!

    -DP


Log in to reply
 

Looks like your connection to Graphics Forum was lost, please wait while we try to reconnect.