スケマティックの基礎
http://www.youtube.com/watch?v=yMewbfDcdrU&hd=1
今回はこの歯形のメッシュを使って、スケマティックの基本的な使い方を説明します。今回は一番シンプルで簡単な基礎的なところから説明していきます。
この歯形のメッシュは上側、下側とメッシュが分かれており、それぞれに対して移動や回転、スケールがかけられるように構成されています。スケマティックのサンプルとして、これからこの上側の歯形と下側の歯形が同時に回転するような仕組みを作ってみます。まずは、この二つの歯形の回転をコントロールするためのロケータを一つ用意しましょう。このロケータをX軸に対して回転させると、二つの歯形もX軸に対して回転するように、スケマティックでリンクする仕組みを作っていきましょう。
それではロケータを選択し、チャンネルタブへと移動したら、回転Xのチャンネルを選択し、スケマティックへとドラッグアンドドロップします。同様に、上の歯形の回転X、下の歯形の回転Xもスケマティックへとドラッグアンドドロップします。これでスケマティックには三つのノードが表示されるようになりました。
このノードは、ノード左側にある丸いマークは入力、すなわち他のノードからの値を受け入れるための口であり、反対側のノード右側にある丸いマークは出力、すなわち他のノードへと値を渡すための口となります。今回はロケータの回転Xの値を、上下の歯形の回転Xの値へと流し込みますので、ロケータのノードの右側のマークをクリックしドラッグすると、接続先を表す線が現れますので、それをそのまま歯形のノードの左側のマーク、もしくは回転Xのラベルの上へとドラッグします。値の受け渡しが正しくできるようであれば、この接続を表す線が緑色に変わりますので、その状態でマウスボタンを放します。すると、ロケータの歯形のノードの間に線が接続され、ロケータの回転Xの値が、歯形の回転Xの値へと渡されるようになります。もう一つの歯形の方も同様に接続してみましょう。このようにノードの出力は複数のノードに対して接続することが可能です。これで、ロケータのX軸に対する回転の値を調節してみると、上下の歯形が同様に回転するようになりました。
ただし、このままだと上の歯形も下の歯形も同じ方向に回転してしまっています。下の歯形は、上の歯形とは反対方向に回転しなくてはなりません。反対方向に回転するということは、上の歯形の回転の値に-1.0を掛けた値を渡せば、うまくいきそうです。スケマティックビューでは、このビュー上で演算を行うためのノードというものも用意されています。追加ポップアップからチャンネルモディファイヤ > 演算 > 基本演算:乗算を追加します。この乗算ノードは入力される二つの値を掛け合わせて出力するというノードです。入力される値は他のノードから渡される値でも構いませんし、固定の値を指定することもできます。
今回の場合は、まずロケータのノードの回転Xを先ほどと同様に乗算ノードに引っ張って、上側の入力へと接続します。乗算ノードを選択し、プロパティを見てみると、値Aと値Bというプロパティが用意されています。値Aと値Bの値を掛け合わせた値を出力することになります。値Aには現在ロケータのノードからの値が入力されているため、直接値を入力することはできなくなっています。ロケータのノードから渡された回転Xの値に-1.0を掛け合わせるため、値Bに-1.0と入力します。これでこの乗算ノードから出力される値は、ロケータの回転Xの値×-1.0の値になっているはずですので、乗算ノード右側のマークから、下側の歯形の回転Xへと接続します。現在、下側の歯形の回転Xに対して、既に接続が行われていますが、ノードの接続を解除する場合には、接続のライン上をマウスでクリックし、違う場所へとドラッグするだけです。接続が解除されましたので、新たに乗算ノードの右側のマークから、下側の歯形の回転Xへと接続します。
ロケータのX軸に対する回転の値を調整すると、上下の歯形がちょうど逆向きに回転するようになり、正しい動きを行うようになりました。下側の歯形の回転が上側の回転に比べて小さめにする場合には、乗算ノードで指定した-1.0の値を少し低めに設定すると良いでしょう。
正しい動きになりましたが、この状態だとロケータの回転値には制限がかけられていません。せいぜいこの歯形が動くのは-60度から5度ぐらいの値までです。今度は、必ずロケータの回転の値がこの範囲内に収まるような仕組みを作ってみましょう。
値に対して、範囲の設定を行うためには、クランプというノードを使います。追加ポップアップ > その他 > クランプを追加します。このノードは入力された値が指定した範囲に必ず収まるように調整してくれるノードです。
ロケータの回転Xの値を、このクランプノードへと接続してみます。クランプノードを選択し、プロパティを見てみると、最小、最大の値を設定できるようになっており、最小よりも小さな値、また最大よりも大きな値の場合には、それぞれ最小値、最大値へと変換できるようになっています。今回は最小値に-60、最大値に5を入力します。これで入力されたロケータの回転Xの値は、必ず-60度から5度の範囲内の値となって出力されるようになります。
では、この出力値を上側の歯形のノードと、乗算ノードへと接続します。いったん今あるノードの接続を解除してから、新たに接続しなおしても構いませんが、わざわざ解除しなくてもノードを接続することはできます。クランプノードの出力を、上側の歯形のノードへとドラッグしてみると、先ほどまでは緑色に変わっていましたが、今回は黄色に表示されるようになりました。これは入力側が受けられる接続は一つのみであるため、この接続を行うことにより今までの接続が自動的に解除されるということを意味しています。このように、接続のラインの色によって、接続状態を判断することができます。今回は緑、黄色とみてきましたが、このノードの接続時に赤が表示される場合には、接続する出力側および入力側のタイプが異なるために接続できない、といった接続不可の状態であることを表します。
では、クランプノードを上側の歯形のノード、および乗算ノードへと接続し、ロケータのX軸に対する回転の値を変更してみます。すると、どんな回転値へ設定しても、ある一定の範囲外であれば歯形は回転しないようになりました。
このようにスケマティックでノードを組むことで、簡単にそのアイテムの挙動を制御できるようになります。ノードには、他にも演算処理を行うノードであったり、時間を表すノードなど、様々な種類が用意されていますので、それらを組み合わせることで、さらにいろいろな表現が可能になってきます。