MODO 機能紹介・チップスサイト このサイトでは、MODOの基本機能やチップスをご紹介していきます。

アイテムが他のアイテムの動きに追従するには


https://www.youtube.com/watch?v=0uSqsSz00Cg

今回は、アイテムを他のアイテムの動きに追従させる方法を解説します。

サンプルとなるシーンでは、赤いボールがアニメーションしています。この動きに対して、シーン内にある他のアイテムを追従させます。まずは青い円柱のアイテムを追従させてみましょう。他のアイテムの動きに追従させるには、MODOの場合、Time Offsetというモディファイヤを使用します。

スケマティックビューの追加チャンネルモディファイヤ時間を見てみると、様々な時間に関するモディファイヤがありますが、今回はTime Offset:Matrixを使用します。追加されたノードを見てみると、入力と出力のタイプが行列になっています。つまり位置や回転といったトランスフォームなどの情報をまるごと行列として入力して、時間をずらす処理を行って、出力するということです。今回の場合、赤いボールの位置の情報を入力して、時間をずらして、出力された情報を青い円柱に流し込むことになります。ですので、チャンネルタブへと移り、赤いボールの位置行列、さらに青い円柱の位置行列をスケマティックへと追加し、ノードをそれぞれ接続します。

この状態で再生してみると、Time Offsetでずらす時間の指定を行っていないため、赤いボールと青い円柱とが全く同じ位置でアニメーションすることになります。ここでオフセット値を指定しますが、このプロパティで指定する単位はフレーム単位となりますので、仮にFPSが24の場合、0.5秒ずらしたければ-12と入力することになります。

同様に、緑のボックスに対しても1秒つまり-24フレームずらし、黄色のトーラスに対しては1.5秒つまり-36フレームずらす設定を行います。こうすると数珠つなぎで簡単にアイテムを追従させることができます。

今回はTime Offsetノードに直接ずらす時間をそれぞれに指定しました。ですが、この遅延の間隔をトライ・アンド・エラーしたいときには、それぞれのノードにいちいち設定するのは非効率です。こういう場合には、この遅延時間もノードでコントロールするほうが後々楽になります。

まずは遅延の大きさをコントロールするためのユーザーチャンネルを作成します。シーンに対して、時間タイプでユーザーチャンネルを一つ作成しましょう。次に追加演算Basic Math:乗算ノードを追加します。ユーザーチャンネルを乗算ノードに接続し、それを1倍したものをTime Offsetのタイムへと接続します。

同様に、乗算ノードを追加し、今度は値2を設定し、二番目のTime Offsetのタイムへ、もう一つ乗算ノードを追加し、値を3を設定し、3番目のTime Offsetのタイムへと接続します。

再生してみると、先ほどと同じような動きに見えますが、今回は遅延の大きさをオフセットがコントロールしています。このため、オフセットの値を変えると、簡単に追従する際の間隔を調整することができるようになります。

もちろん、アニメーション自体をコントロールしているのは元の赤いボールのアニメーションですので、このアニメーションを調整すると、他の3つのメッシュも即座にその調整が反映されるようになります。

2017年10月4日