Kranky
12-10-2010, 09:23 AM
Hi! Im quite new to mel-scripting and recently i tried to create this expression that i learned from a tutorial. The expressions function is to rotate a wheel, and where ever it is rotated it will keep its rotation. But somewere in the script there seems to be some problems, because all i get is syntax error.
( link to the tutorial; http://www.youtube.com/watch?v=f33ar9gy2UY&feature=related )
Here's the script:
global float $oldX = 0.0;
global float $oldZ = 0.0;
$radius = 0.089;
$distance = 0.0;
$flip = 1;
if ($oldX == 0.0 44 $oldZ == 0.0)
driven.rotateX 0.0;
else
(
//The control_handle is the node that drives the wheel forward.
$change_X = control_handle.translateX - $oldX;
$change_Z = control_handle.translateZ - $oldZ;
$distance = sqrt (($change_X * $change_X) + ($change_Z * $change_Z)) ;
$cur_angle = control_handle.rotateY % 360;
if ($change_Z < 0)
$flip = -1;
if ($cur_angle > 90)
$flip = -1 * $flip;
if ($cur_angle >= 270)
$flip = -1 * $flip;
if ($cur_angle < -90)
$flip = -1 * $flip;
if ($cur_angle <= -270)
$flip = -1 * $flip;
//driven is the wheel itself
driven.rotateX = driven.rotateX + ($flip = (($distance / (6.28 * $radius)) * 360.0));
)
$oldX = control_handle.translateX;
$oldZ = control_handle.translateZ;
Here's what it says in the Script Editor
// Error: if ($oldX == 0.0 44 $oldZ == 0.0) // // Error: Syntax error //
// Error: else //
// Error: Syntax error //
// Error: $distance = sqrt (($change_X * $change_X) + ($change_Z * $change_Z)) ; //
// Error: "$change_X" is an undeclared variable. //
// Error: $distance = sqrt (($change_X * $change_X) + ($change_Z * $change_Z)) ; //
// Error: "$change_X" is an undeclared variable. //
// Error: ) //
// Error: Syntax error //
I hope that someone could help me figure out this problem.
( link to the tutorial; http://www.youtube.com/watch?v=f33ar9gy2UY&feature=related )
Here's the script:
global float $oldX = 0.0;
global float $oldZ = 0.0;
$radius = 0.089;
$distance = 0.0;
$flip = 1;
if ($oldX == 0.0 44 $oldZ == 0.0)
driven.rotateX 0.0;
else
(
//The control_handle is the node that drives the wheel forward.
$change_X = control_handle.translateX - $oldX;
$change_Z = control_handle.translateZ - $oldZ;
$distance = sqrt (($change_X * $change_X) + ($change_Z * $change_Z)) ;
$cur_angle = control_handle.rotateY % 360;
if ($change_Z < 0)
$flip = -1;
if ($cur_angle > 90)
$flip = -1 * $flip;
if ($cur_angle >= 270)
$flip = -1 * $flip;
if ($cur_angle < -90)
$flip = -1 * $flip;
if ($cur_angle <= -270)
$flip = -1 * $flip;
//driven is the wheel itself
driven.rotateX = driven.rotateX + ($flip = (($distance / (6.28 * $radius)) * 360.0));
)
$oldX = control_handle.translateX;
$oldZ = control_handle.translateZ;
Here's what it says in the Script Editor
// Error: if ($oldX == 0.0 44 $oldZ == 0.0) // // Error: Syntax error //
// Error: else //
// Error: Syntax error //
// Error: $distance = sqrt (($change_X * $change_X) + ($change_Z * $change_Z)) ; //
// Error: "$change_X" is an undeclared variable. //
// Error: $distance = sqrt (($change_X * $change_X) + ($change_Z * $change_Z)) ; //
// Error: "$change_X" is an undeclared variable. //
// Error: ) //
// Error: Syntax error //
I hope that someone could help me figure out this problem.
