四角形のレイヤーをコロコロと転がすアニメーションです。
フッテージの高さ/幅ピクセルサイズを計算に使いますので、素材読み込みは「コンポジション-レイヤーサイズを維持 」で。
もし余白がある場合は四角形と同じコンポジションサイズにプリコンポします。
余白があると回転する時に地面から浮いてしまいます。
素材をコンポジションに入れたら、 「アンカーポイント」と「位置」にそれぞれエクスプレッションを追加します。
アンカ-ポイント用
count = Math.floor(rotation / 90);
num = count + 1000;
val = ( num % 4);
if (val == 0) {
[width, height]
}
else if (val == 1) {
[width, 0]
}
else if (val == 2) {
[0, 0]
}
else
[0, height]
num = count + 1000;
val = ( num % 4);
if (val == 0) {
[width, height]
}
else if (val == 1) {
[width, 0]
}
else if (val == 2) {
[0, 0]
}
else
[0, height]
位置用
val = Math.floor(rotation / 90);
widthP=width*(scale[0]/100);
heightP=height*(scale[1]/100);
gap=Math.abs(widthP-heightP);
val2=Math.ceil(val/2);
valX=val * widthP;
valY=val2 *gap;
if(widthP>heightP){
x = value[0]+ valX-valY;
}
else{
x = value[0]+ valX+valY;
}
y = value[1];
[x, y]
widthP=width*(scale[0]/100);
heightP=height*(scale[1]/100);
gap=Math.abs(widthP-heightP);
val2=Math.ceil(val/2);
valX=val * widthP;
valY=val2 *gap;
if(widthP>heightP){
x = value[0]+ valX-valY;
}
else{
x = value[0]+ valX+valY;
}
y = value[1];
[x, y]
レイヤーの回転に数値を入れてアニメーションさせてみると、回転に応じて右へ左へ転がっていきます。
あとはレイヤーを好きな位置に動かして完成!