Portfolio 2 Destrozar Rig
This is the rig I created for the main enemy Destrozar in our game Grapple
Model by Karen McCarthy
The Rig was designed so that the animators would have to end the animations on a multiple of frame 60 so that the cogs and pistons would start and end in the same place.
Expressions used in the rig
Cogs that rotate in the opposite direction of the legs
R_F_Cog1BCTL.rotateY = -R_F_Leg.rotateY * 10;
R_B_Cog1BCTL.rotateY = -R_B_Leg.rotateY * 10;L_F_Cog1BCTL.rotateY = -L_F_Leg.rotateY * 10;
L_B_Cog1BCTL.rotateY = -R_B_Leg.rotateY * 10;
R_F_Cog2BCTL.rotateY = -R_F_Leg1.rotateY * 10;
R_B_Cog2BCTL.rotateY = -R_B_Leg1.rotateY * 10;
L_F_Cog2BCTL.rotateY = -L_F_Leg1.rotateY * 10;
L_B_Cog2BCTL.rotateY = -L_B_Leg1.rotateY * 10;
R_F_Cog3BCTL.rotateY = -R_F_Leg2.rotateY * 10;
L_F_Cog3BCTL.rotateY = -L_F_Leg2.rotateY * 10;
R_F_Cog4BCTL.rotateY = -R_F_Leg3.rotateY * 10;
L_F_Cog4BCTL.rotateY = -L_F_Leg3.rotateY * 10;
R_F_Cog3CTL.rotateY = R_F_Leg2.rotateY * 10;
R_B_Cog3BCTL.rotateY = -R_B_Leg2.rotateY * 10;L_B_Cog3BCTL.rotateY = -L_B_Leg2.rotateY * 10;
L_F_Cog3CTL.rotateY = L_F_Leg2.rotateY * 10;
R_F_Cog4CTL.rotateY = R_F_Leg3.rotateY * 10;
L_F_Cog4CTL.rotateY = L_F_Leg3.rotateY * 10;
Cogs that rotate depending on time
R_F_Cog1CTL.rotateY = time * 180;R_B_Cog1CTL.rotateY = time * 180;
L_F_Cog1CTL.rotateY = time * 180;
L_B_Cog1CTL.rotateY = time * 180;
R_F_Cog2CTL.rotateY = -time * 180;
R_B_Cog2CTL.rotateY = -time * 180;
L_F_Cog2CTL.rotateY = -time * 180;
L_B_Cog2CTL.rotateY = -time * 180;
BodyCog1.rotateZ = -time * 180;
BodyCog2.rotateZ = time * 180;
BodyCog3.rotateZ = time * 180;
BackCog1.rotateZ = -time * 180;
BackCog2.rotateZ = time * 180;
BackCog3.rotateZ = -time * 180;
BackCog5.rotateZ = -time * 180;
Pistons movements
R_F_PistonCTL.Move = (sin((3.14 * time)-1.)/2)+.5;
R_B_PistonCTL.Move = (sin((3.14 * time)-1.571)/2)+.5;
L_F_PistonCTL.Move = (sin((3.14 * time)-.571)/2)+.5;
L_B_PistonCTL.Move = (sin((3.14 * time)-1.571)/2)+.5;
BodyPiston1CTL.Move = (sin((3.14 * time)-.571)/2)+.5;
BodyPiston2CTL.Move = (sin((3.14 * time)-1.)/2)+.5;
BodyPiston3CTL.Move = (sin((3.14 * time)-1.571)/2)+.5;
BackPiston1CTL.Move = (sin((3.14 * time)-.571)/2)+.5;
BackPiston2CTL.Move = (sin((3.14 * time)-1.)/2)+.5;
BackPiston3CTL.Move = (sin((3.14 * time)-1.571)/2)+.5;