チャンネルタイプの続きで、modoのマトリクス(行列)チャンネルについて書いてみます。
普通に3Dソフト使ってたときはマトリクスって何?という感じでよくわかってませんでした。今も正確なとことろは全くわかってませんが、リグを構築するにはマトリクスチャンネルの使い方を知っておくと便利です。
マトリクスチャンネルとは
マトリクスチャンネルはアイテムの「位置XYZ」「回転XYZ」「スケールXYZ」が全部セットで格納されてるようなチャンネルです。
もう少し詳しく書くと、マトリクスは3Dの座標変換になくてはならないもので、これがなければ親子関係も何もはじまらないくらい3Dの根源的な物っぽいです。
一般的に3DCGでは「位置XYZ」「回転XYZ」「スケールXYZ」と便利関数がセットになった、4×4の行列を使用するそうです。正しく理解したい人は座標変換に詳しい人に聞いてください。
何ができるの?
リグ作ってるとアイテムの回転や位置が欲しいことが多々あります。そんなときマトリクスチャンネルを使用して「位置」「回転」「スケール」を取り出すことができます。逆に「位置」「回転」「スケール」を行列にすることもできます。
コンストレイント系モディファイヤはマトリクスチャンネルを使用してるので、マトリクスの分解と再構築方法を知ると様々なリグに応用できると思います。
modoには便利なノードが用意されてるので、マトリクスが何かという難しいことを知らなくてもリグを作ることができます。よく使う便利なノードについて書いておきます。
Matrix Vecto
マトリクスから位置を取り出すことができます。回転行列をリンクすると正規化された方向ベクトルを取得できます。
Matrix To Euler
マトリクスから角度を取り出すことができます。
オイラーは「回転順序」によって回転結果が変わるので注意が必要です。数学的にそういう物らしいので、出力した角度がなんか違うなと思ったら「回転順序」を変えてみるといいかもしれません。
Matrix Construct
「位置」「スケール」をマトリクスにすることができます。
Matrix From Euler
角度を回転行列にすることができます。
座標変換の知識があれば「ワールド回転からローカル角度を計算する方法」のように3D空間で必要な様々な値を取り出したり便利に使えるみたいです。
マトリクスチャンネルは「ワールド位置」「ワールド回転」「ローカル」など色々ありますが、チャンネルにどんな値が入ってるかは「マトリクスの計算順」が参考になると思います。
次はマトリクスチャンネルを使って、アイテムやカメラの位置をシーケンシャルにブレンドするマトリクスミキサー的なリグについて書いてみます。