Mayaで特殊な複製(インスタンス)で大量に作ったオブジェクトをUnityに送った場合、外れてしまったテクスチャを適用し直すときの要領について説明します。
1. Maya 特殊な複製(インスタンス)
最初に、Mayaでの特殊な複製(インスタンス)したオブジェクトを更にインスタンスとして複製した場合と、単に複製した場合の違いについての説明します。
下図では、椅子とテーブルをインスタンスとして特殊な複製し、最後⑤では普通に複製しています。
- 椅子とテーブルの元オブジェクトを原点に1つずつ作成
- 椅子を特殊な複製(インスタンス)として1つ複製し、椅子2、テーブル1のテーブルセットを作成
- 特殊な複製(インスタンス)で10セット複製してグループ化
- グループをさらに特殊な複製(インスタンス)で複製
- グループを単に複製
画像をクリックして拡大できます。
④までは元オブジェクトからのシェイプノード(オブジェクトの見かけ)を継承しているので、それぞれのコンポーネントの編集がすべてに反映されます。
一方、⑤ではシェイプノードも新しくコピーされるため、独立したグループになります。しかし、グループ内でのシェイプノードは共通する1つだけなので、コンポーネントの編集はグループ内では反映されます。
また、インスタンスとして複製した場合、当然のことながらUVも継承されるので、UVの修正が簡単になります。
2. インスタンスで複製した場合のUnityへの送信
Unityへインスタンスオブジェクトを送信した場合、アラートが表示されますが、処理を続行して普通に複製されたオブジェクトとしてUnityに送信します。
UnityではMayaで作成したオブジェクトとして問題なく扱えます。
3. テクスチャを適用し、マテリアルを作成
オブジェクトにテクスチャを適用することでマテリアルが作成できます。
テクスチャ画像が元々無い場合は、新規にマテリアルを作成します。
まずは最初に次のようにしてテクスチャ画像を読み込んでください。
このページ「MayaからUnityへ」の 「4. テクスチャ画像の読み込み(抽出)」で説明したように、Maya fbxファイルを選択し、インスペクターでTextureを「Extract(抽出)」します。 このとき「Texture」フォルダを手動で作成してそこへテクスチャ画像ファイルを読み込みます。
テクスチャを読み込んだ後、Maya fbx ファイルをヒエラルキーへドラッグしてシーンにオブジェクトを読み込みます。
テクスチャを共有するオブジェクトが大量にある場合、まず1つにだけテクスチャをドラッグしてマテリアルを作成します。
元々Mayaでテクスチャ画像を設定していないオブジェクトの場合は、マテリアルフォルダに新しいマテリアルを作成します。
新しいマテリアルを作成するには、プロジェクトウィンドウのMaterials フォルダで右クリックし、Create >> Material を選択します。
新規に作成したマテリアルはインスペクターで基本色 (Albedo)などを設定します。
マテリアルには区別がつきやすい名前を付けておきます。
作成したマテリアルをオブジェクトに適用するには、オブジェクトのインスペクターのMaterials / Elements の小さいボタンをクリックします。
Select Material 画面が表示されるので、作成したマテリアルを選択して適用します。
このテーブルオブジェクトには2種類のマテリアルが設定されているため、Element 0 と Element 1のそれぞれをクリックして別のマテリアルを適用していますが、1つだけの場合は、マテリアルをフォルダーからオブジェクトのインスペクター下部の空白部分にドラッグするだけで適用できます。
4. 複数のオブジェクトにまとめてマテリアルを適用
必要なマテリアルが作成できれば、あとはオブジェクトをマテリアル毎に複数選択して適用するだけです。
1つのオブジェクトにマテリアルが1種類だけの場合は、インスペクター下部にドラッグするだけです。
この例のように1つのオブジェクトに複数のマテリアルがある場合は、インスペクターのMaterials / Elements でそれぞれクリックして指定します。
Material の Element 0 を適用。
Material の Element 1 を適用。
すべてのオブジェクトにマテリアルを設定して完了です。