前回まで、二回にわたり、Instagramから一括で画像を保存する方法を紹介してきました。
なぜ、そんなことをしたかったか…という説明の前に、まずはこちらをご覧ください。
ビスケッティ岩橋 Instagramアカウント
https://www.instagram.com/yibmmdur/
よしもと養成所・NSCの同期であるビスケッティ岩橋です。
彼のInstagramが面白すぎて、これをなんとか作品にできないかと思ったのがきっかけです。
ということで、まずは、完成した作品をご紹介します。
これのコマ撮り動画を作りたくて作りたくて、そのためだけに色々と試行錯誤を繰り返してきたわけです。
では、前回からの続き、いきます。
前回までで、トリミング済みの連番画像を用意しました。
今回はそれを動画にしていきます。
とりあえずは、フレームレートを15fpsにしてAfter Effects上に単純に並べてみました。
テストレンダリングしたものがこちらです。
んー…、惜しい。すごく惜しいですよね。
このままでも、そこそこ面白いんですが、なんとなく気持ちよくありません。
何かが足りません…。
そうです。顔の位置と大きさです。
顔の位置と大きさが写真ごとバラバラなので、連続して繋がっているように見えません。
ということで、After Effectsの純正機能を使って、顔の位置を合わせました。
ググっても意外とドンピシャの情報がなかったので、結構試行錯誤して答えにたどり着いたんですが、 せっかくですので今日はその方法をご紹介します。知の共有。
顔情報の検出
まずは、顔の検出機能を使って、目、鼻、口などの位置情報を取得します。
使い方は公式のヘルプに書いてますが、いざやってみると色々と躓いたので、ノウハウを交えながら順を追って解説していきます。
まずは、マスクを作ります。
取得したい人物の顔を全部含めたマスクを書いてください。ちなみに、今回のケースは、画面上に一人しか写ってないので、画面全体を覆っても大丈夫です。
「画面全体を覆うマスクって何の意味があるの?」と思われる方もいると思いますが、レイヤーにマスクが存在しないと次のステップにいけないので、ここはぐっとこらえて作ってください。
こんな感じで、長方形マスクで画面全体を覆いました。すると、タイムライン上のレイヤーにマスクが表示されます。
次に、トラッカーパネルを表示させます。以下の場所にあります。
メニュー > ウィンドウ > トラッカー
おそらく、最初は以下の画面になっていると思います。
ここで、タイムラインパネル上で、先程作ったマスクを選択すると、表示が変わって以下のようになります。
この表示で、方法をクリックし、「顔のトラッキング(詳細な造作)」を選択してください。
そして、分析の項目にある、再生ボタンっぽいやつ(選択したマスクを再生方向にトラック)をクリックすると、分析が始まります。
これで、顔を追跡していきます。
こんな感じで、目、鼻、口、輪郭などの位置情報を検出していきます。
このまま最後まで無事終わればいいんですが、大体の場合、途中で顔を追跡できなくなります。
追跡できなくなると、こんな感じになります。
こうなったら、スペースキーを押して、いったん分析を止めてください。
次に、マスクを削除してください。
「今まで頑張って分析してきたのに、削除していいの?」と思われるかもしれませんが、
顔のデータは、エフェクト内の「顔のトラックポイント」に残っていますので、問題ありません。
マスクを削除したら、おかしくなったフレームに再生ヘッドを持っていき、またマスクで画面全体を覆います。
あとは、その繰り返しです。最後まで分析してください。
分析が終わったら、マスクは削除します。
以下のようになっていればOKです。
分析結果をもとに、目の位置を揃える
では、まずは、目の位置を揃えます。
レイヤーを選択した状態で、ショットカットキー「A」を押して、トランスフォーム内、アンカーポイントを選択状態にします。
そして、メニュー > アニメーション > エクスプレッション を選ぶと、エクスプレッションが追加されます。
ここで、エクスプレッションに以下のスクリプトを入力します。
effect("顔のトラックポイント")("鼻梁")
こうすることで、鼻梁に対してアンカーポイントが設定されるので、眉間の位置を基準に位置が統一されます。
一度再生して確認してみます。サンプル動画を貼っておきます。
これだけでもかなり揃って見えるのですが、顔の大きさが違うので、まだまだパタついて見えます。
ここからスケールを調整します。
顔のスケールを検出し、スケールに反映
まずは、位置の基準にしたいフレームを選択します。
今回は、こちらのフレームを基準にしてみます。
フレームを表示させたら、またレイヤーに適当にマスクを作り、トラッカーパネルの「休息の姿勢を設定」をクリックしたのち、「顔の測定値を検出してコピー」をクリックしてください。
ちなみに、この2つのボタンが表示されない場合、「トラッカーパネル」の下端を下にドラッグしてみてください。単純に、隠れているだけの可能性があります。
僕は、ここでしばらく迷子になりました。皆さんは、同じ過ちを繰り返さないようにしてください。
画像の数によっては、ここでしばらく時間がかかるかもしれませんが、気長に待ってください。
それが終わり、エフェクト欄に、新しい項目「顔の測定」が追加され、さらにその中に「顔のスケール」という項目が確認できればOKです。
あとはもうおわかりですね。
アンカーポイントのときと同じように、スケールのエクスプレッションに、顔のスケールの値の逆数をかけてやればOKです。
スクリプトは以下のとおりです。
temp = effect("顔の測定")("顔のスケール");
[10000/temp, 10000/temp]
一応説明しておきますと、10000/tempの部分は、100*(100/temp)っていう意味です。
顔のスケールの逆数をパーセント表示にしているだけですね。
こうやってできたものに、ちょとした演出を加えると、ついに完成です。
では最後にもう一度、完成版をどうぞ。
以上、顔のトラッキングを利用して、映像のフレームごとの位置とスケールを調整し、ストップモーションっぽく繋ぐ方法でした。
不具合や改善点などがありましたら、ぜひコメントなりメールなりでご教授願います。励みになります。
エピローグを書きました。
「Time goes by」
https://higuchi.world/archives/1059
“After Effectsで顔のトラッキングを使用してコマ撮り風動画を作る方法” への3件のフィードバック