Datasmith の役目は、一般にデザイン データをもとにリアルタイム ビジュアライゼーションとエクスペリエンスを構築するため、各種ソース アプリケーションからそのデータを Unreal Engine に取り込むことです。ただし、多くの場合、Unreal でこれらのビジュアライゼーションやエクスぺリエンスの構築を作業中に、作品の基礎になるシーンやデザイン データでは、新しい要件を満たす、あるいは利害関係者のフィードバックを反映するために変更が必要です。手間とコストがかかる作業のやり直しをなくすには、それらのアップストリームの変更を、Unreal Editor で実行したすべての作業を失わずに取り込めることが必要です。
このページでは、Datasmith コンテンツの更新を Unreal Project に導入するいくつかの方法、およびそのプロセスでアセットとアクタに起こることについて説明します。オプションは以下のとおりです。
-
完全な Datasmith シーンを再インポートする方法 - これはソース シーンで行った最新の変更がすべて含まれるように Datasmith シーン アセットを更新して、Unreal Editor で実行した作業とこれらの変更が矛盾しないように調整します。以下の フルシーンの再インポート を参照してください。
-
Datasmith でインポートされた個別のアセットを再インポートする方法 - スタティック メッシュ、マテリアル、テクスチャなど。これにより選択したアセットへの変更を、Datasmith シーンのその他の部分に影響を与えることなく処理できます。以下の 個々のアセットの再インポート を参照してください。
Unreal Editor にインポートされたメタデータの使用方法の詳細な説明は、Unreal Engine 4 に Datasmith のコンテンツを再インポートする を参照してください。
フルシーンの再インポート

一度に Datasmith シーン全体を再インポートできます。このアプローチでは、ソース アプリケーションやデータ ファイルで行った最新の変更に一致するように、コンテンツ ブラウザにある Datasmith で作成されたアセットのすべてが更新されます。ここから、Datasmith シーン アセットで維持される新しいシーン階層とそれらのアクタを同期するため、レベルで Datasmith シーン アクタを選択して更新できます。
シーン階層への変更
Datasmith シーンを再インポートするとき、Datasmith シーン アセット に含まれるシーン階層は、ソース シーンで行った最新のすべての変更がすぐに更新されます。インポート後、Datasmith シーン アセットのシーン階層には、初めてフレッシュなシーンをインポートしていたかのように、すべて同じ情報があります。
ただし、シーン階層に対するこれらの変更は、Datasmith シーンを含む Unreal レベルで必ずしも反映されません。プロジェクトのレベルに組み込んだ Datasmith シーンのインスタンスは、レベルのシーン階層を更新されたアセットと 同期 するまで、古い情報のままです。
同期すると、Datasmith シーン アクタの情報および、ワールド アウトライナーにあるその子は、次のように更新されたアセットに一致するように更新されます。
-
変更されたアクタ:Unreal Editor で 変更していない アクタは、再インポートされた Datasmith シーンでそれらに関する最新情報に一致するようにすぐに更新されます。Unreal Editor で 変更した アクタは、Datasmith がオーバーライドとして追跡した変更を除き、再インポートされた Datasmith シーンの最新情報に一致するように更新されます。
-
新しいアクタ:最後にインポートしたときから後にソース ファイルに追加された新オブジェクトは、それらを表現するためレベルに新しいアクタが追加されます。
-
削除されたアクタ:ソース ファイルで削除されたオブジェクトは、他のオーバーライドを含むアクタを除いて、対応アクタが Unreal レベルから 削除 されます。削除されたオブジェクトに対応する Unreal アクタがオーバーライドを含む場合、個別に削除しない限りレベルから削除されません。
Unreal でレベルから削除したが、ソース ファイルにまだ存在しているアクタは、デフォルトではレベルに再び追加されることは ありません。ただし、レベルの Datasmith シーン アクタと再インポートされた Datasmith シーン アセットを同期したとき、このオプションを有効にできます。 -
親子関係:レベルでのアクタの親子階層はソース ファイルの変更に一致するように更新されます。
例えば、次の操作前後の画像をもとに説明します。
-
ソース シーンで削除されているオブジェクト (この場合は Lift オブジェクト) は Datasmith シーンから削除されます。
-
ソース シーンの親子階層のオブジェクトに対する変更 (この場合は新しい親にまとめられたライト) は、Datasmith シーンで反映されます。
-
ソース シーンに追加されたオブジェクト (この場合は toolbox) は、Datasmith シーンに追加されます。

Datasmith シーン アクタとそのアセットを同期する 2 つの方法があります。
-
Datasmith シーン アセットを再インポートするとき、そのアセットから作成された、現在開いているレベルの Datasmith シーン アクタを自動的に更新できます。これは単純なアプローチで、Datasmith シーンを単一レベルに追加しただけの場合はうまく機能します。
-
レベルの Datasmith シーン アクタを対応する Datasmith シーン アセットといつでもオンデマンドで同期できます。Datasmith シーンのインスタンスを含むプロジェクトに複数の異なるレベルがあり、ソース シーンで変更を反映するためにすべてが必要である場合に、このアプローチの使用が必要です。
詳細は、「Unreal Engine へ Datasmith のコンテンツを再インポートする」 を参照してください。
ジオメトリ、マテリアル、およびテクスチャへの変更
Datasmith シーンの再インポート時の動作
-
シーンを最後にインポートした後に、ソース ファイルでそれらを変更した場合のみ、Datasmith がスタティック メッシュおよびテクスチャ アセットを再作成します。
-
ソース ファイルで変更したかどうかに関係なく、Datasmith が 常に すべてのマテリアル アセットを再作成します。
Datasmith がアセットを再作成するとき、Unreal でそのアセットに行った変更を上書きすることがあります。
通常、Datasmith がオーバーライドとして追跡している情報、またはシーンのオブジェクトの Unreal 表現に固有の情報は失われません。ただし、Datasmith がオーバーライドとして追跡していない場合、Datasmith で Unreal に取り込んだ情報に対する変更は失われることがあります。例えば、アセットへの上書きにより、マテリアル グラフの内部、インスタンス化マテリアルのプロパティ、またはスタティック メッシュ アセットのジオメトリに Unreal で行った変更が上書きされます。
Unreal でアセットに対して行った変更が失われないようにするには、次の 2 つのオプションがあります。
-
再インポートするとき、アセットの対応するタイプの再インポートを回避するには、[Reimport Options (再インポート オプション)] ダイアログ ボックスで対応するアセット タイプの [Process (プロセス)] チェックボックスをオフにします。例えば、Unreal でいくつかのマテリアル プロパティが変更されていて、これらの変更を失わないようにする場合、[Materials & Textures (マテリアルとテクスチャ)] オプションをオフにできます。ただし、他にもソースから更新するマテリアル アセットが ある 場合、このアプローチではうまくいきません。この場合、更新する対象タイプのアセットのみを選択して再インポートすることが できます。以下の 「個別のアセットを再インポートする」 を参照してください。
-
Datasmith でインポートしたアセットを変更する必要があるときは常に、変更するアセットを別のフォルダに複製して、複製したものを変更します。次に、元のアセットの使用を複製したものを使用するように更新します。再インポートするとき、元のアセットは上書きされますが、複製されたものはそのままです。
ソース ファイルでオブジェクトやマテリアルを削除した後、シーンを再インポートするとき、Datasmith はそれらのオブジェクトに対して前に作成したアセットは削除しません。アセットはコンテンツ ブラウザに残り、Datasmith シーンのコンテキストの外で、Unreal Editor でスタンドアロン アセットとしてそれらを引き続き使用できます。ただし、レベルの 1 つで、Datasmith シーン アクタを、再インポートされた Datasmith シーン アセットに一致するように同期すると、それらの削除済みアセットのインスタンスは削除されます (オーバーライドを含むものを除く)。
次の操作前後の画像をもとに、シーンを再インポートするとき、スタティックメッシュ アセットに起こることを説明します。
-
ソース シーンで変更したオブジェクト (この例では電球) は、Unreal で再作成され、アセットの古いバージョンが上書きされます。
-
ソース シーンで削除したオブジェクト (この例では黄色のリフト エレメント) はプロジェクトのコンテンツ ブラウザから削除されません。
-
ソース シーンに追加したオブジェクト (この例ではツールボックス) は、コンテンツ ブラウザに新アセットとして追加されます。
なお、Unreal Engine でアセットに変更を行ったとき、その変更はアセットが使用されているすべての場所にすぐに反映されることに留意してください。再インポート中に Datasmith がアセットを再作成または変更したときも同様です。例えば、ソース アプリケーションでオブジェクトのジオメトリを変更する場合、対応するスタティック メッシュ アセットを再インポートした後に、スタティックメッシュ アセットをインスタンス化した、すべてのレベルにあるすべてのアクタは新しいジオメトリを表示するように自動的に更新されます。
フルシーンの再インポートが適している場合
フルシーンの再インポートはたいていのケースで推奨します。特に以下の場合にフルシーンの再インポートが必要です。
-
これまで Unreal に存在していない、新オブジェクトやマテリアルをソース シーンから取り込む必要がある。
-
3D 空間でシーン オブジェクトのレイアウトが変更されている、またはオブジェクトに Unreal で反映させる必要がある、シーン階層の新しい親子関係がある。
-
アセットを個別に再インポートできない。この状況が起こるのは、ソース ファイルで個別に作業するにはあまりに多くのオブジェクトが変更されているためか、どのアセットが変更されているのかが不明であるためです。
個別のアセットを再インポートする

Datasmith シーン全体を再インポートするのではなく、Datasmith インポート プロセスで作成された Unreal Engine アセット (例:個別のスタティックメッシュ アセット、マテリアル、テクスチャ) を選択して再インポートできます。
このオプションを使用するとき、選択した単一のアセットの範囲で上記の 「ジオメトリ、マテリアル、およびテクスチャへの変更」 で説明したものとほぼ同じことが発生します。違いは以下の点のみです。
-
ソース シーンで変更されていない場合でも、アセットは常にゼロから再作成される。例えば、スタティックメッシュ アセットの場合、スタティックメッシュのジオメトリは常に再構築され、したがって Unreal でジオメトリに行った変更は上書きされます。
-
Datasmith シーン アセットは変更されない。したがって該当レベルで Datasmith シーン アクタを再同期するかどうかに関係なく、シーンに配置した、任意のレベルのシーン階層に対する変更はありません。
-
Datasmith シーン アセットは変わらないので、前回シーンを全体としてインポートしたときと比較して、アセットに対するオーバーライドを引き続き追跡します。再インストールしたアセットでオーバーライドをリセットする場合、Datasmith シーン全体を最後にインポートしたときの状態に戻ります。
個別アセットの再インポートが適している場合
個別のアセットの再インポートは以下の場合に適しています。
-
少数のアセットに対する変更を取り込む必要があり、全体の Datasmith シーンには、取り込みたくない シーン階層または他のアセットに対する変更が含まれることを把握している。
-
Datasmith シーン全体をインポートしたときに適用したのとは異なる Datasmith インポート設定を特定のアセットに適用する必要がある。
このワークフローは、インポート時にテッセレーションが必要な CAD モデルに対して特に便利です。Datasmith シーンの異なる部分に異なるテッセレーション設定を適用できるためです。これにより、各スタティック メッシュ アセットの三角ポリゴン数を制御して、シーンのパフォーマンスを最適化できます。例えば、低解像度設定で CAD ファイルをインポートでき、重要な少数のスタティックメッシュ アセットを高解像度で選択して再インポートできます。
再インポートの代わりに選択したスタティックメッシュ アセットに再テッセレーションを行うことで同じ目的を達成できます。再インポートとは異なり、再テッセレーションはアセットのジオメトリを CAD シーン ファイルから再インポートしません。新しい設定を使って、最後にインポートされたジオメトリに基づいてスタティックメッシュ アセットに対して三角形のメッシュを生成します。詳細は、「CAD ジオメトリの再テッセレーション」 を参照してください。
データの維持
Datasmith コンテンツを再インポートするためにどちらの方法を使用しても、行った変更は失われることはありません。これには下記が含まれています。
-
Datasmith によってオーバーライドとして追跡されたプロパティ以下の Datasmith のオーバーライド を参照してください。
-
Unreal Engine 専用のプロパティ以下の 「Unreal Engine のプロパティ」 を参照してください。
Unreal Engine のプロパティ
Unreal に固有である、つまり Datasmith がソース ファイルからインポートしていないプロパティである、アセットやアクタのプロパティに対する変更は何も失われません。
例えば、Datasmith を使用してシーンをインポートし、Unreal Editor でインポートされたスタティックメッシュ アクタの 1 つの Cast Shadows プロパティを無効にするとします。Datasmith シーン アセットを再インポートし、レベルで Datasmith シーン アセットを同期しても、Cast Shadows プロパティは無効のままです。
Datasmith のオーバーライド
Datasmith コンテンツを再インポートするためにどちらの方法を使用しても、Datasmith が オーバーライド として認識する Unreal アセットやアクタに行った変更は失われることはありません。オーバーライドに含まれるのは、スタティック メッシュ アセットやアクタに割り当てられているマテリアルの種類、Datasmith シーンの一部として作成された、レベルにあるアクタの 3D 変換などです。
オーバーライドとみなされる変更の内容については、「Datasmith の概要」 を参照してください。
Datasmith シーンを再インポートした後に、次にアセットやアクタにオーバーライドを再設定したとき、Unreal アセットやアクタは再インポート 後 の値に再設定されます。これは 元の値 ではありません。例:
-
シーンに「Chair」というスタティック メッシュ アセットが含まれ、最初の Datasmith インポートを実行した後、「Color_00000000」というマテリアルが割り当てられるとします。
-
Unreal Editor では、「Black Leather」という新しい、物理ベースのマテリアルを使用するためにこのアセットを変更します。Datasmith はこの変更をオーバーライドとして追跡します。
-
ここで、ソース シーンで Chair のカラー プロパティを変更します。それからこのアセット、またはアセットを含む Datasmith シーンを再インポートします。最初、再インポートしたアセットは、Unreal で割り当てた「Black Leather」マテリアルに割り当てられています。
-
アセットのオーバーライドをリセットしても、元の「Color_00000000」マテリアルは使用する設定に 戻りません。Datasmith が Chair の新しいカラー プロパティに一致するように生成した、新しいマテリアル アセットを使用するようになります。
自動再インポート
変更したアセット用に選択したフォルダをモニタして、それらのアセットを自動的に再インポートするように Unreal Editor を設定できます。
Datasmith シーン アセットまたは Datasmith で作成された個別のアセットにこのシステムを使用することは推奨されません。別の種類のモデルまたはプロジェクトに追加するアセット (Datasmith モデルに加えた装飾設定として、個別にインポートする FBX ファイルなど) に対してのみ自動再インポートを使用します。
Datasmith 以外のコンテンツに対してこのシステムを設定する方法については、「自動再インポート」 を参照してください。