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



  • 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



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

    @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?)

    Poser does have the add-on framework. Just need more of Poser Python exposed to it.



  • It was possible to launch python scripts from inside pose or prop files. It is a major security leak, but could be a route to explore? It would bring script functionality under the same exposure as other content.



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

    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.

    absolutely!

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

    "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.... "

    hahaha! If I can get that walking script done, then perhaps that might be a possibility lol!

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

    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!

    I'll include that with PE! But duplicate selected? Doesn't Poser already have that? or did you mean something else?

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

    It was possible to launch python scripts from inside pose or prop files. It is a major security leak, but could be a route to explore? It would bring script functionality under the same exposure as other content.

    Isn't that what the whole callback was about? I haven't yet looked into that.



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

    Isn't that what the whole callback was about? I haven't yet looked into that.

    No the callback is processing script code based on events in Poser, like moving a camera or changing a pose. What I referred to is a command 'run Python script xyz' in a library file.



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

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

    Isn't that what the whole callback was about? I haven't yet looked into that.

    No the callback is processing script code based on events in Poser, like moving a camera or changing a pose. What I referred to is a command 'run Python script xyz' in a library file.

    ah yes, that is possible. Lali's Bits did that, and recently I built character CR2 that rely on scripts. But for some reason complex scripts don't run properly when activated through CR2. Its best to run them from the menu or Python palette.



  • @erogenesis Could you describe "complex"?
    I'm experimenting now with this option but with very straightforward scripts without importing more than poser module.

    About security risk: Blender has this option too (switchable).



  • Users are not aware of the possibility content can do anything beyond the radar of standard security software. The security risk therefore is in the likelyhood that people just load content from wherever without looking twice. A warning:
    xyz.pp2 tries to start a python script.
    What do you want to do?
    Allow Once/Allow Permanently/ Block/Delete script?
    would be a help already.



  • I really wish this forum had sub-forums. Like for nodes and for scripting.

    Anyway there used to be some really nice people on runtimedna when I first started that helped me with some scripting. I am not sure if they have come here or not. anyway one script I have which I believe is close to what someone was asking is to move a character and any objects attached to the character to infront of the selected camera:

    https://drive.google.com/open?id=0BxnCBXSb9V4jdy0tZ2ZCak5kQjA

    One note you might need to pan the camera up to see the character as it loads the feet at the very top of the camera view.



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

    @erogenesis Could you describe "complex"?

    I don't remember exactly but when we ran this one script from CR2 and the same from the palette, it behaved differently. It had something to do with loading smart props and then reparenting them to something else.

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

    One note you might need to pan the camera up to see the character as it loads the feet at the very top of the camera view.

    Mine has several options. Put figure in front of camera in its original rotation and vertical displacement, the same facing the camera, or centralized in the view of the camera. Another extremely useful script I have is 'place next to', and it works nicely in complex scenes. I can place any figure next to, or behind or in front of another at different distances.