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

メッシュ

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

3Dフォーマット

Unityへメッシュをインポートする方法は主に2つのファイルで行うことが出来ます:

  1. エクスポートされた.FBXや.OBJなどの3Dファイルフォーマット
  2. .Maxの3D Studio Max, または.BlendのBlenderのファイル形式である 3Dアプリケーションの専用ファイル

どの方法でもUnityにメッシュに取り込むことができますが,どれを選ぶにあたって考慮すべき事があります。

エクスポートされた3Dファイル形式

Unityは.FBX ,.dae (Collada),.3DS,.dxf および.obj のFBXエクスポータファイルを読み込むことができ,FBXエクスポータはここ にある多くのアプリケーションでobjやColladaのエクスポーターを見つけることが出来ます。

長所:

  • 必要なデータのみエクスポート
  • 検証可能なデータ(Unityにインポートする前に3Dパッケージに再インポートできます)
  • 一般的にファイルサイズが小さい
  • モジュール単位のアプローチを推進できる(例.Collisionの型や相互関係性ごとにことなるコンポーネント)
  • 直接サポートしていないその他の3Dパッケージで独自形式があっても,この形式にすればサポートできます

短所:

  • プロトタイプや反復作業としては時間のかかるパイプラインとなります
  • ソース(作業ファイル)とゲームデータ(例えば,FBXでエクスポート)の間のバージョン管理を見失いないがちになります

独自の3Dアプリケーションファイル形式

Unityが変換を通してインポートできるファイル形式: Max , Maya , Blender , Cinema4D , Modo , Lightwave , Cheetah3D ,たとえば .MAX , .MB , .MA など

長所:

  • 反復作業の時間がかからない(ソースファイルを保存すればUnityが自動で再インポート)
  • 最初の作業がシンプル

短所:

  • Unityプロジェクトを使用しているすべてのマシンに当該ソフトウェアのライセンスをインストールする必要があります
  • ファイルは,不要なデータにより肥大化することがありえます
  • 容量の大きいファイルはUnityの更新を遅らせます
  • 検証が少ないデータ(問題のトラブルシューティングが困難)

サポート対象の3Dアプリケーションのためのガイドラインが次のとおりありますが,ほとんどの場合先に示したファイル種類をエクスポートすることができます。

テクスチャ

Unityでメッシュが使用するテクスチャは次のルールに従って発見されます。最初に,インポータはメッシュと同じフォルダ,あるいはその親フォルダにTexturesという名前のサブフォルダがあるかチェックします。見つけられない場合は,プロジェクト内のすべてのテクスチャを全検索します。若干遅いことのほか,全探索の主な欠点は,同じ名前のテクスチャがプロジェクト内に2つ以上あるかもしれないということです。この場合,正しいものが見つかる保証がありません。

アセットと同じ階層,あるいは親の階層にある<span class='doc-menu'>Textures</span>フォルダにテクスチャを格納する
アセットと同じ階層,あるいは親の階層にあるTexturesフォルダにテクスチャを格納する

モデルのFBXインポーターのオプション

マテリアルの生成および割り当て

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

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

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

コライダ

Unity は, Mesh CollidersPrimitive Colliders の 2 つの基本的なコライダを搭載しています。メッシュ コライダは,インポートされたメッシュ データを使用し,環境との衝突に使用できるコンポーネントです。インポート設定で,Generate Colliders を有効にすると,メッシュをシーンに追加すると,メッシュ コライダは自動的に追加されます。物理挙動としては,固体として扱われます。

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

アニメーション

シーンから自動的にアニメーションがインポートされます。アニメーションのインポート オプションの詳細については,アセット準備およびインポート の章を参照してください。

法線マッピングとキャラクター

モデルの高いポリゴン バージョンから生成された法線マップのあるキャラクターがある場合,「Smoothing angle」が 180°のゲーム品質バージョンをインポートする必要があります。 これは,接線の分割により,ライティングで変な見た目の継ぎ目が生じるのを防ぎます。 これらの設定でまだ継ぎ目が残っている場合は,「Split tangents across UV seams」を有効にします。

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

ブレンドシェイプ(Blendshape)

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

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

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

ブレンドシェイプでタンジェントが使いたいなら,Tangents インポートモードをCalculate にセットしましょう。

ヒント

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

Unity エディタに表示される頂点や三角形が多すぎる場合(3D アプリと比較して)があります。

これは実際には正しいです。あなたが見ているのは,レンダリングのために実際に OpenGLES に送信される三角形の数です。マテリアルの要件により三角形を 2 回送信する必要がある場合に加え,ハードエッジな法線や非連続UV は,モデリング アプリケーションと比較した場合に,頂点 / 三角形の数を大幅に増やします。細長い線を形成するには,三角形が 3D および UV 空間で連続している必要があるため,UV の継ぎ目がある場合は,劣化した三角形を作成し,細長い線を形成する必要がありますが,これにより三角形の数は増加します。

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