modoのUVパス、UV Coordinatesの出力方法について書いてみます。
UV Coordinatesとは
オブジェクトのUV座標を色に変換した物です。AfterEffectsでテクスチャマッピングするのに使用します。
テクスチャを貼るエフェクトにはRE:Map UV、Normality等があります。
modoでUVパスを出力する方法
シェーダーツリーに「UV Coordinates」を追加します。
レイヤー追加 / レンダー出力 / ジオメトリ / UV Coordinates


レンダリングの注意点は以下の通りです。
- マテリアルにテクスチャを設定する
- 色深度が16bit以上のファイル形式で保存する
- 「出力カラースペース」を「リニア」にする
- 「アンチエリアシング」をOFFにする
UV Coordinatesはマテリアルにテクスチャを設定しないとレンダリングできません。マテリアルに2Dテクスチャを設定してあげる必要があります。プロシージャルテクスチャを設定すると、3D座標的なUVが出力される点も注意が必要です。

座標を色に変換しているので、8bitのような少ない色数だと精度が出ません。png 16bitやexr Floatのファイル形式で出力する必要があります。
同様の理由で出力カラースペースを「リニア」にする必要があります。sRGB等で出力すると画像にカラー変換が適用されるので、座標がズレます。
アンチエリアシングも同様です。アンチエリアシングはオブジェクトの輪郭を滑らかに見せるため、周辺のピクセルと色を混ぜます。カラースペースのように画像全体の色が変わるわけではありませんが、アンチエリアシング部分で座標情報が狂います。

UV Coordinatesは、3dsMaxやMayaのArnoldなどでも同様にレンダリング可能です。3dsMaxやMayaもおまけで書いておきます。
3dsMaxでUVパスを出力する方法
レンダーエレメントにはUVパスが無いため、以下のどちらかの方法を使用します。
RLAまたはRPFを使用する
「レンダリング出力」のファイルフォーマットをRLAまたはRPFを使用すると、オプションから「UV 座標」を選択できます。「UV 座標」を出力する場合は、マテリアルにテクスチャが設定されている必要があります。

UVW Channel マップを使用する
OSLのマップに「UVW Channel」があります。これはUV座標を表す赤と緑のグラデーションを出力する2Dマップです。このマップをマテリアルの「拡散反射光」に設定して「自己照明」100にすると、UVパス用のマテリアルになります。
UVW Channel は、「UVW マップ」モディファイヤを使用して円柱や球で投影している場合、Bチャンネルに奥行き的な情報が書き込まれます。


Maya (Arnold)でUVパスを出力する方法
Mayaの場合はArnoldを使用します。Arnoldは説明が多く面倒なので詳細省きますが、以下のような感じです。
- AOVsでAdd CustomでaiAOV作成
- aiAOVノードのShaderのにaiUtility追加
- aiUtilityのShade ModeをFlat、Color ModeをUVに変更
- ファイル出力の dither をOFFにする


UV Coordinatesのグラデーション
最初にUV CoordinatesはUV座標を色に変換していると説明しました。UV座標を色に変換するというと複雑な感じがするかも知れませんが、UVの位置を0~1のグラデーションで表した物です。
下の画像はカバのUVパスです。

UVとモデルのグラデーションの関係を見ると、下の画像のようになっています。

オブジェクトをUVにモーフィングした画像。

UVパスは、RチャンネルにU、GチャンネルにVの位置がグラデーションで入っています。平面のUVパスを見るとわかりやすいと思います。

たまに青いUVパスを見かけます。これはBチャンネルが黒で埋められているか、白で埋められているかの違いです。AfterEffectsのエフェクトだと、RGチャンネルしか使用しないので気にしなくて大丈夫です。

UV Coordinatesは大抵のレンダラーでサポートしているので、どんなソフトからも出力できます。もし対応していない場合でも、下のような赤緑のグラデーション画像をテクスチャとして貼れば、近い効果のあるパスをレンダリングできます。
ただしシェーダーと違って、画像を使用すると解像度や色数が足りない等で品質が低下する場合があります。

参考
オブジェクトをUV形状にモーフするコマンドがどこにあるか忘れてた。テクスチャメニューの「UVをメッシュに変換」だった。


