【UE5】C++クラスのリネーム方法まとめ|Blueprint継承が壊れない安全な手順(CoreRedirect対応)

タイトル装飾

【UE5】C++クラスのリネーム方法まとめ               |Blueprint継承が壊れない安全な手順(CoreRedirect対応)

 

【UE5】C++クラスのリネーム方法まとめ

|Blueprint継承が壊れない安全な手順(CoreRedirect対応)

        

UE5でC++クラスのリネームに手こずったため、自分用メモとして残します。

        

  • 困ったこと

・昔作ったC++のクラス名を変更したい。(BPに継承させているクラス)

・単にC++クラスのリネームをすると継承関係が壊れBPが開けなくなってしまう。

・軽く調べても、C++のリネームに関する記事があまり見つからない。

        

  • 今回検証して分かったこと

・C++クラスのリネーム方法には2パターンある。

・ルールさえ守れば、自分がやりやすい方法を選んでリネームを行うことができる。

        

  • ルール

・アセットの親クラス変更時は、リネーム前ファイルとリネーム後ファイルの2つが同時に存在している必要がある。

・リネームを完了させるには、アセットの保存が必須。

・アセットの保存後は、リネーム前ファイルは削除して問題なし。

        

  • リネーム方法2パターンの比較と所感

結論として、2つの方法に大きな差はない。

        

 

方法1:工夫で突破

方法2:コアリダイレクト

メリット

小規模(2-3ファイル程度)なリネームに向いている。
特別で面倒なことはしなくていい。

大規模(プロジェクト全体)な一括リネームに向いている。

設定さえできれば、エディタ上での操作が少ない。

デメリット

エディタ上での操作がやや多い。

依存しているアセット数が増えると手間とミスが増える。

設定ファイル

「DefaultEngine.ini」の修正が必要。
※ただしリネームが完了したら元に戻していい。

        

  • 方法1:工夫で突破

①リネーム前ファイルをコピーする。

②コピー後のファイル名・クラス名をリネームする。

③ソースコードをコンパイルしエディタを起動する。

④親クラスを変えたいアセットを開く。

親クラスを手動で変更する。

⑥アセットの保存を忘れずに。※ここでリネームが完了。

リネーム前ファイルを削除。

 ※−−−−バージョン管理ツールのリネーム機能を使用して変更履歴を残したい場合−−−−−※

 ※リネーム後ファイルを削除し、リネーム前ファイルのファイル名・クラス名を再びリネーム※

 ※−−−−何を言っているか分かりづらかったらスキップ推奨−−−−※

⑧再びソースコードをコンパイル。

⑨エディタが立ち上がったら、先ほどのアセットが開くか確認して完了。

        

  • 方法2:コアリダイレクト

①リネーム前ファイルをコピーする。

②コピーしたファイルのファイル名・クラス名をリネームする。

以下フォーマットをコピーして修正する。

        

[CoreRedirects]

+ClassRedirects=(OldName=”/Script/MyModule.MyOldClass”,NewName=”/Script/MyModule.MyNewClass”)

        

 ※「MyModule(モジュール名)」                 :XXX.Build.cs の XXX の部分。

 ※「MyOldClass(リネーム前クラス名)」   :A、U等のプレフィックスは不要。

 ※「MyNewClass(リネーム後クラス名)」 :A、U等のプレフィックスは不要。

        

 ※パラメータについて詳しいことが知りたい人は公式サイトの確認を推奨。

 https://dev.epicgames.com/documentation/ja-jp/unreal-engine/core-redirects-in-unreal-engine

        

DefaultEngine.ini を開き、上記を貼り付けて保存する。

 ※プロジェクト名\UE\Config フォルダにあるファイル。

⑤ソースコードをコンパイルしエディタを起動する。

⑥参照を変えたいアセットを開く。

⑦アセットを保存する。※ここでリネームが完了。

リネーム前ファイルを削除。

 ※−−−−バージョン管理ツールのリネーム機能を使用して変更履歴を残したい場合−−−−−※

 ※リネーム後ファイルを削除し、リネーム前ファイルのファイル名・クラス名を再びリネーム※

 ※−−−−何を言っているか分かりづらかったらスキップ推奨−−−−※

⑨再びソースコードをコンパイル。

⑩エディタが起動したら、先ほどのアセットが開くか確認。

⑪問題なければ DefaultEngine.ini を元に戻す。

        

  • さいごに

ここまで読んでいただきありがとうございます。

あなたのゲーム制作がうまくいくことを願っています。

 

 

作者
  Y.T
  PG

目次

目次を生成中...