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

ターゲットの方を向くスポットライトの回転をコントロールするには

https://www.youtube.com/watch?v=9NpkB37tXjk

今回は放射台やスポットライトの躯体をターゲットの方向を向くようコントロールする方法をご紹介します。

完成シーンにあるスポットライトは構造的には、スポットライトの全体の配置を行うBase、それにConnect、そしてLightというメッシュレイヤーが親子関係で接続されています。このスポットライトがターゲットを動かすことで、必ずその方向へと向くようにLightとConnectのメッシュが回転するように設定されています。よく見ると、スポットライトを表すLightのメッシュは頭をふるようなX軸に対してのみの回転の動き、そしてそれを土台とつなぐConnectcのメッシュはY軸に対する回転のみを行っているのがわかります。では実際にこのシーンをいちから設定してみましょう。

まずはBase、Connect、Lightという階層がつけられたメッシュが用意されています。回転をコントロールするには、IK(インバースキネマティクス)の機能を利用します。IKを利用すると、ゴールというアイテムをターゲットとして、必ずその方向に階層内のアイテムが向くように設定していくことが出来ます。そのゴールを設定するために、まず階層の一番下となるアイテムがこの階層にはないので、Lightの階層の下に一つロケータを設定します。ゴールの位置を示すロケータとなるので、スポットライトの先端に来るように配置します。階層の中で一番下にあるロケータですので、名称をEndにしておきましょう。

では実際に、IKを設定していきます。IKを設定していくには、最初にセットアップモードへと切り替えておきます。

セットアップモードへと入ったら、ターゲットを動かすことによって動く階層のルート、この場合はBaseは固定されていますので、Connectがルートとなりますから、Connectを選択して、インバースキネマティクスタブからIK組み込みボタンをクリックします。さらに先程作成した階層の一番下にあるロケータEndを選択し、ゴール追加ボタンをクリックします。そうするとロケータEndの位置に自動的にGoal用のロケータが作成されます。これがターゲットとなります。Goal用のロケータは見やすいように表示を変えておいても良いでしょう。

セットアップモードを抜け、Goalアイテムを動かしてみると、LightのメッシュとConnectのメッシュが動いているのがわかりますが、望むような回転にはなっていません。インバースキネマティクスの影響を受けた上で、回転軸に制限を設定するには、各メッシュのインバースキネマティクスのプロパティで設定します。まずスポットライトを表すLightのメッシュに対しては、インバースキネマティクスのプロパティでX軸に対する回転のみを有効にするように設定します。同様にConnectのメッシュに対しては、Y軸に対する回転のみを有効にすると、ターゲットを動かすたびにConnectとLightのメッシュが正しく回転するようになります。ターゲットが固定舌状態で、Baseのメッシュの位置や回転を修正した場合でも同様に正しく動作します。

ではこのスポットライトを複製してみましょう。アイテムリストから階層のルートであるBaseを選択し、複製インスタンス複製を行うと、複製したBaseに対してもGoalは有効になっています。一つのGoalで複数のスポットライトを自由に動かすことが出来ます。しかし、モデルパレットの複製タブにある複製ツールなどで一気に複製すると、このゴールが正しく動作しなくなりますので、その修正方法をご紹介します。

試しに、Baseを選択し、複製サブタブにある複製ツールを長押ししてインスタンス複製ツールを起動し、この階層全体を複製してみます。Baseだけでなく、階層全体を複製する場合には、プロパティの中にある階層オプションをオンにしておきます。一見、正しく複製されているように見えますが、Goalを動かしてもそちらを向くスポットライトは複製元となるスポットライトのみであり、他のスポットライトはそちらを向きません。

スケマティックビューへとGoalを追加してみると、Goalのワールド位置ワールド回転がスポットライトの階層の一番下にあるEndロケータのIK位置タスク行列IK方向タスク行列に接続されているのがわかります。これが複製を行った階層に対しては、接続されていない、接続が解除されているためにゴールに追従しなくなっています。ですので、この接続をもとに戻していきます。

アイテムリストから複製した階層の各Endロケータを一気にスケマティックビューに持っていきたいので、アイテムリストのフィルタリング機能を利用してEndを表示させ、スケマティックビューへと追加します。さらにチャンネルタブからIK位置タスク行列IK方向タスク行列も追加して、Goalのワールド位置ワールド回転とに接続します。そうすると、正しくGoalの動きに追従するようになります。

逆に、ターゲットとなるGoalアイテムを別のロケータに変更したいという場合には、このIK位置タスク行列IK方向タスク行列を、別のロケータのワールド位置ワールド回転へと切り替えてあげるだけでOKです。

この仕組を使えば今回サンプルとして使用したスポットライトだけでなく、ミサイルの放射台など様々な躯体に応用できるかと思います。

2019年3月25日