アニメーションカーブを滑らかにデータ量を軽くするには
https://www.youtube.com/watch?v=89ANo4iFJNk
BVH形式などでモーションキャプチャデータをMODOのリターゲティング機能で読み込んだ場合など、キーフレームのデータにカクつきが見られる場合があります。今回はそういったアニメーションカーブのカクつきを滑らかにし、さらにキーフレームを間引いてデータ量を軽くする方法をご紹介します。
サンプルとなるシーンでは、キャラクタのメッシュに対しリターゲティング機能でBVH形式のモーションキャプチャデータをベイクしています。股関節の部分のスケルトンを選択し、グラフ編集でカーブを確認してみると、全てのキーにキーフレームが作成されており、回転のチャンネルなどは細かい動きでカクついている箇所もあるようです。
このカクつきをより滑らかにするために、MODOにはSmoothというチャンネルモディファイヤが用意されています。まずはグラフ編集において、このオリジナルのアニメーションカーブをバックアップしてとっておきましょう。簡単にバックアップを取るためには、グラフ編集のシャドー機能を使います。このシャドーとはグラフ編集におけるクリップボードのようなものです。シャドーボタンをクリックし、シャドーへコピーを実行します。これでこのチャンネルのコピーがシャドーへと格納されました。
それでは実際にチャンネルに対してスムーズをかけてみます。選択したチャンネルをスケマティックビューへと追加し、追加 > チャンネルモディファイヤ > その他からSmoothを追加します。これは入力されたチャンネルに対してスムーズをかけて出力するというモディファイヤです。回転のチャンネルを入力し、出力をそのまま回転へと接続してみます。実際にはこのモディファイヤの影響を受けて既にスムーズがかかっていますが、グラフ編集ではその変化を確認することができませんので、いったんベイクしてみます。アニメーション > ベイクでベイクを行ってみると、グラフ編集上でシャドーにコピーされていたオリジナルのカーブと、ベイク後のカーブとを簡単に比較することができます。
さらに滑らかにしたい場合には、いったんオリジナルのカーブを元に戻しましょう。シャドー > シャドーで置き換えを実行し、シャドーに格納しておいたオリジナルのカーブをコピーしてきます。Smoothモディファイヤを選択し、ステップを1、反復を3にしてみます。もう一度ベイクして比較してみると、ちょうど良いぐらいにカクつきがなくなりました。
これでカーブは滑らかになりましたが、全てのフレームにキーがつけられているために、情報量としてはオリジナルの状態と変わりがありません。変化率が乏しい箇所であれば、全てのフレームにキーがつけられている必要はありませんので、キーを間引きます。MODOではカーブのキーを自動で間引くコマンドが用意されています。コマンド入力フィールドに channel.keyReduce と入力して実行すると、変化率が乏しい箇所におけるキーが除去されるようになりました。このようにSmoothモディファイヤでカーブを滑らかにし、さらに keyReduce コマンドで必要のないキーを除去することで、全体の情報量も抑えることが可能になります。