ノート ここでは、FBX 変換を使用する独自のファイル形式の制限について説明します。ただし、FBX を媒体として使用しない SketchUp と SpeedTree の 2 つのファイル形式があります。これらのファイル形式の制限に関する詳細は、SketchUp の設定 と SpeedTree を参照してください。
Unity は多くの 3D モデリングアプリケーションからエクスポートする FBX ファイルをサポートしています。最良の結果を得るために、以下のガイドラインを参照してください。
3D モデリングアプリケーションからのエクスポートに関するこの生成ガイドラインに加えて、以下の 3D モデリングアプリケーションには、より詳しい情報があります。
エクスポートしたいものを検討します。シーンオブジェクトの中には必須のものもあれば、不要なものもあります。 アプリケーションからは 選択したオブジェクト や シーン全体 をエクスポートすることも可能です。 必要不可欠なオブジェクトのみにすることで、Unity のデータを最適化できます。
シーン内の特定のオブジェクトのみをエクスポートする場合、以下を行えます。
以下の点を考慮して、アセットのエクスポートを準備します。
オブジェクト | 準備 |
---|---|
メッシュ | すべての NURBS、NURMS、スプライン、パッチ、サブディビジョンサーフェスはすべてポリゴンに変換する必要があります (三角形分割または四角形分割) |
アニメーション | 正しいリグを選択します。フレームレートの確認、アニメーションの長さの確認をします。 |
ブレンドシェイプ または モーフィング | ブレンドシェイプやモーフィングのターゲットが指定されていることを確認してください。エクスポートメッシュを適切に設定します。 |
デフォーマーのベイク | FBX にエクスポートする前に、デフォーマーをモデルにベイクすることを確認してください。例えば、複雑なリグを Maya からエクスポートする場合、モデルを FBX にエクスポートする前に スキンウェイトにデフォーメーションしたものをベイク することができます。 |
テクスチャ | テクスチャが Unity プロジェクトのものか、Unity プロジェクトの textures フォルダーにコピーされているもののいずれかであることを確認してください。注意 FBX ファイルに Embed Media (メディアを埋め込む) オプションを使用してテクスチャを埋め込むことは推奨しません。テクスチャを使用する前に抽出する必要があります。そのため、テクスチャを埋め込むだけでプロジェクトが不必要に膨張し、インポート処理が遅くなります。 |
スムージング | スムージンググループを確認し、メッシュ設定を滑らかにします。 重要 ブレンドシェイプの法線をインポートするには、FBX ファイルのグループをスムージングする必要があります。 |
FBX エクスポート設定を確認します。
FBX ファイルを Unity にインポートする前に以下を行います。
エクスポートしたファイルのサイズを確認します。ファイルサイズのサニティチェックを行います (例えば >10kb か)。
FBX ファイルを新しいシーンに再インポートし、生成した 3D モデリングソフトウェアに戻します。結果が期待どおりであることを確認します。
ファイルを Unity にインポートするには、インポート の手順に従います。ここでは、3D モデリングソフトウェアでエクスポートオプションを設定する方法に注意してください。
Unity の物理システムとライティングシステムは、インポートファイルにおいてゲーム世界の 1 メートルが 1 ユニットであると仮定します。
異なる 3D パッケージのデフォルトは以下の通りです。
異なるスケール係数を持つ 3D モデリングアプリケーションから Unity にモデルファイルをインポートする場合、Convert Units オプションを有効 にすると、ファイルのユニットを Unity のスケールを使用するよう変換できます。
FBX エクスポートオプション を使用して、FBX ファイルにエクスポートするものを選択できます。
Maya からブレンドシェイプ (モーフィング) をエクスポートする場合は、以下のガイドラインに従ってください。
ファイルを Unity にインポートする場合は、Project ウィンドウを選択し モデルインポーターの Animations タブ で Bake Animations を有効にします。
非常に複雑なキャラクターリグを Maya で作成できます。パフォーマンス上の理由から、Unity は頂点ごとに 4 つのインフルエンスを持つリニアブレンドスキニングのみをサポートします。キャラクターが 4 つ以上のインフルエンスを使用する場合、Unity にモデルをインポートすると、アニメーションが不安定になったり歪んで表示されることがあります。また、クラスター以外のデフォーメーションを使用すると、アニメーションが完全に欠ける場合があります。
この問題を解決するには、Bake Deformer (ベイクデフォーマ) ツール (Maya のトップメニューから Skin (スキン) > Bake Deformers to Skin Weights (デフォメーションをスキン ウェイトにベイク処理) を使用して、モデルを Maya からエクスポートする前にデフォーメーションジョイントをベイクします。
詳細は、Autodesk ドキュメントの キャラクタにデフォーマをベイク処理する を参照してください。
IK を使って Cinema 4D のキャラクターをアニメーション化する場合は、エクスポートする前に Cinema 4D の Plugins > Mocca > Cappucino メニュー を使って IK をベイクする必要があります。 Unity にインポートする前に IK をベイクしないと、アニメーション化されたロケーターだけが取得され、アニメーション化されたボーンは取得されません。
エクスポートする前に Cinema 4D の Embed Textures 設定をオフにして、Unity へのファイルインポートを高速化できます。詳しくは、Cinema 4D ドキュメント を参照してください。
FBX 書き出しオプション を使用して、FBXファイルでエクスポートするものを選択することができます。
3ds Max からエクスポートする場合は、以下の点に注意する必要があります。
3ds Max の編集可能なメッシュは常に三角形をエクスポートします。編集可能ポリゴンはインポート時にクアッドと N 角形を保持します。Unity にクアッドをインポートしたい場合は、3ds Max の編集可能ポリゴンを使う必要があります。
3ds Maxでボーンベースのアニメーションをエクスポートする場合は、以下のガイドラインに従ってください。
メッシュとアニメーションを持つボーンの階層を 3ds Max から Unity へエクスポートする場合、エクスポートされたゲームオブジェクトの階層は 3ds Max のスケマティクビューで表示される階層に対応しています。ただし、Unity はゲームオブジェクトを新しいルートとして使用し、アニメーションを含み、ルートボーンにメッシュとマテリアルの情報を与えます。
アニメーションとメッシュ情報を同じ Unity のゲームオブジェクトに保持したい場合は、エクスポートする前に 3ds Max のボーン階層のボーンに対してメッシュノードを親に設定します。
3ds Max のモーフターゲットをエクスポートしたい場合は、以下のガイドラインに従ってください。
Unity にはビルトインの ライトマッパー がありますが、3ds Max のテクスチャベイク機能 (レンダリングメニューの テクスチャレンダリング) と 自動アンラッピング機能を使用して、ライトマップを作成することもできます。
通常、1 つの UV セットはメインテクスチャおよび/または法線マップに使用され、別の UV 設定はライトマップテクスチャに使用されます。両方の UV 設定を適切に処理するには、マテリアルを 3ds Max で標準に設定し、拡散反射光 (メインテクスチャの場合) と自己照明 (ライトマップの場合) の両方のマップスロットを設定します。
注意 オブジェクトが Shell タイプのマテリアルを使用する場合、Autodesk の FBX エクスポーターは UV を正しくエクスポートしません。
また、以下のように、Multi/Sub Object マテリアルタイプを使用し、メインテクスチャとライトマップを拡散マップスロットで使用して、2 つのサブマテリアルを設定することができます。ただし、モデルの面が異なるサブマテリアル ID を使用する場合は、複数のマテリアルがインポートされるため、パフォーマンスにとって最適ではありません。
LightWave Layout の File ツールバーから Save > Export > Export FBX の順に選択し、FBX エクスポート設定にアクセスします。
Export FBX ウィンドウが表示されます。
プロパティー | 機能 | |
---|---|---|
FBX Filename | FBX ファイルの名前と場所を設定します。Unity Assets フォルダー下の場所を使用します。 |
|
Anim Layer | 使用するアニメーションレイヤーの名前 | |
Type | Binary を使用すると、テキスト編集可能な FBX ファイルのファイルサイズや ASCII を減らすことができます。 | |
FBX Version | リストから最新の FBX バージョンを選択します。Unity で使用しているバージョンと一致することを確認してください。 | |
Export | ||
Models | シーン内のすべてのモデルをエクスポートします。 | |
Morphs (Blend Shapes) | シーン内のすべてのブレンドシェイプをエクスポートします。 | |
Mesh Type | ||
Cage (Subdivision Off) | Subdivision が適用されていないオブジェクトをエクスポートします。 | |
Subdivision | メッシュをエクスポートするときに細分化します。 | |
Re-parent bone hierarchy | ボーン階層の新しい親として機能するための null を作成します。 メッシュが親で、レイアウトにボーン階層を持つリグをエクスポートすると、デフォームされたメッシュの実際の動きは、そうあるべき動きの 2 倍になります。この新しい親を有効にすると、メッシュは所定の位置に保たれます。 |
|
Materials | LightWave の標準のサーフェスチャンネルと画像マップを変換します。これにはプロシージャルテクスチャとノードは含まれません。 | |
Embedded Textures | 埋め込まれたテクスチャを別の画像ディレクトリではなく FBX ファイルに直接含まれる画像マップとして保存します。これにより、はるかに大きい、自立した FBX ファイルが作成されます。 | |
Smoothing Groups | LightWave の法線をスムージンググループに変換します。 | |
Collapse Materials | 同じマテリアル名のサーフェスを折りたたみ、マテリアルを別々にエクスポートします。ただし、両方のマテリアル名とすべてのサーフェスパラメーターが一致する場合、2 つのマテリアルは設定にかかわらず常にマージされます。 | |
Merge UVs | 複数の UV マップを、オブジェクトごとに 1 つのマップに折りたたみます。 | |
Unity 3D Mode | LightWave、FBX、Unity 間の座標系間の変換によって発生する回転誤差を修正します。 LightWave と Unity はどちらも 左手 座標系を使用しますが、FBX は 右手 です。LightWave が FBX にエクスポートすると、Z 軸に沿った右手座標系に変換されます。Unity が FBX ファイルをインポートすると、X 軸に沿って左手座標系に戻ります。その結果、シーンが 180 度回転して見えます。この設定を使用すると、Unity に移動し Z 軸を見ると、インポートされた FBX は LightWave 内で表示されているのとまったく同じように見えます。 |
|
Cameras | シーン内のすべてのカメラをエクスポートします。 | |
Lights | シーンのすべてのライトをエクスポートします。 | |
Animations | 簡単なアニメーションをベイクせずに、動き、回転、スケールに基づいてエクスポートします。IK やダイナミックスを使用したキャラクターアニメーションやその他のアニメーションは、まだ Bake Motion Envelopes を使用してベイクする必要があります。 | |
Bake Motion Envelopes | キャプチャしたくない設定フレームがある場合に、ベイクの任意の開始点と終了点を設定します。Animations にチェックが入っている場合にのみ使用可能です。 | |
Start Frame and End Frame | このタイムフレーム内にのみデータをエクスポートします。 | |
Scale Scene | シーンのスケールを Unity のファイルスケール の値と一致するように設定します。 |