Version: 2017.1
Unity のウォーター
3D アプリケーションからモデルをインポートする方法

アートアセットのベストプラクティスガイド

Unity はさまざまなプログラムやソースのテクスチャ化された 3D モデルに適応します。このガイドは Unity 開発者やゲームアーティストからのアドバイスを集め、Unity プロジェクトでより使いやすくより効率的なアセットを作成する手助けとなるように作成されていてます。

スケールおよび長さの単位

スケールに注意を払うことは、ライティングおよび物理シミュレーションの両方で重要です。

  • Unity との作業に一貫性を持たせるために、ソフトウェアのメトリクスにシステムとプロジェクトの単位を設定してください。
    • 異なるシステムは異なる単位を使用しているということに注意してください - 例えば、Max の長さの単位のデフォルトはインチですが、Maya のデフォルトはセンチメートルです。
    • Unity は FBX と 3D アプリケーションファイルをインポートするときに、異なるスケールを使います。インスペクターで FBX のインポートスケールの設定を確認してください。詳細は Importing models を参照してください。
    • 例えば Scale Factor = 1, File Scale = 1, Object Transform Scale = 1 を実践したい場合は、 Importing Objects のページにリストされた 3D アプリケーションのネイティブのファイル形式を使用します。
    • 曖昧な場合は、モデリングツールから 1 立方メートルのキューブをエクスポートして、それを基準にして Unity のスケールとの差異を確認してください。
  • アニメーションフレームレートのデフォルトはパッケージによって異なります。そのため、パイプラインをまたがって一貫した値、例えば 30fps、に設定すると効率的です。

ファイルとオブジェクト

  • シーンのオブジェクトは意味の分かりやすい、一意の名前をつけます。これによりプロジェクトで、特定のメッシュの検索やトラブルシューディングが容易になります。
  • * ()?"#$ 等の特殊文字を避けます。
  • オブジェクトとファイルにシンプルで意味が分かりやすい名前を使用します (後で複製しやすいように)。
  • 階層はできるかぎりシンプルにします。
  • 3D アプリケーションの大きなプロジェクトでは、作業ファイルを Unity プロジェクトのディレクトリ外に置くことを推奨します。これは、更新したり不要なデータをインポートする場合に、時間の節約となります。
オブジェクトに意味が分かりやすい名前をつけると、検索しやすい
オブジェクトに意味が分かりやすい名前をつけると、検索しやすい

メッシュ

  • 効率的なトポロジーでビルドします。ポリゴンは必要なときのみ使用します。
  • ポリゴン数が多すぎる場合、ジオメトリを最適化します。多くのキャラクターモデルは、うまく最適化することが必要であったり、アーティストにより作り直しすることさえ必要となります。特に、以下がソースであったり、または、以下からビルドされている場合はなおさらです。
    • 3D キャプチャデータ
    • Poser
    • Zbrush
    • 他、レンダリング用にデザインされた高密度の NURBS (Non-Uniform Rational Basis Spline、非一様有理 B スプライン) のパッチモデル
  • できるかぎり、建物、地形、構造物に均等にポリゴンを配置することで、照明が適切に広がり、おかしな描画を避けます。
  • 非常に細長い三角形を避けます。
フレームレート天国への階段
フレームレート天国への階段

オブジェクトの作成手法は、ポリゴン数に大きく影響を与えます。最適化されていない場合は特に影響が大きくなります。この図では、同じ形状のメッシュなのに右はトライアングル数が 156 個、左では 726 個です。726 個はそれほど多いポリゴン数には聞こえないかもしれませんが、これが仮に 1 つのレベルで 40 回使用された場合、節約の効果が現れてきます。経験則では、最初は簡素に作成し、必要なところにディテールを追加するのが良いでしょう。ポリゴンは常に、削除するより追加する方が簡単です。

テクスチャ

テクスチャは、2 の累乗 (512 x 512 や 256 x 1024 等) で生成するとより効率的となり、ビルド時に再スケールする必要が無くなります。最大で 4096 x 4096 ピクセルまで使用できますが、多くのグラフィックスカードやプラットフォームで 2048 x 2048 が最大値になっています。

良いテクスチャを製作するための専門的なアドバイスは、web を検索すると得られます。ただ、プロジェクトでもっとも効率的に作業する場合は、以下のガイドラインを参考にしてください。

  • Unity プロジェクトの外で高解像度のソースファイルで作業を行います (例えば PSD または GIMP ファイル)。ソースからサイズを小さくすることはいつでもできますが、逆はできません。
  • シーンで必要なテクスチャ解像度出力を使用します (例えば、コピーを保存して 256 x 256 で最適化された PNG または TGA ファイル)。テクスチャをどこに表示し、どこにマッピングするかに基づいて判断します。
  • 出力テクスチャファイルを Unity プロジェクトで同じ場所に格納します (例えば \Assets\textures)。
  • 保存/エクスポートするときに一貫性を保つため、3D 作業ファイルが同じテクスチャを参照していることを確認します。
  • テクスチャの利用可能な部分を使用します。ただし、異なるマテリアルでは同じテクスチャでも異なる部分を必要とすることがあります。結果として、同じテクスチャを何回も使用したり、読み込んだりする場合があります。
  • アルファ (カットアウト) と異なるシェーダーを必要とする要素に関しては、テクスチャを分けてください。例えば、下記の 1 つのテクスチャ (左側) は 3 つのより小さなテクスチャに置き換えられています (右側)。
1 つのテクスチャ (左) 対 3 つのテクスチャ (右)
1 つのテクスチャ (左) 対 3 つのテクスチャ (右)
  • シームレスに繰り返すタイル状のテクスチャを活用します。これにより、より良い解像度で全体に繰り返すことができます。
  • ビットマップから簡単に目につく反復要素は取り除き、コントラストに気を付けてください。ディテールを追加するには、デカールとオブジェクトを使用して繰り返しをなくします。
タイル状のテクスチャ
タイル状のテクスチャ
  • Unity は外部プラットフォーム向けの圧縮に対応するため、ソースがすでに正しい解像度の JPG である以外は、テクスチャが劣化しない形式を使用するようにします。
  • 写真からテクスチャページを作成する場合は、繰り返し利用可能な同一の部分を見つけて再利用します。例えば、同じ窓の画像を 12 枚用意して、テクスチャ空間を使い切ってしまうようなことがないようにします。再利用することにより、1 つの窓に使用するピクセルを多くすることができます。
窓に関しては、少なくすると多くを得る
窓に関しては、少なくすると多くを得る

マテリアル

  • シーンのマテリアルを整理し名前をつけます。こうしておくと、マテリアルをインポートしたときに、より簡単に Unity でそのマテリアルを探し、編集するこができます。
  • Unity でマテリアルを作成するには以下のいずれかから選択します。
    • <モデル名> - <マテリアル名> または
    • <テクスチャ名>
      どちらが適切かを判断してください。
  • ネイティブパッケージのマテリアルの設定すべてが Unity にインポートされるわけではありません。
    • Diffuse 色Diffuse テクスチャ名前 は通常はサポートされます。
    • シェーダーモデル、スペキュラー、法線、他の補助的なテクスチャとマテリアルの設定は、認識されたり、インポートされたりしません。

インポートとエクスポート

Uniy は 2 種類のファイルを使用できます。保存した 3D アプリケーションファイルとエクスポートした 3D 形式のファイルです。このうちどちらを使用するかを適切に判断することが重要です。

保存したアプリケーションファイル

Unity は変換、Max、Maya、Blender、Cinema4D、Modo、Lightwave、Cheetah3D などのファイルによってインポートできます。例えば .MAX、.MB、.MA などです。詳しくは モデルをインポートする方法 を参照してください。

長所

  • 素早い反復プロセス (保存すれば Unity が更新してくれる)
  • 初期処理が簡単

短所

  • Unity プロジェクトを使用するすべてのマシンにライセンスが有効なソフトウェアがインストールされている必要があります。
  • ファイルは不要なデータで満杯になることがあります。
  • 大きなファイルによって Unity の更新を遅くすることがあります。
  • 検証が少ないため、問題をトラブルシュートするのが難しい。

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

Unity はさらに FBX、OBJ、3DS、DAE 、DXF のファイルを読み込みできます。全般的な説明は、FBX エクスポートガイド を参照してください。

長所

  • 必要なデータのみエクスポートします。
  • Unity にインポートする前にデータが検証されます (3D パッケージに再インポートされます)。
  • 一般的にファイルサイズが小さい。
  • モジュール的なアプローチを奨励します。

短所

  • パイプラインやプロトタイピング、反復が比較的遅い。
  • ソース (作業ファイル) とゲームデータ (エクスポートした FBX ) の間でバージョンを見失う可能性があります。
Unity のウォーター
3D アプリケーションからモデルをインポートする方法