Thread: jitter
View Single Post
# 3 26-08-2004 , 12:30 PM
Dann's Avatar
Registered User
Join Date: Feb 2003
Location: Los Angeles
Posts: 695
yeah, I tried that (and just tried again to be sure). Each particle (vert) of my soft body keeps traveling. It doesn't jitter. However, I've put together some nifty code that does the trick. I'm not the best scripter so pardon if it's overly complex, but it works. Drop it on a soft body as a Runtime expression and watch it wiggle. Edit the $variance and $magnitutde to fit the scale of your model.

float $variance = 0.01;
float $magnitutde = 0.003;

vector $pos = position;
float $posfloat[];
$posfloat[0] = $pos.x;
$posfloat[1] = $pos.y;
$posfloat[2] = $pos.z;

float $startPosX[];
float $startPosY[];
float $startPosZ[];
int $ID = particleId;
if (frame == 2)
{
$startPosX[$ID] = $pos.x;
$startPosY[$ID] = $pos.y;
$startPosZ[$ID] = $pos.z;
}

$posfloat[0] += rand( ($magnitutde*-01) , ($magnitutde*01));
$posfloat[1] += rand( ($magnitutde*-10) , ($magnitutde*10));
$posfloat[2] += rand( ($magnitutde*-30) , ($magnitutde*30));

if ( ($pos.x - $startPosX[$ID]) > $variance || ($startPosX[$ID] - $pos.x) > $variance )
{$posfloat[0] = $startPosX[$ID];}
if ( ($pos.y - $startPosY[$ID]) > $variance || ($startPosY[$ID] - $pos.y) > $variance )
{$posfloat[1] = $startPosY[$ID];}
if ( ($pos.z - $startPosZ[$ID]) > $variance || ($startPosZ[$ID] - $pos.z) > $variance )
{$posfloat[2] = $startPosZ[$ID];}


position = <<$posfloat[0],$posfloat[1],$posfloat[2]>>;