Blender で ActionEditorやNLA,GraphEditorなど、Animationまわりの操作に関するメモ。
アニメーションづくりに使われている原理や手法・Actionづくりの手順
Pose to Pose / ポーズトゥーポーズ
あるアクションを作るに当たり、基準となるポーズいくつか先に作って、後から間を調整するという作り方。2D アニメで原画を先に作るのと同じ。
アクションづくりの具体的な流れ
これはあくまで個人的なものです。
①アクションの中で最も重要なポーズを作る。
これは特定の1フレームでOK(TimelineのStartEndを1と1にしてやるようにしておくと、どのフレームにキーを打ったか見失わないのでおすすめ)。
アクション全体の基準になるので、精度にはこだわる。
このフレームをレンダリングして、シーンの中でのサイズ感とかも確認しておく。
②アクション全体の長さや速度を決める
最重要ポーズができたら、次はアクション全体の長さや速度を決めるためにいくつかのフレームにキーを打っていく。アクションの細かな精度ではないので大雑把でよい。
例えばループ系の短めなアクションであれば、最初のフレーム – 中間のフレーム – 最後のフレーム のような感じでOK。それでレンダリングして長さや速度に問題がないかを確認。あれば調整。
アクションの速度は後々NLAで調整もできるが、なんだかんだ元のアクションが最適な速度になっているに越したことはないと思うのでここでやる。
③ブラッシュアップする
後は微調整とアニメっぽい表現をプラスしていく。アニメーションの12原則を参考に修正や演出を加えていく。
Anticipation
予備動作。大きな動きをつけるときなど、その数フレーム前に前振りの動きをつけるとダイナミックになることがある。
Followthrough / Overlap
例えばあるフレームですべての動きがピタッととまるとかは不自然なので、そういう部分が自然になるようにする。
具体的な事例
アクション系
キーフレームをコピーする / 異なるアクション間でキーをコピーしたい
①コピー元、アクションAのキーフレームを選択してコピーする

②アクションBを作る。ボーンを選択してiキーでキーフレームを打っておく(空だとペーストできない。特定のボーンのみコピーしたい場合はそのボーンだけ選択してキーを打つ)
③ペーストする
ActionA とActionBをつなげる
例えばActionAとBを作り、AからBへ遷移させたいということがある。
一番手軽なのは NLAにABを配置して、2つのStripを Shift+T – Transitonでつなぐという方法だろう。
これで再生して問題ない場合は特にこのままでよいが、遷移中の動きを制御したいということもよくある。
その場合は遷移用の ActionT を作り ActionAの最終フレームとActionBの最初のフレームを、このActionTに貼り付け、後は適宜キーを打って動きをつけるという方法が楽。
音源に合わせてリップシンク / 音声をもとにして口パク
シンプルな上下の開閉でいいなら
①アクションを作り、口の開閉を制御するボーンを選択、閉じた状態でキーを打っておく

②GraphEditorとVideoSequencerウィンドウを開く。
VideoSequencerの方にリップシンクの音源をドロップして配置する。

③あごボーン(口の開閉を制御するボーン)を選択し、GraphEditorの左のボーンリストを開く。
開閉は自分のリグの場合ZLocationで制御しているので、それを選択、Shift+Hで他を非表示にする。
※※これを間違えてZrotaionにしてしまい詰まってしまったことがある(samples to keys でうまくいかなかった)。なのでちゃんと開閉の動きを制御する特定のボーンを選択すること!


④選択したまま、GraphEditorのChannel – Sound to Samplesを実行する。
ファイル選択の項目が表示されるので、VideoSequencerに配置したのと同じ音源ファイルを割り当てる。

うまく行けば音源の波形がZlocationのグラフにコピーされる

再生してみて口が開閉するか確認。動けばOK
⑤開閉度合いの調整やキーへの変換など
方法A
Zlocationを選択した状態で、Channel – Samples to keys を実行する。
※※NLAをアクティブにしていると変になることがあるかもしれないのでチェックを外しておく

確認しながら S-Y や G-Y などで グラフの山の大きさを調整する

方法B
GraphEditorでやる場合
GraphEditorの右パネルを開き(Nキー)、AddModifierタブから Envelope を出し、AddControlPointを選択、中央と右の値を調整(Shiftキーを押しながら調整すると微調整がしやすい)グラフの波のサイズを小さくしていく。
(右のパネルにAddModifierのタブがない場合、左のリストの当該項目、たとえばZlocationなどを選択してみる)


調整後のグラフはこんな感じ。


よければChannel – Sample to key を実行してキーに変換する(後でもいい)。
※※NLAをアクティブにしていると変になることがあるかもしれないのでチェックを外しておくこと
⑥動きをさらに調整
小刻みに動きすぎていると感じる場合、AddModifierからSteppedInterpolationを割り当てる。StepSizeを調整して刻み具合を調整する。
グラフはこんな感じ。
モディファイアは適用されていないので、適用するならBakeChannelを実行する(Alt + C)

⑦キーの削減
キーの数を減らしたい場合は、GraphEditorでキーを選択し、Key – Density – Decimate を実行する。
50%減らすとこんな感じ。

またはアクションEditorでKey – CleanKeyframeでも減らせる
データの整理、余分な情報を削除する
Actionのキーフレームを整理したい / ActionClip をクリーンにする
ベイクした場合や、MixamoなどからImportすると、アクションの全フレームにキーが打たれていることがある。
①ActionEditorを開いて減らしたいキーフレームを選択する

②メニューのKeyの項目から ”CleanKeyframes” を実行する。
そうすると余分なキーが削除できる。

Thresholdの値を減らす量を調整可能。

使わないチャンネルを削除する / 特定のボーンのキーフレームだけ残したい
NLAとかで使いまわしをする時、特定のボーンのキーフレームだけにしたいことがある。
①PoseModeとActionEditorを出しておく。
PoseModeの画面で残したいボーンを選択
ActionEditorに選択したボーンの情報だけが表示されているか確認(右上の矢印 をアクティブにすることでonly show selectedになる)

②PoseModeの画面でCtrol + I で選択を反転する。
③ActionEditorの左のチャンネル一覧で右クリックしてDeleteChannelsを実行。

NLAでベイクできない / Nothing to Bake となってしまう
OnlySelectedBonesのチェックを外してみる。


コメント