AfterEffectsで髪の毛をエクスプレッションで揺らす方法[追記20/01/15]


概要

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

作例

お借りした素材

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

解説

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

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

x=ピンのX座標+Math.sin(time*2)*5;
y=ピンのY座標;
[x,y]

これで動きます
後はお好みで値を弄って下さい。後頭部や前髪も同じやり方で動きます

追記19/10/23

ピックウィップで座標を取得出来る事に気が付いたので更新

var moto=
;
x=moto[0]+Math.sin(time*2)*5;
y=moto[1];
[x,y]

この一行目の=の後に動かすパペットピンの位置にピックウィップを繋げば動きます

追記19/11/06

上の解説
パペットピンのピンの位置にピックウィップを繋いだ時の挙動

  • 位置にピックウィップを繋いだ時
effect("パペット").arap.mesh("メッシュ 1").deform("パペットピン 1").position
  • X、またはYにピックウィップを繋いだ時
x=effect("パペット").arap.mesh("メッシュ 1").deform("パペットピン 1").position[0]
y=effect("パペット").arap.mesh("メッシュ 1").deform("パペットピン 1").position[1]

XまたはYにピックウィップを繋ぐと位置にピックウィップを繋いだ時の文字列+[0]、[1]の文字列を参照出来ます
今回はXY座標それぞれに別の動きをさせたかったのでmotoに位置を入れた後motoに[0]or[1]を付け足してみました
参考資料
エクスプレッション言語の配列と多次元プロパティ