メッシュ
マニュアル     リファレンス     スクリプト   
Unityマニュアル > ユーザガイド > アセットの使用 > メッシュ

このドキュメントは有志により翻訳されたもので、オフィシャルではありません。オリジナルのページはこちら
This document is unofficially translated by users.Please see the original document here.

翻訳に関する修正など、ご連絡はこちらまで。
Please send e-mail to here, when you have any question about the translation.

メッシュ(Meshes)

3Dゲームの中心は、三角形で構成され、テクスチャが適用されたオブジェクトである、メッシュ(Meshes)です。

Unityのメッシュはレンダラコンポーネントによってレンダリングされます。多くの種類がありますが、Mesh Rendererが最も良く使われます。


A Mesh FilterMesh Rendererが、モデルのスクリーン上での見た目を決定する。

メッシュ(Meshes)

メッシュは3Dワールドの大部分を構成します。Unityの中ではメッシュを作らず、他のアプリケーションで行います。

Unityでは、このプロセスをシンプルにするために、出来る限りの事を行いました。詳細はたくさんありますが、次のページが、一般的な3Dパッケージに関する全ての機能を、記述しています:

その他のアプリケーション

Unityは.FBX.dae (Collada)、 .3DS.dxf.objファイルを読み込めます。もし、プログラムがそれらの形式でエクスポートできれば、何でも使用できます。有名な3DパッケージのFBXエクスポータはここで、探すことができます。多くのパッケージはColladaエクスポータも使用できます。

テクスチャ(Textures)

Unityはインポートしたシーンに、自動的にマテリアルを関連付けようとします。この、アドバンテージを利用するには、テクスチャを、シーンファイルのとなりの"Textures"フォルダか、それより上のフォルダに保存します。


テクスチャをTexturesフォルダ下、アセットのレベルより上に配置します。

インポート設定(Import settings)

3Dメッシュファイルのインポート設定にアクセスするには、メッシュを選択すると、インスペクタに関連するオプションが表示されます。


メッシュインポート設定ダイアログ


メッシュ(Meshes)
Scale Factor Unityの物理システムは、ゲームワールドでの1メートルが、インポートしたファイルの1ユニットとして扱います。モデルを異なる縮尺にしたければ、ここを調整します。
Mesh Compression この値を大きくすると、メッシュのサイズが減少しますが、不整合が発生する可能性があります。メッシュの見た目が変わらない、ぎりぎりまで値を大きくするのが良いでしょう。これは、ゲームサイズを最適化するのに役立ちます。
Generate Colliders これが有効の場合、メッシュは自動的に、メッシュコライダが付加されてインポートされます。これは、背景ジオメトリには良いですが、移動させるジオメトリには決して適用しないでください。詳細に関しては、以下の衝突物(Colliders)を参照してください。
Swap UVs ライトマップされたシェーダが異なるUVチャンネルを選んでいた場合に使用します。プライマリとセカンダリのUVチャンネルを入れ替えます。
タンジェント空間(Tangent Space)
Generation 特定のパートの頂点データを生成するかどうかを設定します。これは、ゲームサイズを最適化するのに有効です。
All (Tangents and Normals) タンジェントと法線を有効化します。
Normals Only 法線のみ有効化します。メッシュは、タンジェントもを持たないため、バンプマップシェーダは作用しません。
None タンジェントと法線を無効化します。メッシュが、バンプマップやリアルタイムのライティングに作用されない場合に使用します。
Calculate Normals インポートされたジオメトリの法線を再計算します。有効にすると、Smoothing Angleも有効になります。
Smoothing Angle 境界線がどの程度はっきりとするべきかを設定します。法線マップタンジェントを分割するのにも使用します。
Split Tangents バンプマップライティングが、メッシュ状で壊れている場合に有効にします。通常キャラクタにのみ用いられます。
Materials
Generation マテリアルがどのように生成されるかをコントロールします:
Off マテリアルを全く生成しません。
Per Texture マテリアルファイルを発見したテクスチャに近くなるように生成します。異なるシーンで、同じテクスチャに対しては、同じマテリアル設定を共有します。 このルールに関しては、以下のマテリアル生成を参照してください。
Per Material シーンごとにマテリアルを生成しますので、このシーンでのみ用いられます。
アニメーション(Animations)
Generation どのようにアニメーションをインポートするかをコントロールします:
Don't Import スキンやアニメーションをインポートしません。
Store in Original Roots アニメーションは、アニメーションパッケージのルートオブジェクトに格納されます。(Unityのルートオブジェクトとは違うものになるでしょう)
Store in Nodes アニメーションは、オブジェクトと一緒に格納されます。複雑なアニメーションを利用していて、スクリプトによって完全にコントロールしたい場合は、これを使用してください。
Store in Root アニメーションはシーンのトランスフォームルートオブジェクトに格納されます。階層化されたものをアニメーションさせる場合に使用します。
Bake Animations アニメーションパッケージで、IKやシミュレーションを使用していれば、有効化してください。UnityはFKに変換してインポートします。
Animation Compression メッシュアニメーションに適用する、圧縮を選択します。
Animation Wrap mode インポートされるメッシュのデフォルトのWrap Modeです。
Split Animations 複数のアニメーションを1つのファイルに保存している場合、ここで、複数のクリップに分割できます。
Name 分割されたアニメーションの名前
Start このモデルファイル中の最初のクリップのフレーム
End このモデルファイル中の最後のクリップのフレーム
WrapMode アニメーションの終端に達した場合に、分割されたクリップが取る動作
Loop どのようにアニメーションが作られたかに応じて、分割されたクリップをループするには、1つの追加フレームが必要になる場合があります。ループしているアニメーションがおかしければ、このオプションを有効にしてください。

マテリアルの生成(Material Generation)

マテリアルは以下のルールに従って見つけられます:

  • Unityは、シーン中でオブジェクトに結びつけられている、メインの拡散マテリアル(diffuse material)を取得します。
  • Unityは、シーン側のMaterialsフォルダから、この名前のマテリアルを探します。
  • Unityは、プロジェクトフォルダを登りながら、各Materialsフォルダを探します。

Unityが、マテリアルを発見できなければ、テクスチャから生成しようと試みます:

  • Unityは、シーンと同じフォルダから、正しい名前のテクスチャの取得を試します。
  • Unityは、 シーン側のTexturesフォルダから、正しい名前のテクスチャの取得を試みます。
  • Unityはプロジェクトフォルダを登りながら、各Texturesから、ただし名前のテクスチャの取得を試みます。
  • テクスチャが見つかったら、側にMaterialsフォルダを作成し、マテリアルを生成します。

Colliders

Unityは2種類の代表的なコライダを持っています:メッシュコライダ(Mesh Colliders)(Primitive Colliders)です。メッシュコライダはジオメトリと共にインポートされ、背景オブジェクトに使用されます。インポート設定で、Generate Collidersを有効にすると、メッシュがシーンに追加される時に、自動的にメッシュ古来だが追加されます。これにより、物理システムは個体として扱うようになります。

オブジェクト(例えば車など)を移動させる場合、メッシュコライダを使うことはできません。かわりに、プリミティブコライダ(Primitive colliders)を使用します。このときは、Generate Colliders設定を無効化しなければなりません。

Animations

アニメーションはシーンから自動的にインポートされます。アニメーションのインポートに関する詳細は、キャラクタアニメーションの章を参照してください。

法線マッピングとキャラクタ(Normal mapping and characters)

高ポリゴンのモデルのキャラクタから作られた法線マップを使用している場合、ゲームクオリティ版のキャラクタを、Smoothing angleを180度に設定して、インポートするとよいでしょう。タンジェント分割による、奇妙なライティングを避けることができます。それでも、奇妙なままであれば、Split tangents across UV seamsを有効にしてください。

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

ヒント

  • できるだけメッシュは統一してください。マテリアルとテクスチャを共有するようにします。パフォーマンスが劇的に良くなるでしょう。
  • オブジェクトの設定をUnityで行いたい場合(物理の追加、スクリプトやその他の効果)、3Dアプリケーションで正しku 名前をつけることで、楽に行えます。pCube17Box42と言った名前のオブジェクトで作業を行うのは苦痛です。
  • 3Dアプリケーション内で、メッシュがワールドの中心に設置してください。Unity内での配置が楽になります。

Unityエディタが3角形を表示しすぎる(3Dアプリケーションに比べて)

これは正しい動作です。表示されている三角形は、OpenGLESにレンダリングのために送られる、実際の三角形です。 加えて、マテリアルが2度送られる場合や、硬い法線や、連続していないUVが頂点/三角形の数を、モデリングアプリケーションやUnityiPhone1.0.3に比べて、飛躍的に増大させます。 三角形は3DとUV空間両方で、ストリップを作るために、連続していなければなりません。UVの継ぎ目がある場合、生成された三角形はストリップを作るように形作られる必要があります。これは、数を増大させます。 Unityワールドは、以前、三角形の数を不正確に報告していました。まず、実行時について修正され、エディタについても修正されました。現在は、両方共に正しく、OpenGLESにレンダリングのために、*実際に*送られる三角形の数を報告します。

参照