[ループ素材作成]AfterEffectsで髪の毛をエクスプレッションで揺らす方法


概要

AfterEffectのパペットピンをエクスプレッションで制御して動く立ち絵素材を作成します
この記事では腕等は動かさず髪の毛のみ動かします
関連記事
AfterEffectsで髪の毛をエクスプレッションで揺らす方法

作例

お借りした素材

この立ち絵を使って学習する場合立ち絵製作者様に迷惑をかけないようreadmeをよく読んでから使って下さい

解説

前回の記事では髪の毛が左右に動き続けるコードを解説しました。今回は設定したコンポジションの時間に髪の毛が丁度1往復し、ループする素材作成支援コードを解説します
以下コード

var moto=
;
var idoux=100;
var idouy=100;
var x=moto[0];
var y=moto[1];
var total=thisComp.duration;
var half=total/2;

//moto=元の座標
//idoux=X方向にピンを移動させる距離
//idouy=Y方向にピンを移動させる距離
//x=ピンのx座標
//y=ピンのy座標
//total=このコンポジションの合計時間(分)
//half=このコンポジションの合計時間の半分

x=x+linear(time, 0, half, 0, idoux);
if ( time > half )
    x=x+linear(time, half, total, 0, -idoux);

y=y+linear(time, 0, half, 0, idouy);
if ( time > half )
    y=y+linear(time, half, total, 0, -idouy);
[x,y]

ループ素材作成手順

まずコンポジションを作成します
この工程を踏まなければ立ち絵素材を読み込んだ際立ち絵のコンポジションが前回作業した設定で自動的に作られてしまう為必ずやります
サイズ設定は自由、フレームレートは30。デュレーションは4秒

動かす為の下準備の説明等は省略して今回ももみあげを動かします

(スクリーンショット内のコードは改良前の物です)
もみあげの根本にピンを刺し次に真ん中辺りに刺して
パペット→メッシュ→パペットピン(真ん中のピン)→位置の時計マークにAltキーを押しながらクリックしてエクスプレッションを書ける状態にします。次に上記のコードをコピー&ペーストして

var moto=
;

=の後にピックウィップで動かすパペットピンの座標にやり入力します
後は移動距離を指定して完成です
その後動かしたい髪の毛全てに上記の作業を行いレンダリング

PNGシーケンスのRGB+アルファで出力
後は出力したファイル群をPNGシーケンスとして読み込みタイムリマップで好きな時間指定して完了です
今回の作例は口パクはやらない事を想定して出力しましたが口パクをやる時は口のレイヤーと上半身の揺れを消してレンダリング。口パクレイヤーを重ねて対応します
上半身や腕、頭を動かしたい時は前回の記事と同じ方法で作成します

参考資料
エクスプレッション言語の配列と多次元プロパティ
エクスプレッション言語リファレンスのInterpolation のメソッド(エクスプレッションのリファレンス)
エクスプレッションの例の特定の時間でウィグルを開始または停止する