The start of the Machine and its animation.
The Gears where rotated by a short cut found in a tutorial. Which is Time[*80} . the number is directed in a clockwise motion and can changed adoringly. If one needed the rotation in an anticlockwise motion the Code would be Time[*-80]. This also loops-out so that it will continually repeat the same motion.
The toys have been masked in when they reach the end of the frame.
A mask was also used for the presents. The difference was that the presents had to be masked out. For movement the present was scaled larger and simultaneously Positioned in place. It scaled up at the same rime with the lift and covered by a layer covering the outer sides of the window.
In these two images I used one action and used a loop out code to continually repeat the same motion.
This was a deleted part that took me a long time to realised what I had to do. with the help of a class mate of mine I managed to make the small gears ling to each other and rotational simultaneously. I downloaded a plug in called Expression rotation.
boneracine = "big_ARM";
bonebout = "big_ARM_";
zero = "IK_zero big_ARM_";
controleur = "C_big_ARM_";
if (thisComp.layer(controleur).effect("IK Orientationbig_ARM")(1) == 1) {cw = true}else{cw=false}
function getWorldPos(theLayerName){
L = thisComp.layer(theLayerName);
return L.toWorld(L.anchorPoint);
}
function oriente(a, b, P) {
return ((b[0]-a[0])*(P[1]-a[1]) - (P[0]-a[0])*(b[1]-a[1]) );
}
A = getWorldPos(boneracine);
B = getWorldPos(bonebout);
C = getWorldPos(zero);
E = getWorldPos(controleur);
a = length(B,C);
b = length(E,A);
c = length(A,B);
x = (b*b + c*c - a*a )/(2*b);
alpha = Math.acos(clamp(x/c,-1,1));
y = b - x;
gamma = Math.acos(clamp(y/a,-1,1));
result = (cw ? 1 : -1)*radiansToDegrees(gamma + alpha); V1 = B - A;
adj1 = radiansToDegrees(Math.atan2(V1[1],V1[0]));
V2 = C - B;
adj2 = radiansToDegrees(Math.atan2(V2[1],V2[0]));
result + adj1 - adj2 + value;
boneracine = "big_ARM";
bonebout = "big_ARM_";
zero = "IK_zero big_ARM_";
controleur = "C_big_ARM_";
if (thisComp.layer(controleur).effect("IK Orientationbig_ARM")(1) == 1) {cw = true}else{cw=false}
function getWorldPos(theLayerName){
L = thisComp.layer(theLayerName);
return L.toWorld(L.anchorPoint);
}
function oriente(a, b, P) {
return ((b[0]-a[0])*(P[1]-a[1]) - (P[0]-a[0])*(b[1]-a[1]) );
}
A = getWorldPos(boneracine);
B = getWorldPos(bonebout);
C = getWorldPos(zero);
E = getWorldPos(controleur);
a = length(B,C);
b = length(E,A);
c = length(A,B);
x = (b*b + c*c - a*a )/(2*b);
alpha = Math.acos(clamp(x/c,-1,1));
y = b - x;
gamma = Math.acos(clamp(y/a,-1,1));
result = (cw ? 1 : -1)*radiansToDegrees(gamma + alpha); V1 = B - A;
adj1 = radiansToDegrees(Math.atan2(V1[1],V1[0]));
V2 = C - B;
adj2 = radiansToDegrees(Math.atan2(V2[1],V2[0]));
result + adj1 - adj2 + value;
The objects animated in the picture above and the four (4) below are all animated frame by frame to how I want the object to animate. I then used the Loop-Out Cycle effect to continue with the given animation.
Finally I rendered the animation the compositions and waited to see the final result and waited until the colours where ready by the concept artist to be placed incited of the grey scale machinery.