【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 を元に戻す。
さいごに
ここまで読んでいただきありがとうございます。
あなたのゲーム制作がうまくいくことを願っています。
掲載日: 2026/04/09
- カテゴリー
- Tech

