Replace References ツール

複数アセットを単一アセットに統合し、参照を整理することで重複するアセットを取り除くツールです。

Choose your operating system:

Windows

macOS

Linux

Replace References (参照置換) ツールを使用すると、エディタ内で複数のアセットを 1 つのアセットに簡単にまとめることができます。例えば、開発過程で何度もテクスチャの複製が行われた結果、まったく同じテクスチャのコピーが複数保存され、リソースが無駄になることがあります。Replace References ツールを使用すると、こうしたテクスチャのコピーを適切に選択し、代わりにすべてのものが特定のひとつのテクスチャ インスタンスをポイントするようにします。

これは、ソース アセットを再インポートするアンリアル エンジンの機能によって大幅に減りましたが、全く同じファイル (同一の名前とパス) を 2 回追加しようとすると、複数の人々が 1 つのゲームで作業していると、まだ起こることがあります。

Replace References ツールを使用する

このアセット統合ツールの使い方は極めて簡単ですが、適切に使いこなすには注意が必要です。

Replace References ツールを起動する

Replace References ツールを利用するには、統合プロセスで使用したいアセットを最低 1 つ [コンテンツ ブラウザ] 内で選択します。次に、 右クリック して表示されるコンテキスト メニューから [Replace References] をクリックします。[Replace References] ダイアログが表示されます。ツールを呼び出している間、選択したすべてのアセットがエントリされた Replace References ダイアログが表示されます。 [コンテンツ ブラウザ] からアセットをダイアログのメイン部分にドラッグすることでアセットを追加できます。

通常は同じタイプの選択されたオブジェクトしか統合できません。ただし、テクスチャとマテリアルには多少の例外が認められています。Replace References オプションが表示されない場合、または、ドラッグ & ドロップ操作ができない場合は、同じタイプのアセットだけが選択されていることを確認してください。意図に反してアセットを誤って追加した場合、以下のように取り除きます。アセットを選択してキーボード上の [Delete] キーを押します。

Consolidate1.png

ここでは、テクスチャが何回も複製されています。すべてを選択し、 右クリック すると、Replace References のオプションを選択することができます。

アセットを統合する

統合プロセスで使用したいアセットをすべてダイアログにエントリしたら、「統合先」になるアセットを 1 つ選択します。次に、 Consolidate Assets をクリックします。リストから選択しなかったアセットに対するすべての参照は、選択したアセットへの参照に置き換えられ、このプロセス中に選択されなかったアセットを削除します。

Consolidate Assets ボタンは、ダイアログに最低 2 つのアセットが存在し、少なくとも 1 つが選択されるまでグレイアウト (使用不可) されます。

Consolidate2.PNG

Replace References ダイアログ内で、アセットを選択すると、「統合先アセット」としてマーク付けされます。

Consolidate2.1.PNG

[Consolidate Assets] をクリックすると、参照されなくなり、不要になったアセットを取り除くことができる Delete Assets ダイアログが表示されます。 Delete をクリックします。

Consolidate3.png

すべての重複アセットが、選択したアセットに統合されました。

変更パッケージを保存する

統合ダイアログの左下隅に [Save dirtied packages ] というオプションがあります。このオプションにチェックを入れると、統合オペレーション完了時に、統合プロセスによって変更された UAssets を保存するかを尋ねられます。これは、 [コンテンツ ブラウザ] ですべての UAssets を自分で探す必要なく、統合の影響を受けた全ての UAssets を確実に適切に保存する便利な方法です。理由にかかわらず、統合に失敗したか、エラーが発生した場合は、UAssets は保存されず、適宜、警告を受けます。

Replace References ツールの仕組み

実際の統合プロセスは複数の段階で行われます。最初に、統合される有効なオブジェクトに対して、ツールはこうしたオブジェクトのすべての参照を、既にロードされメモリにあるオブジェクト/UAssets 内の"object to be consolidated to (統合先オブジェクト)" への参照に置き換えようとします。つまり、統合されるオブジェクトの 1 つを参照している既に開いているマップやUAsset があれば、ツールはただちに更新しようとします。次に、統合されるオブジェクトを直接削除しようとします (これは失敗する可能性があります。 制限および注意事項 をご覧ください)。最後に、削除に成功すると削除されたオブジェクトの場所に、 オブジェクト リダイレクタ を残します。これにより、削除したオブジェクトへの参照を持つアンロードされた UAssets は、統合先のオブジェクトにリダイレクトします。

ベスト プラクティス

  • Replace References ツールは使い方を誤ると、その性質上、極めて危険な状況を招く可能性があります。常に、何を行おうとしているかを慎重に検討し、操作の結果がアセットの観点から意味があるものであるかを判断する必要があります。このツールは、明らかに不正な統合を防ぐための対策が講じられていますが、UAssets を破壊しないように常に注意を払う必要があります。統合されたアセットを削除し、統合前にそれらを指していた参照を、選択されたオブジェクトにルーティングするため、「アクタを置換」タイプの操作とは異なる点に注意してください。

  • Replace References ツールは、現在ロードされてメモリ内にある UAssets/マップにある統合するオブジェクトへの参照を強制的に置換しようとしますが、統合の成功確率を最大にするために、ツールの使用時には、統合するオブジェクトへの参照の数をできるだけ少なくすることをお勧めします。特に、サブ エディタ (ブループリント エディタやスタティックメッシュ エディタなど) を開いて、統合しようとしているアセットを利用するのは避けてください。

  • Replace References ツールは、 オブジェクト リダイレクタ を頻繁に使用します。つまり、Replace References ツールを使用して一定期間が過ぎたら、Fixup Redirects を時々使用するとよいでしょう。

制限および注意事項

Replace References ツールは便利なものですが、以下のような制限事項や注意事項もあります。

  • ユーザーが誤って作業内容を破壊しないように、同じクラス/タイプを共有するアセットの場合のみ Replace References ツールを呼び出せるようになっています。ただし、すべてのオブジェクトがマテリアルの一種またはテクスチャの一種の場合はこの例外とします (つまり、マテリアルとデカール マテリアルは厳密には同じタイプではありませんが、マテリアルをデカール マテリアルに統合できることを意味します)。この制約が設けられている理由は、マテリアルをスタティックメッシュに統合するなど、明らかにクラッシュにつながる原因となる統合を未然に防ぐためです。異種間の統合が可能な場合でも、複数のタイプが統合対象に選択されていることを示す警告を表示します。

  • Replace References ツールは、ユーザーが選択したアセットを常に統合できるとは限りません。ユーザーが選択した「統合先アセット」に、統合するアセットのいずれかへの参照が含まれている場合、その特定のアセットは統合されません。こうした統合が実施されると、「統合先アセット」は自己参照を行うことになるので、問題を引き起こすのは明らかです。統合をスキップされたアセットがあれば、統合操作の最後に警告としてユーザーに知らせます。

  • Replace References ツールは、アセットのすべての参照がクリアされない場合、または何らかの理由で削除できない場合に、有効なアセットの統合に失敗することがあります。このタイプの失敗はクリティカルであり、アセットの使用の一部が統合され、一部は統合されない「部分的な統合」になります。このタイプの失敗は滅多に起こりませんが、発生した場合は、影響を受けたアセットと影響を受けた可能性のある UAssets を示す警告ダイアログが表示されます。影響を受けた UAssets は 保存しないようにしてください。 保存すると、致命的な部分統合を受け入れることになります。

  • ベストプラクティス で説明したように、ペルソナやブループリント エディタなどの様々なサブエディタで、影響を受けた可能性があるアセットを使用中に Replace References ツールを使用するのは避けてください。結局、ほとんどのサブエディタは現時点で背後で参照が置換されることにうまく対応できません。そのため、統合中にサブエディタを使用すると、サブエディタが無効な状態になるか、クラッシュするおそれがあります。

  • Replace References ツールは、操作時に既にロードされている UAssets にある統合されたオブジェクトへの参照のみを置き換えます。アンロードされた UAssets への残りの参照の修正は、 オブジェクト リダイレクタ に依存します。つまり、特に必要がない限り、リダイレクタを破損、上書き、削除などしないように配慮する必要があります。そうしないと、UAssets の一部は正確に修正され、一部は修正されないことになります。上記で説明したように、Fixup Redirects コマンドレットを使用すると、この問題が軽減する場合があります。

  • 現時点では、一度統合操作に成功したら、統合されたオブジェクトの 1 つを参照しているアンロードされた UAssets をメモリにロードする前に関連する UAssets を保存することをお勧めします。現在、未対応のコンテンツ ブラウザ / オブジェクト リダイレクタのバグが原因で、参照する UAsset が保存前にロードされると、統合されたアセットがブラウザに再表示されることがあります。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる