[Bf-committers] Random IPO Generator
Mal
mal at candomultimedia.com
Tue Jan 10 21:17:57 CET 2006
Hi Reuben,
Perlin noise might help here...
http://mrl.nyu.edu/~perlin/
Ken Perlin, who "invented" it, has also wrote articles on using this for
animations.
See...
http://mrl.nyu.edu/~perlin/experiments/facedemo/ ( for just one example )
Mal
>Hi,
>
>I just now joined this list because I wanted to see if anybody would
>be interested in fleshing out an idea I had for being able to generate
>random IPO curves. They're not _totally_ random, but they would allow
>the user to set some variables that would set the limits and
>characteristics of the generated IPO curves.
>
>The practical use for this would be in situations where the user wants
>to create some controlled randomness in the IPO driver without having
>to go through the tedious process of manually creating the IPO curves.
>For instance, when using wind, a user might want to add turbulence by
>adjusting the "speed" setting to make it's effect on softbodies or
>particles more animated. This is a case where the work flow of
>adjusting the IPO curves could easily be speed up be able to set
>limits and then letting the IPO curves be randomly set for the
>duration of the scene. Should the user wish to manually adjust them,
>they could always go and do that after the curves are generated.
>
>I hope the following "sudo-code" will give an idea of what I'm talking
>about. (Yes, it's awful, but I haven't written serious code in almost
>10 years)
>
>var max_ipo_value; //sets upper limit for the IPO
>var min_ipo_value; //sets lower limit for the IPO
>var ipo_value; //the value that the random IPO key will have
>var ipo_time; //the time at which the random IPO key will be placed
>var speed; //the higher the value, the slower the IPO curves move
>var momentum; //the lower the value, the more erratic the IPO curves are
>var step_sze; //the higher the value, the steeper the slope of the IPO curves
>
>
>direction = generate_random_bool();
>
>if (direction = true) then (
> for (i = 0, i < momentum, i++) do (
> ipo_value += step_size;
> if (ipo_value > max_ipo_value) then ipo_value = max_ipo_value;
> ipo_time += speed;
> set_ipo_key (ipo_value, ipo_time);
> )
> )
>
>else (
> for (i = 0, i < momentum, i++) do (
> ipo_value -= step_size;
> if (ipo_value < min_ipo_value) then ipo_value = min_ipo_value;
> ipo_time += speed;
> set_ipo_key (ipo_value, ipo_time);
> )
> )
>
>
>Hope that gives the "general idea" of how the randomness would be controlled.
>
>So... Does this interest anybody? Suggestions?
>
>regards,
>-Reuben
>_______________________________________________
>Bf-committers mailing list
>Bf-committers at projects.blender.org
>http://projects.blender.org/mailman/listinfo/bf-committers
>
>
>
More information about the Bf-committers
mailing list