Mayaで特殊な複製(インスタンス)で大量に作ったオブジェクトをUnityに送った場合、外れてしまったテクスチャを適用し直すときの要領について説明します。

1. Maya 特殊な複製(インスタンス)

最初に、Mayaでの特殊な複製(インスタンス)したオブジェクトを更にインスタンスとして複製した場合と、単に複製した場合の違いについての説明します。

下図では、椅子とテーブルをインスタンスとして特殊な複製し、最後⑤では普通に複製しています。

  1. 椅子とテーブルの元オブジェクトを原点に1つずつ作成
  2. 椅子を特殊な複製(インスタンス)として1つ複製し、椅子2、テーブル1のテーブルセットを作成
  3. 特殊な複製(インスタンス)で10セット複製してグループ化
  4. グループをさらに特殊な複製(インスタンス)で複製
  5. グループを単に複製
画像をクリックして拡大できます。
インスタンスとグループ

④までは元オブジェクトからのシェイプノード(オブジェクトの見かけ)を継承しているので、それぞれのコンポーネントの編集がすべてに反映されます。

Mayaインスタンス01

一方、⑤ではシェイプノードも新しくコピーされるため、独立したグループになります。しかし、グループ内でのシェイプノードは共通する1つだけなので、コンポーネントの編集はグループ内では反映されます。

Mayaインスタンス03

また、インスタンスとして複製した場合、当然のことながらUVも継承されるので、UVの修正が簡単になります。

2. インスタンスで複製した場合のUnityへの送信

Unityへインスタンスオブジェクトを送信した場合、アラートが表示されますが、処理を続行して普通に複製されたオブジェクトとしてUnityに送信します。

UnityではMayaで作成したオブジェクトとして問題なく扱えます。

3. テクスチャを適用し、マテリアルを作成

オブジェクトにテクスチャを適用することでマテリアルが作成できます。

テクスチャ画像が元々無い場合は、新規にマテリアルを作成します。

まずは最初に次のようにしてテクスチャ画像を読み込んでください。

このページ「MayaからUnityへ」の 
「4. テクスチャ画像の読み込み(抽出)」で説明したように、Maya fbxファイルを選択し、インスペクターでTextureを「Extract(抽出)」します。 このとき「Texture」フォルダを手動で作成してそこへテクスチャ画像ファイルを読み込みます。

Mayafbx選択
テクスチャを抽出
名称未設定6

テクスチャを読み込んだ後、Maya fbx ファイルをヒエラルキーへドラッグしてシーンにオブジェクトを読み込みます。

名称未設定5

テクスチャを共有するオブジェクトが大量にある場合、まず1つにだけテクスチャをドラッグしてマテリアルを作成します。

テクスチャをドラッグ

元々Mayaでテクスチャ画像を設定していないオブジェクトの場合は、マテリアルフォルダに新しいマテリアルを作成します。

新しいマテリアルを作成するには、プロジェクトウィンドウのMaterials フォルダで右クリックし、Create >> Material を選択します。

マテリアル作成

新規に作成したマテリアルはインスペクターで基本色 (Albedo)などを設定します。

名称未設定34

マテリアルには区別がつきやすい名前を付けておきます。

マテリアルの設定

作成したマテリアルをオブジェクトに適用するには、オブジェクトのインスペクターのMaterials  /  Elements の小さいボタンをクリックします。

Select Material 画面が表示されるので、作成したマテリアルを選択して適用します。

このテーブルオブジェクトには2種類のマテリアルが設定されているため、Element 0 と Element 1のそれぞれをクリックして別のマテリアルを適用していますが、1つだけの場合は、マテリアルをフォルダーからオブジェクトのインスペクター下部の空白部分にドラッグするだけで適用できます。

SelectMaterial

4. 複数のオブジェクトにまとめてマテリアルを適用

必要なマテリアルが作成できれば、あとはオブジェクトをマテリアル毎に複数選択して適用するだけです。

名称未設定40

1つのオブジェクトにマテリアルが1種類だけの場合は、インスペクター下部にドラッグするだけです。

名称未設定42

この例のように1つのオブジェクトに複数のマテリアルがある場合は、インスペクターのMaterials / Elements でそれぞれクリックして指定します。

マテリアル2種類指定

Material の Element 0 を適用。

名称未設定43

Material の Element 1 を適用。

名称未設定44

すべてのオブジェクトにマテリアルを設定して完了です。

名称未設定52