UE4 UE5

【UE4】【UE5】ObjectのParentClassを変更する

1..Objectの親クラス
2.Objectの親をEditor上で変更する
3.自動で変更する
4.おまけ

1.Objectの親クラス
Objectの該当オブジェクトを開くろウインドウの右上に表示されています。

2. Objectの親をEditor上で変更する
クラス設定をクリックして
詳細タブのクラスオプション、親クラスのリストビューで既存クラス一覧が表示され変更できます。
ここではYourActorBaseに変更しています。

プロパティーなどの違いから互換性がない場合はデータが無くなる可能性があるので
確認ダイアログが出ます。ここではそのまま「親を変更します」

これで親クラスを変更できました。

3.自動で変更する

大量にある時は全てのオブジェクトまたマップに配置されているオブジェクトまで変更するのは大変なため自動で変更します。
/Config/DefaultEngine.iniに以下の行を追加します

MyActorChildの親オブジェクトはYourActorBaseに書き換わっています。


変更先の指定をプロジェクト名から入れると
NewNameの指定を"/Script/プロジェクト名.新クラス"と記述します

プラグイン内で宣言されているクラスは
NewNameの指定を"/Script/プラグイン名.新クラス"と記述します

4.おまけ
EditorUtilityScriptで変更したいが、親クラスを得るAPIが見つからない。
get_parent_class なんてChatGPTが示したけど、こんなAPIはないです。


import unreal
#変更するディレクトリ
dir_path = '/Game'
#アセットの親クラスを変更
for directory_asset in directory_assets:
asset = directory_asset.get_asset()
unreal.log('Changed parent class of %s' % (asset.get_path_name()))
parent_class = asset.get_parent_class() ←このAPIはありそうでない
unreal.log('Parent class %s' % (parent_class.get_path_name()))

-UE4, UE5