mental イメージ .mi ファイルは、メンタル イメージ シーンの記述言語である ASCII またはバイナリ ファイルで作成します。
mental ray for Maya では、Maya 内のカスタム mental ray シェーダのテキストのみの統合の書き出しと挿入が可能です。この統合により、カスタマイズされた mental イメージ(.mi)テキストを保持した特殊用途の Maya ノードを作成できます。
これらのノードは、カスタム テキスト エディタ(Custom Text Editor)と特殊なカスタム テキスト コントロールを使用して、特定の Maya シーン構成要素に割り当てることができます。
mental ray for Maya で生成された mi ファイルには、レンズ シェーダ、ボリューム シェーダ、環境シェーダ、ライト シェーダ、マテリアル シェーダ、テクスチャ シェーダあるいはユーティリティ シェーダ、そしてオブジェクト定義といった、カメラ出力ステートメントのカスタマイズ済みバージョンを収めることができます。さらに、エクスポートの特定の段階で書き込まれたテキストを生成できます。
詳細については、 オブジェクトやシェーダへのカスタム テキストの割り当てを参照してください。
mental ray for Maya プラグインには、専用のノード タイプである mentalrayText ノードが用意されています。このプラグインには、ASCII テキストを編集できるシンプルなユーザ インタフェースが搭載されています。詳細については、 オブジェクトやシェーダへのカスタム テキストの割り当てを参照してください。
これらのノードは、特定の状況において、カスタム テキスト エディタ(Custom Text Editor)を使用してシーン内の別のノードにコネクトできます。
mentalrayText ノードの Maya ノードへの割り当ては、追加のアトリビュート(Extra Attributes)セクションの .mi テキストで行われます。mental ray for Maya はシーンとシェーダ グラフを横断するときにこの新規アトリビュートをチェックします。新規アトリビュートが見つかった場合には、コネクトされた mentalrayText のコンテンツはそれ以上チェックされずに書き込まれます。
テキスト モードのアトリビュートに応じて、カスタム テキストは生成された .mi テキストで既存テキストの後に追加されるか、前に追加されるか、既存テキストを完全に置き換えます。
Maya レンダラはこれらの追加のアトリビュートを無視します。このため、シーンを通常どおり支障なくレンダーできます。その一方で、変更されたシーンは、ライト、オブジェクト、マテリアル間の依存リレーションシップが壊れたために、mental ray でそれ以上レンダーできない場合もあります。詳細については、 一般的な注を参照してください。
テキスト ノードおよびそのコネクションを保持するには、シーンを Maya Binary(.mb)ファイルとして保存する必要があります。
カスタム テキスト エディタ(Custom Text Editor)のコントロール グループのサポート
カスタム テキスト エディタ(Custom Text Editor)には、プルダウン リストとボタンから構成される 2 つの行があります。これらの行はデフォルトで選択不可になっています。
Maya のオブジェクトやシェーダを選択すると、選択された構成要素に応じてカスタム テキスト エディタ(Custom Text Editor)が更新され、カレント セクションでカスタム .mi テキストで既存テキストの後に追加されるか、前に追加されるか、既存テキストを完全に置き換えます。
以下に 2 つのコントロール グループがサポートするものを示します。
初期バリアントを除く、いずれかのライト、カメラ、シェーディング グループを選択したときや、Maya のデフォルトである lambert1 と particleCloud1 を除き、あらゆるシェーダを選択したときに有効になります。
メッシュまたは NURBS のシェイプが選択されたときに有効になります。シェイプの直接トランスフォームが選択された場合は、基礎となるシェイプが自動的に定義され、使用されます。
カスタム テキストは、移動時に認識される特殊なプレースホルダ文字や文字列を利用できます。これらの文字や文字列はエクスポートで実際の値に置き換えられます。4 つのカスタム テキスト変数がサポートされています。
カスタム テキスト ノードを作成し、それをシーン内の選択されたノードに割り当てると、アトリビュート エディタが更新されます。
オプション メニューには、これまで作成された使用可能なすべてのテキスト ノードが一覧表示されます。このオプション メニューで新規エントリを選択すると、現在のシーンの構成要素へのテキスト割り当ては、新規で選択したこのテキスト ノードに置き換えられます。また、シーンを Maya ファイルに保存すると、コネクトされたテキスト ノードもコネクトされていないテキスト ノードも含め、すべての既存のテキスト ノードが格納されます。カスタム テキスト エディタ(Custom Text Editor)にはカスタム テキスト ノードを削除する方法が搭載されていないので、カスタム テキスト ノードの削除は、標準の Maya メソッドで行わなければなりません。
カメラに割り当てられたテキスト ノードは、プラグインで作成される最初の出力ステートメントを適応させます。これにより、カスタマイズ済みのイメージ ファイルとフレームバッファを作成できます。さらに、レンズ シェーダ、ボリューム シェーダ、環境シェーダを追加できます。その他のカメラ パラメータは作用を受けず、Maya の設定に従って従来どおり書き込まれます。
ライトに割り当てられたテキスト ノードは、オリジナルのライト シェーダ出力に作用します。ライト パラメータは変更されることなく、従来どおり書き込まれます。標準の Maya ライト シェーダに替わる機能を使用すると、Maya マテリアルのイルミネーションが壊れます。Maya マテリアルのイルミネーションは特殊な light ディペンデンシー ノードに依存するからです。
シェーディング グループに割り当てられたカスタム テキスト ノードは、mental ray マテリアルのエクスポートに作用します。テキストが置換モードで適用された場合は、コネクトされたサーフェス、ボリューム、ディスプレイスメント シェーダはまったくエクスポートされません。その他のモードで適用された場合は、こういったシェーダは依存リレーションシップのあるノードを含めて従来どおり書き込まれます。
カスタム テキスト エディタは、エンティティの使用目的が分かるように、現在選択されているエンティティ名に &"material" というプリフィックスをつけます。
移動プロセスでサポートされているその他のあらゆるシェーディング ノードにもテキスト ノードを割り当てることができます。エディタは、サポートされているノードが選択された場合などにコントロールを有効にして、選択された構成要素名の前にノードのタイプ名を配置します。このアクションはすべてのテクスチャ ノードとユーティリティ ノードに対して行われます。この機能を使えば、カスタム テキスト ノードのグラフを作成し、エクスポートすることができます。mental ray for Maya は、グラフが適切にエクスポートされることを保証します。つまり、リーフ ノードにカスタム テキストが含まれている場合でも、依存リレーションシップにあるノードの前にリーフ ノードがエクスポートされます。このようにして、カスタム テキスト自体にグラフのノードに対するリファレンスを記載することができます。ここで 1 つ制限事項があります。カスタム テキストは、構造を返すシェーダでの使用を想定していないということです。コネクションでは、シェーダは常にそのノード名だけで書き込まれます。たとえば .outColor などの出力プラグ名が追加されることはありません。
シェイプ ノードに割り当てられたカスタム テキストは、オブジェクトの名前とそのフラグを除いてオブジェクト定義全体に作用します。テキスト置換モードでは Maya の設定に応じてフラグが書き込まれますが、さらにフラグをカスタム テキストに適合させることができます。さらに、エクスポートされたオブジェクトはデフォルトでタグが付けられるので、カスタム オブジェクト定義はマテリアル名の代わりにマテリアルのタグ番号を使用することになります。
実際のマテリアルはインスタンス ステートメントに割り当てられています。インスタンス ステートメントはすべてのタグ番号に対し 1 つずつ存在し、マテリアルの一覧を返します。このようにして、同一オブジェクトの異なるインスタンス、さらにメッシュ オブジェクトの中のポリゴンは異なるマテリアルを保持できます。
シーンが Maya ファイルに保存され、後で復元される場合には、削除不能なデフォルトの lambert1、particleCloud1、initialShadingGroup、initialParticleSE の各ノードは追加のテキスト割り当ての格納を拒否します。これは、これらのノードが標準でない方式で取り扱われるからです。テキスト ノードは格納されますが、これらのノードへのコネクションは失われるため、再格納する必要があります。その他の Maya サーフェス ノードはすべて予想どおりに保存され、復元されます。
カスタム テキスト ノードは、アニメーションを限定的にサポートします。アニメーションをエクスポートするとき、通常のノード アトリビュートではフレームからフレームへの変更のチェックが行われます。そして、ノードは、次に続くすべてのフレームで漸増的にエクスポートされます。カスタム テキストがアタッチされている場合でも、この動作は実行されます。
mi 構文が正しいかどうか、またカスタム テキストで正しい名前のリファレンスが使われているかどうかのチェックを行うことはできません。
空のテキストが入っていて、構成要素に追加されるのではなくコネクトされるカスタム テキスト ノードは、そのテキスト ノードが属するシェーダやオブジェクトの出力を削除します。
カスタマイズされたテキストと標準の Maya ノードの両方が含まれているシーンは、mental ray でうまくレンダーすることは不可能です。特に、カスタマイズされたライト ノードを使用しているときには、Maya ライトの依存リレーションシップに制限事項があるために、mental ray でレンダーできません。
カスタム テキストは、構造を返すシェーダの使用向けではありません。コネクションでは、シェーダは常にそのノード名だけで書き込まれます。たとえば .outColor などの出力プラグ名が追加されることはありません。