Version: 2018.4
言語: 日本語
メッシュのコンポーネント
マテリアル

メッシュ

3D世界の大半は、メッシュ で構成されています。Asset Store プラグインを除けば、Unity にはモデリングツールが含まれていません。しかし Unity はほとんどの 3D モデリングパッケージと強力な相互関係性を持っています。Unity は三角、四角ポリゴンのメッシュをサポートしています。NURBS、NURMS、サブディビジションサーフェイスは、ポリゴンに変換する必要があります。

テクスチャ

Unity でメッシュが使用するテクスチャは次のルールにしたがって検索されます。最初に、インポーターはメッシュと同じフォルダー、あるいはその親フォルダーに Textures という名前のサブフォルダーがあるかチェックします。見つけられない場合は、プロジェクト内のすべてのテクスチャを全検索します。全検索の主な欠点は多少遅いことに加え、同じ名前のテクスチャがプロジェクト内に 2 つ以上ある場合、正しいものが見つからない可能性があることです。

アセットと同じ階層、あるいは親の階層にある Textures フォルダーにテクスチャを格納する
アセットと同じ階層、あるいは親の階層にある Textures フォルダーにテクスチャを格納する

Import Settings ウィンドウの Materialタブ

マテリアルの生成と割り当て

Unity でインポートされた各マテリアルは次のルールにしたがって処理されます。

マテリアルの生成が無効になっている場合(例えば Import Materials がオフ)、デフォルトの Diffuse マテリアルを割り当てます。有効になっている場合、次の処理を行います。

  • Unity が Material Naming 設定にしたがって Unity マテリアルの名前を選択する。
  • Unity は、この名前を持つマテリアルを検索します。マテリアルの検索範囲は Material Search 設定によって定義されます。 Unity は、マテリアルを見つけると、それをインポートしたシーンで使用しますが、見つけられない場合はマテリアルを作成します。

コライダー

Unity には、Mesh Colliders (メッシュコライダー) と Primitive Colliders (プリミティブなコライダー) の 2 つの基本的なコライダーがあります。メッシュコライダーは、インポートされたメッシュデータを使用し、他のオブジェクトとの衝突に使用できるコンポーネントです。インポート設定で、Generate Colliders を有効にすると、メッシュをシーンに追加したときに、メッシュコライダーが自動的に追加されます。物理挙動としては、固体として扱われます。

オブジェクトを動かしている場合 (車など)、メッシュコライダーは使用できません。代わりに、プリミティブコライダーを使用する必要があります。この場合、Generate Colliders 設定を無効にしてください。

アニメーション

モデルファイルから アニメーションをインポート することができます。Unity にインポートする前に 3DモデリングソフトウェアからFBXファイルをエクスポート のガイドラインに従ってください。

法線マップとキャラクター

多角形モデルから生成した法線マップを適用したキャラクターがある場合、Smoothing angle を 180°に設定したゲーム品質のモデルをインポートする必要があります。これは、接線が分割される事によって、継ぎ目のライトが不自然になることを防ぎます。これらの設定でもまだ繋ぎ目が残っている場合は、Split tangents across UV seams を有効にしてください。

グレースケールの画像を法線マップに変換する場合は、これを気にする必要はありません。

ブレンドシェイプ

Unity はブレンドシェイプ (モーフターゲットや頂点アニメーションとも呼ばれます) サポート機能があります。Unity はブレンドシェイプを、.FBX ファイル(ブレンドシェイプとアニメーションの制御)と .dae ファイル (ブレンドシェイプのみ) からインポートができます。Unity のブレンドシェイプは頂点と法線とタンジェントの頂点レベルのアニメーションをサポートします。メッシュはスキンとブレンドシェイプから同時に影響を受けます。ブレンドシェイプでインポートされたすべてのメッシュは (スキンを使っていても使っていなくても)、SkinnedMeshRenderer を使います。ブレンドシェイプアニメーションは通常のアニメーションの一部としてインポートされます。つまりそれは単に SkinnedMeshRenderer のブレンドシェイプのウェイトをアニメーションすることになります。

法線付きのブレンドシェイプをインポートするには 2 つの方法があります。

  1. Normals のインポートモードを Calculate に設定すると、この方法と同じロジックがメッシュの法線とブレンドシェイプの計算に使われます。
  2. ソースファイルにスムーズグループ情報をエクスポートすると、Unity はメッシュ用スムーズグループとブレンドシェイプから法線を計算します。

ブレンドシェイプでタンジェントが使いたい場合は、Tangents インポートモードを Calculate に設定してください。

ヒント

  • できるだけ多くのメッシュを結合します。メッシュにマテリアルとテクスチャを共有させます。これには、非常に大きなパフォーマンス上の利点があります。
  • Unity でさらにオブジェクトを設定する必要がある場合(物理特性、スクリプトやその他)、あとで苦労しないように 3D アプリケーションでオブジェクトに適切な名前をつけます。 pCube17Box42 のようにネーミングしたオブジェクトをたくさん作成すると苦労するだけです。
  • 3D アプリケーションで、世界の原点にメッシュを配置させます。これにより、Unity から簡単にメッシュを配置できます。
  • メッシュが頂点カラーを持っていない場合、Unity は最初のレンダリング処理で自動的にメッシュ全体へ白い頂点カラーの配列を追加します。

Unity エディターで (3Dアプリケーションと比べて) 頂点や三角形が多く表示される

これは正しい動作です。表示される頂点、または三角形の数は、描画のために GPU に実際に送信される数です。マテリアルの要件によりそれらを 2 回送信する必要がある場合に加え、ハードエッジに設定した法線や、非連続な UV などでも、モデリングアプリケーションでの表示よりも、頂点/三角形の数が大幅に増加します。ストリップを作るには、三角形が 3D や UV 空間で連続している必要があるため、UV に繋ぎ目がある場合、ストリップを作るために縮退した三角形が作成されます。これによって、合計数がより増加します。


メッシュのコンポーネント
マテリアル