Thu, Nov 28, 8:05 AM CST

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2024 Nov 27 5:12 pm)



Subject: Putting an "expression" (like say, an oscillation) on a transform graph spline..


eyeorderchaos ( ) posted Tue, 12 August 2008 at 9:39 PM · edited Sun, 24 November 2024 at 5:46 PM

In Lightwave 3D, this is butt-easy, so I hope I'm not spoiled but it seems to me there must be a way to do this in Poser 7 as well.
What am I talking about? Okay, say I want to make a pair of wings flap. (Actually, this is not just an example, it is what  I'm trying to do now in Poser 7).  The figure "Seraph" has right and left wings (body parts), which have a "flap" transform in the properties. I want to go into the graph, and just define and apply an oscillating curve, (or spline, or expression... however you want to say it)...to make the wings flap. Doing this by hand is tedious, annoying,  and not at all erotic...
How can I apply expressions like noise, oscillation, etc to my graph splines?

thanks in advance.

Eye


ockham ( ) posted Tue, 12 August 2008 at 10:02 PM

Attached Link: Oscillator script

Try this script.  Gives you a choice of sine, square, or triangle waves, and a choice of frequency and amplitude.

http://ockhamsbungalow.com/Python/Oscillator3.zip

Note: I haven't used this one lately.  There may be a small version
error in Poser 7.   Most likely something like "integer cast to float".
If it gives such an error, tell me here and I'll fix it quickly.

My python page
My ShareCG freebies


ockham ( ) posted Tue, 12 August 2008 at 10:07 PM

Edit: Tried it just now ... no version error.

My python page
My ShareCG freebies


eyeorderchaos ( ) posted Tue, 12 August 2008 at 10:14 PM

Wow, you are awesome, I will give it a try!
And thanks! Ockham, a familiar handle (tho I don't really frequent the forum very much)  I remember you have helped me in the past as well...much appreciated.


ockham ( ) posted Tue, 12 August 2008 at 10:15 PM

Edit again: One thing that's sort of implicit in the instructions but
needs to be made explicit.  The script can handle lots of motions at
the same time.... in other words, you don't need to apply it separately
to every part and parameter.  You set any or all parts of the figure to the
position you want at "one end" of the cycle, hit the Mark 1 button; then
set any or all parts to the opposite end of the cycle and hit Mark 2.
The script then creates the oscillation between those two positions.

My python page
My ShareCG freebies


eyeorderchaos ( ) posted Tue, 12 August 2008 at 10:42 PM

So, the script  detects what things you have changed while it is running, and applies a waveform to all of them ? IOW, if I set the low values for both wings and a  finger and punch "mark one", then the high value for these parts and punch "mark 2", then enter the rest of the info (start and finish frame numbers, damping and wave shape), I will end up with flapping wings and a wagging finger? Cool.


eyeorderchaos ( ) posted Thu, 14 August 2008 at 7:00 AM

I'm back to report it works as expected, good job and thanks again! 
I'm thinking, what would really add to this script would be noise expression, with ability to "lay on top" of the oscillator.  IOW, the oscillator would be the "carrier" wave...so you could make a "big" wave with "little" noises nested into it.  


ockham ( ) posted Thu, 14 August 2008 at 12:32 PM

Yes, I was thinking the same thing. 

Perhaps three options, checkable (but not mutually exclusive):

  1. randomize the timing somewhat.  (In your metaphor, impose the noise as FM)

  2. randomize the key amplitudes (Impose the noise as AM on the end points)

  3. Add finer noise.  (Like adding interference to the wave.)

Does that make sense?  Were you thinking of other possibilities?

My python page
My ShareCG freebies


eyeorderchaos ( ) posted Thu, 14 August 2008 at 12:54 PM

Yeah, totally makes sense,   I do  think that would cover it.
Just some "random" thoughts: the first two are comparable to a "humanize" function in music, commonly applied to a machine drum beat to make it a bit less perfect  The last one is what I was keying in on. Of course, in using the first 2  but not the 3rd it could be just pure noise (no carrier wave).


ockham ( ) posted Thu, 14 August 2008 at 1:02 PM

Thought of one more option.  Since the script can control lots of parts and
parameters, how about randomizing each motion separately, so they're
not in lockstep?  If applied in small enough doses, this would "humanize"
the motion.

My python page
My ShareCG freebies


eyeorderchaos ( ) posted Thu, 14 August 2008 at 5:29 PM

...Yes! Something like multiple waving tentacles or branches  would  be much easier to animate with realism, with such a script...


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.