モデルプレハブと FBX プレハブバリアントの操作
Unity では、ネスト状のプレハブ を使用して、他のプレハブ内にプレハブを作成できます。また、プレハブバリアント を使用して、既存のプレハブのバリエーションを保存できます。
Unity は、Autodesk® Maya® などの 3D モデリングアプリケーションからモデルをインポートすると、モデルプレハブ を作成します。これは、FBX ファイルのコンテンツの読み取り専用表現です。Unity では、インポート設定を変更する 以外にはモデルプレハブを編集できません。FBX ファイルが作成元の 3D モデリングソフトウェア内で変更されると、Unity はモデルプレハブを更新します。
コンポーネント (マテリアル) を追加したい場合、または、Unity で元の FBX ファイルに影響を及ぼさずに他のほとんどのプロパティを変更したい場合は、モデルプレハブを FBX プレハブバリアント に変換します。これは、エクスポートされた FBX のモデルプレハブによるプレハブバリアントです。プレハブバリアントを使用すると、ベースのプレハブのプロパティをオーバーライドできます。
FBX プレハブバリアントの使用は、外部のアプリケーションで FBX ファイルに加えた変更を確実に自分のモデルに反映させながら、プレハブシステムを最大限に活用するのに非常に効果的です。
さらにバリアントは、外部アプリケーションからの更新を制御するために使用できます。例えば、サイズが 10 のスポットライトが含まれたモデルがあり、バリアントでサイズを 1 にオーバーライドした場合は、FBX ファイルでサイズと色が変更されたときに色だけが変更され、サイズは 1 のままになります。
重要: プレハブバリアントは、ベースのモデルプレハブからデータを継承するため、構造的な変更を加えることはできません。つまり、Prefab Variant では、継承した子オブジェクトを削除したり、継承した子オブジェクトの順序を並べ替えたりすることができません。
FBX プレハブバリアントの作成
FBX プレハブバリアントは、ゲームオブジェクトから 作成するか、選択した .fbx または .prefab ファイルから 直接生成するかできます。FBX Exporter のバージョン 2.0.1-preview 以前からアップグレードする場合は、紐づけされた既存のプレハブを新しい FBX プレハブバリアントに 変換する こともできます。
ゲームオブジェクトを FBX プレハブバリアントに変換すると、選択された各ゲームオブジェクト階層を FBX Exporter がエクスポートし、FBX ファイル、および FBX をベースとするプレハブバリアント (.prefab) を作成します。
選択したファイルから FBX プレハブバリアントを生成すると、FBX Exporter がシーンを変更することなく FBX プレハブバリアントを生成します。
- FBX ファイルを選択すると、FBX Exporter がプレハブバリアントのアセットファイルを生成します。
- プレハブアセットファイルを選択すると、FBX Exporter がプレハブバリアントのアセットファイルと FBX ファイルを生成します。
ゲームオブジェクトの変換
ゲームオブジェクト階層を FBX プレハブバリアントのインスタンスに置き換えるには、次の手順を実行します。
Hierarchy ビューでゲームオブジェクトを右クリックして、コンテキストメニューから Convert To FBX Prefab Variant を選択します。
代わりに、選択したゲームオブジェクトのメインメニュー (GameObject > Convert To FBX Prefab Variant) を使用することもできます。
Convert Options ウィンドウのプロパティを使用して、ゲームオブジェクトをエクスポートする方法を指定し、Convert をクリックします。
FBX プレハブバリアントではエクスポート用と同じルールを使用します。選択されたすべてのオブジェクトとそれらの子オブジェクトは 1 つの FBX ファイルにエクスポートされます。親と子の両方を選択した場合は、親の階層のみが FBX プレハブバリアントによってエクスポートされます。
ノート: 選択されたオブジェクトがモデルプレハブインスタンスの場合、階層は再エクスポートされません。代わりに、FBX プレハブバリアントはすでに存在する FBX ファイルにリンクします。
FBX ファイルまたはプレハブの変換
シーンを変更せずに、選択されたファイルから FBX プレハブバリアントを生成するには、次の手順を実行します。
プロジェクトウィンドウで FBX またはプレハブアセットファイルを右クリックして、コンテキストメニューから Convert To FBX Prefab Variant を選択します。
代わりに、メインメニュー (Assets > Convert To FBX Prefab Variant) を使用することもできます。
Convert Options ウィンドウのプロパティを使用して、ゲームオブジェクトをエクスポートする方法を指定し、Convert をクリックします。
選択したファイルの種類に応じて、以下のいずれかの方法で FBX Exporter が FBX プレハブバリアントを作成します。
- FBX ファイルが選択されると、FBX Exporter は選択された FBX ファイルをベースとしてプレハブバリアントファイルを生成します。
- プレハブアセットファイルが選択されると、FBX Exporter はプレハブを FBX ファイルにエクスポートして、新しい FBX プレハブバリアントを作成します。
Convert Options ウィンドウ
FBX プレハブバリアントに変換するとき、次のウィンドウが開き、エクスポートのオプションが表示されます。
プロパティ
プロパティ: | 機能: |
---|---|
Export Name | エクスポートする FBX ファイルの名前を指定します。 |
Export Path | FBX Exporter で FBX ファイルを保存する場所を指定します。 |
Prefab Name | FBX プレハブバリアントのファイルの名前を指定します。 |
Prefab Path | FBX Exporter で FBX プレハブバリアントのファイルを保存する場所を指定します。 |
Source | このオブジェクトから Destination トランスフォームにトランスフォームアニメーションを転送します。 ノート: - Source は Destination の上位である必要があります。 - Source は選択したオブジェクトの上位の場合があります。 |
Destination | トランスフォームアニメーションの転送先オブジェクト。 このオブジェクトは、Source と Destination の間にあるオブジェクトのトランスフォームアニメーションのほか、Source 自体にあるアニメーションを受け取ります。 |
Export Format | FBX Exporter が FBX ファイルをエクスポートするときに使用する形式を選択します (ASCII またはバイナリ)。 |
Include | Convert to FBX Prefab Variant で、階層内のモデルとアニメーションの両方を常にエクスポートします。 |
LOD level | Convert to FBX Prefab Variant で、LOD グループについて階層内で使用可能なすべての詳細度 (LOD) を常にエクスポートします。 |
Object(s) Position | Convert to FBX Prefab Variant で、エクスポート中にルートオブジェクトのトランスフォームを常にリセットします。ただし、プレハブはルートオブジェクトのグローバルトランスフォームを維持します。 |
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" という名前でエクスポートされ、インポート時に新しいマテリアルとして作成されます。エクスポートしたマテリアルを、シーン内で既存のマテリアルと一致させたい場合は、手動でマテリアルの名前を変更してからエクスポートを行う必要があります。 |
Don't ask me again | このオプションをオンにすると、将来の FBX プレハブバリアントへの変換時に同じ Convert Options プロパティを使用して、このウィンドウを非表示にします。このオプションをリセットするには、Unity のトップメニューにある Edit > Project Settings > Fbx Export で Display Options Window オプションをオンにします。 |
ノート: FBX モデルのファイル名に関しては、FBX Exporter は、ファイルシステムで無効な文字が名前に含まれていないことを確認します。一連の無効な文字は、ファイルシステムによって異なる場合があります。
プロパティのデフォルト値
Preset Manager でデフォルトプリセットを設定している場合は、そのプリセットの値がプロパティのデフォルト値として自動的に使用されます。設定していない場合は、Convert to Prefab Options の Edit > Project Settings...> Fbx Export で定義された値にフォールバックされます。
ただし、変換時に Convert Options ウィンドウの設定を変更した場合は、Unity セッションが開いている限り、その設定が FBX Exporter によって維持されます。
リンクされたプレハブから FBX プレハブバリアントへの変換
既存のリンクされたプレハブを FBX プレハブバリアントに変換するには、次の手順を実行します。
変換前に名前の不一致を修正します。FBX プレハブバリアントでは名前の再マッピングは行われません。ゲームロジックをコンポーネントに追加するのを開始して、FBX 内のオブジェクトの名前が変更されると、コンポーネントが失われるリスクがあります。このような事態が発生する可能性があるのは、古いゲームオブジェクトが削除され、そこに新しい名前の新しいオブジェクトが追加されるためです。
リンクされたプレハブのファイルを右クリックして、コンテキストメニューから Convert to FBX Prefab Variant を選択します。
ノート: これにより、リンクされたプレハブは新しい FBX ファイルに再エクスポートされ、元の FBX とのつながりが失われます。