Unity からの FBX ファイルのエクスポート
ゲームオブジェクトの階層を FBX ファイルに手動でエクスポートするには、Export To FBX (メニュー: GameObject > Export To FBX) を使用します。FBX Exporter は、選択したオブジェクトとその子オブジェクトを単一の FBX ファイルにエクスポートします。ただし、親と子の両方を選択した場合は、親の階層のみがエクスポートされます。
FBX Exporter は、以下のオブジェクトをエクスポートします。
- ゲームオブジェクトの階層とそのトランスフォーム
- メッシュ
- 以下を除く SkinnedMeshRenderer
- ヒューマノイドリグはサポートされません
- ボーン階層のメッシュはサポートされません
- マテリアルにスペキュラーがある場合は Phong マテリアル、その他はすべて Lambert マテリアル
- テクスチャ
- カメラ
- ライト
- コンストレイント
- アニメーション
- ブレンドシェイプ
メッシュのサポート
FBX Exporter は、同一メッシュの複数のコピーをインスタンスとしてエクスポートします。FBX Exporter は、以下のメッシュ属性もエクスポートします。
- 法線
- 従法線
- 接線
- 頂点色
- 8 つすべてのメッシュ UV (存在する場合)
- クアッドまたは三角形
カメラ
FBX Exporter は、ゲームカメラと物理カメラの両方をエクスポートします。
ノート: Unity の Inspector では、カメラの Physical Camera プロパティによって 物理カメラ か ゲームカメラ かが決まります。
物理カメラ
FBX Exporter は、以下のプロパティを含む物理カメラをエクスポートします。
- Focal Length
- Lens Shift
ゲームカメラ
エクスポート時には、FBX Exporter は Aperture Height を 0.612 インチに設定し、カメラのアスペクト比を基準とするこのセンサー後部を使用して Aperture Width を算出します。例は以下のとおりです。
* Full 1024 4:3 (1024x768)
* Aspect Ratio 4:3
* Aperture Width = 0.612 * (1024/768)
Aperture Width と Aperture Height の値は、Unity の Inspector では Sensor Size プロパティ (単位はミリメートル) として表示されます。
FBX Exporter は、垂直方向の有効視野 (FOV) とセンサー後部設定 (Aperture Width と Aperture Height) から Focal Length を取得します。FBX Exporter は、Aperture Mode: Vertical ではデフォルトの FBX 設定を使用します。
ソフトウェアのインポートがフィルムゲート内で水平方向に解像度ゲートに適合するように、Film Resolution Gate は Horizontal に設定されます。
Near & Far Clipping Plane の値は、30cm から 600,000cm の範囲です。
また、Projection タイプ (透視投影/平行投影) と Aspect Ratio もエクスポートされます。
ライト
FBX Exporter は、タイプが Directional、Spot、Point、Area のライトをエクスポートします。
以下のライト属性もエクスポートします。
- Spot Angle (スポットライトの場合)
- Color
- Intensity
- Range
- Shadow (オンまたはオフ)
コンストレイント
FBX Exporter は、以下のタイプのコンストレイントをエクスポートします。
また、FBX Exporter は、すべてのタイプのコンストレイントで以下の属性もエクスポートします。
- Sources
- Source Weight
- Weight
- Active
Rotation
FBX Exporter は Rotation タイプのコンストレイントの場合、以下の属性をエクスポートします。
- 影響が及ぶ軸 (X、Y、Z)
- Rotation Offset
- Rest Rotation
Aim
FBX Exporter は Rotation タイプのコンストレイントの場合、以下の属性をエクスポートします。
- 影響が及ぶ軸 (X、Y、Z)
- Rotation Offset
- Rest Rotation
- World Up Type
- World Up Object
- World Up Vector
- Up Vector
- Aim Vector
Position
FBX Exporter は Position タイプのコンストレイントの場合、以下の属性をエクスポートします。
- 影響が及ぶ軸 (X、Y、Z)
- Translation Offset
- Rest Translation
Scale
FBX Exporter は Scale タイプのコンストレイントの場合、以下の属性をエクスポートします。
- 影響が及ぶ軸 (X、Y、Z)
- Scale Offset
- Rest Scale
Parent
FBX Exporter は Parent タイプのコンストレイントの場合、以下の属性をエクスポートします。
- Source Translation Offset
- Source Rotation Offset
- Affect Rotation Axes
- Affect Translation Axes
- Rest Translation
- Rest Rotation
アニメーション
FBX Exporter は、Animation および Animator コンポーネント、または Timeline のクリップから、Legacy および Generic のアニメーションをエクスポートします。
また、FBX Exporter は、以下のアニメーション属性もエクスポートします。
- トランスフォーム
- ライト:
- Intensity
- Spot Angle (スポットライトの場合)
- Color
- カメラ:
- Field of View
- コンストレイント:
- Weight
- Source Weight
- Translation Offset (Position コンストレイント)
- Rotation Offset (Rotation および Aim コンストレイント)
- Scale Offset (Scale コンストレイント)
- Source Translation Offset (Parent コンストレイント)
- Source Rotation Offset (Parent コンストレイント)
- World Up Vector (Aim コンストレイント)
- Up Vector (Aim コンストレイント)
- Aim Vector (Aim コンストレイント)
- ブレンドシェイプ (バージョン 4.1.0 以降)
アニメーションカーブ接線
FBX Exporter は、アニメーションをエクスポートする際にアニメーションカーブ接線を含めます。
唯一の例外は、スキンメッシュのボーンなど、事前回転を含むオブジェクトの場合です。そのようなオブジェクトの場合、FBX Exporter は事前回転を除外して、各フレームでカーブをベイクします。これにより、Unity アーキテクチャと FBX フォーマットの間に若干の違いはありますが、元のアニメーションに一致する結果が生成されます。より厳密には、以下のようになります。
- Unity は事前回転と回転を組み合わせますが、FBX フォーマットは両者を別個に保存します。また、Unity は、事前回転と回転のデータを単一のカーブに保存します。
- FBX Exporter はエクスポート時に、回転を 2 つのフィールド (事前回転とローカル回転) に分割します。ただし、FBX Exporter が同じ方法で回転カーブを分割するためには、各キーで事前回転を削除する必要があります。それにより、各キーの値だけでなく、キー接線にも影響が生じます。FBX Exporter はその後、そうした要素を最計算する必要があります。
タイムラインからのアニメーションクリップのエクスポート
Timeline からアニメーションクリップをエクスポートするには、Timeline Editor で対象のクリップを選択してから、上部のメニューで GameObject > Export Selected Timeline Clip を選択します。
FBX Recorder によるアニメーションのエクスポート
Unity Recorder パッケージをインストールしている場合は、FBX Recorder を使用して、Recorder の専用ウィンドウか Timeline の Recorder トラックから、アニメーションを FBX ファイルにエクスポートすることもできます。
Export Options ウィンドウ
FBX ファイルをエクスポートする際は、以下の Export Options ウィンドウが開き、エクスポート対象を指定するためのオプションが表示されます。
プロパティ
プロパティ: | 機能: |
---|---|
Export Name | エクスポートする FBX ファイルの名前を指定します。 |
Export Path | FBX Exporter で FBX ファイルを保存する場所を指定します。 |
Source | このオブジェクトから Destination トランスフォームにトランスフォームアニメーションを転送します。 ノート: - Source は Destination の上位である必要があります。 - Source は選択したオブジェクトの上位の場合があります。 |
Destination | トランスフォームアニメーションの転送先オブジェクト。 このオブジェクトは、Source と Destination の間にあるオブジェクトのトランスフォームアニメーションのほか、Source 自体にあるアニメーションを受け取ります。 |
Export Format | FBX ファイルで使用するフォーマットを選択します (ASCII または Binary)。 |
Include | エクスポート対象をモデルとアニメーションにするか、モデルのみにするか、アニメーションのみにするかを選択します。 |
LOD level | 詳細レベル (LOD) グループで、希望するエクスポートの詳細レベル (すべて、最高、または最低) を選択します。 ノート: - FBX Exporter は、選択した階層の外の LOD は無視します。 - FBX Exporter は、LOD として使用されるオブジェクトは除外しません。また、それらのオブジェクトがそれぞれの LOD グループの直接の下位オブジェクトに該当しない場合は、エクスポートしません。 |
Object(s) Position | エクスポート時に、エクスポートしたオブジェクトをワールドの中央にリセットするか、ワールドのトランスフォームを維持するかを選択します。 エクスポート対象に複数のオブジェクトを選択し、このドロップダウンメニューで Local Centered を選択した場合、オブジェクトは共有ルートを中心として配置され、相対的な位置は変わらずに維持されます。 |
Animated Skinned Mesh | このオプションを有効にすると、スキンメッシュを含むオブジェクトのアニメーションをエクスポートできます。 オフの場合は、スキンメッシュのアニメーションは FBX Exporter によってエクスポートされません。 |
Compatible Naming | このオプションを有効にすると、エクスポート時のゲームオブジェクトとマテリアルの名前変更を制御できます。 FBX Exporter では、名前付けの際に Autodesk® Maya® および Autodesk® Maya LT™ との互換性が確保されます。これにより、Unity と Autodesk® Maya®、Autodesk® Maya LT™ の間で予期しない名前変更が防止されます。FBX Exporter はエクスポート時に、Unity の名前の文字を以下のように置き換えます。 - 無効な文字をアンダースコア (_) に置き換えます。コロン (:) を除く英数字以外の文字は、すべて無効な文字に該当します。 - 数字で始まる名前にアンダースコア (_) を追加します。 - 付加記号を置き換えます。例えば、é は e に置き換えます。 ノート: 名前にスペースが含まれているマテリアルの場合は、スペースがアンダースコア (_) に置き換えられます。これにより、インポート時に新しいマテリアルが作成されます。たとえば、"Default Material" という名前のマテリアルは、"Default_Material" という名前でエクスポートされ、インポート時に新しいマテリアルとして作成されます。エクスポートしたマテリアルを、シーン内で既存のマテリアルと一致させたい場合は、手動でマテリアルの名前を変更してからエクスポートを行う必要があります。 |
Export Unrendered | このオプションを有効にすると、レンダラーコンポーネントがないメッシュ、またはレンダラーコンポーネントが無効化されているメッシュをエクスポートできます。例えば、メッシュコライダーとして使用する簡略化されたメッシュがこれに該当します。 |
Preserve Import Settings | このオプションを有効にすると、エクスポート時に上書きされる既存の FBX ファイルに適用されるインポート設定が、すべて維持されます。 ゲームオブジェクトを新しい FBX ファイルとしてエクスポートする場合に、FBX Exporter がインポート設定を引き継ぎません。 |
Don't ask me again | このオプションを有効にすると、今後 FBX ファイルをエクスポートするときに同じ Export Options のプロパティを使用し、このウィンドウを表示しません。 このプロパティを再設定する必要がある場合は、Unity エディターのメニューから、Edit > Project Settings > Fbx Export を選択し、Display Options Window を有効にします。 |
ノート: FBX モデルのファイル名に関しては、FBX Exporter は、ファイルシステムで無効な文字が名前に含まれていないことを確認します。一連の無効な文字は、ファイルシステムによって異なる場合があります。
プロパティのデフォルト値
Preset Manager でデフォルトプリセットを設定している場合は、そのプリセットの値がプロパティのデフォルト値として自動的に使用されます。設定されていない場合は、FBX File Options の Edit > Project Settings... > Fbx Export で定義されている値にフォールバックします。
ただし、エクスポート時に Export Options ウィンドウの設定を変更した場合は、Unity セッションが開いている限り、その設定が FBX Exporter によって維持されます。
適切なシステム単位でのエクスポート
FBX Exporter は、センチメートル単位 (cm) でエクスポートを行います。メッシュは現実世界のメートル (m) スケールに設定されます。たとえば、vertex[0] が [1, 1, 1] m の場合は、[100, 100, 100] cm に変換されます。
Autodesk® 3ds Max® では、システム単位をセンチメートルに設定し、モデルのインポートやエクスポートでのスケーリングを回避することをおすすめします。
Unity と Autodesk® Maya®、Autodesk® Maya LT™ の間で調整を行うためのインポートオプションはありません。Autodesk® Maya® や Autodesk® Maya LT™ で作業を行う際は、使用単位をメートルに設定しても構いません。
Autodesk® Maya® や Autodesk® Maya LT™ で大規模モデルを操作する際、モデルの単位をメートルに固定するためには、すべてのカメラでニアおよびファークリップ面のスケールを 100 倍に変更します。また、オブジェクトがビューポートに表示されるように、ライトとカメラのスケールも 100 倍に変更する必要があります。