UnrealEngineを触って躓くポイントとして
「リダイレクタ(Redirectors)」
という見えないアセットができてしまう
「リダイレクタ(Redirector)」について図解で説明してみます
「リダイレクタ(Redirector)」ができるまで
1番簡単でよく発生する「Level」と「Blueprint」のアセットを使って動作を追っていきます
BlueprintをLevelに追加して保存すると、LevelはBlueprintのプロジェクトのパス情報を保存します
Blueprintの名前を変更します
ContentsBrowserには元の名前のBlueprintは表示されないので、一見Levelを名前を変更したBlueprintを直接見に行っているように見えます
この時に「リダイレクタ(Redirector)」が生成されています
「リダイレクタ(Redirector)」はフィルタリングの設定をオンにしないと表示されません
「リダイレクタ(Redirector)」も表示する:Other Filters -> Show Redirectors
「リダイレクタ(Redirector)」だけ表示する:Miscellaneous -> Redirector
エクスプローラでフォルダを確認すると「リダイレクタ(Redirector)」のアセットが存在します
表示されないだけでアセットがあるので、「リダイレクタ(Redirector)」があると同名のアセットを作成できません
「リダイレクタ(Redirector)」は何をやっているのでしょうか
「Level」は「Blueprint」が名前変更されたことを認識していないので、「リダイレクタ(Redirector)」が「Blueprint」と思って見つけに行きます
しかし、「Blueprint」は名前変更していて別の場所にあるので、「リダイレクタ(Redirector)」から「Blueprint」の新しいパスを教えてもらうことで名前変更された「Blueprint」を見つけられます
引っ越しした際に変更した住所を郵便局に伝えておくと、元いた住所の郵便物が新しい住所に届くサービスに似ています
「リダイレクタ(Redirector)」は参照しているアセットのパスが変わる時に発生するので、参照されているアセットをフォルダに移動した時にも生成されます。
「リダイレクタ(Redirector)」を修正する(Fix Up Redirectors)
「リダイレクタ(Redirector)」を残しておいても見えないアセットが存在することでトラブルの原因になるので、「Level」に名前変更した「Blueprint」を見に行くように修正(Fix Up)します
「リダイレクタ(Redirector)」を修正(Fix Up)すると、「Level」は名前変更した「Blueprint」を見に行くようになります
お役御免となった「リダイレクタ(Redirector)」は必要が無くなるので削除されます
いつのまにやら「リダイレクタ(Redirector)」は増えています
1つ1つの「リダイレクタ(Redirector)」をFix Upするのは大変なので、フォルダ単位で修理(Fix Up)するのがおススメです
フォルダを右クリックし、「Fix Up Redirectors」を選択すると、選択したフォルダのサブフォルダも含めて「リダイレクタ(Redirector)」を修理(Fix Up)してくれます
ちょっとしたよくあるUnrealEngineのお困りごとライトに書いてみました
一般的な「リダイレクタ(Redirector)」についてですが、
「ダングリング リダイレクタ」というパターンも公式ドキュメントで紹介されています
こんな感じでいかがでしょう?