※この記事で使用しているUnrealのVersionは05.00.0Preview2です。

※今回はサンプルプロジェクトはありません。

プラグインからエンジン標準搭載になったEditor Scripting Utilitiesの関数 レベル【★★★】

UE4では、EditorUtilityでツールを作成する際、よくお世話になるのが「Editor Scripting Utilities」プラグインです。

しかしなんと、UE5では、Editor Scripting Utilitiesプラグイン内の多くの関数はUnreal標準の関数として使用できるようになりました!! やったね!

ただ、UE4で今まで使っていたEditor Scripting Utilitiesの関数は、UE5に移行すると「非推奨(Deprecated)」となっていて、使用できなくなっています。また、移植された関数は、FunctionLibraryとしてどこでも呼び出せる関数(static関数)からSubsystemへと移行されているので、使用したい関数を探し出すに少しテクニックが必要になっております。

例えば、「GetEditorWorld」という関数は、「UnrealEditorSubsystem」というSubsystemに関数が移動されました。これによって、EditorUtilityWidget上のBlueprintなんかで検索する際に、「GetEditorWorld」と検索しても出てきません。

この場合手っ取り早く見つけ出したい場合は、右上の「Context Sensitive」のチェックを外すことで、
簡単に見つけ出すことができます。

その後、出現した関数の「Target」からドラッグ&ドロップで検索ウィンドウを表示し、「Context Sensitive」のチェックを再び入れることで、「Editor Subsystem」というカテゴリに、所属するSubsystemが出現するので、それを選択することで関数が使用できるようになります。

最近「あれ、UE4にあった”Get Editor World“がないんだけど!!!」とか「アクター選択状態にでききる”Set Selected Level Actors“ってなくなったの?」という声をよく聞きますが、それは、Subsystemに移行したため、検索に引っかかっていないだけです。

以下は、そんなEditor Scripting Utilitiesから標準UnrealのSubsystemへ移行された関数たちを簡単にですが、まとめてみました。

「UnrealEditorSubsystem」へ移動した関数

EditorUtility系を使うと、「WorldContext」に注意しなければならないことがよくありますが、そんなときに「GetEditorWorld」「GetGameWorld」は、どちらも重要な関数になっていきます。
(EditorUtilityのWorldContextについては以下を参照してください)

関数名UE4UE5
GetEditorWorld
(EditorLevelLibraryから移動)
GetGameWorld
(EditorLevelLibraryから移動)
GetLevelViewportCameraInfo
(EditorLevelLibraryから移動)
SetLevelViewportCameraInfo
(EditorLevelLibraryから移動)

「EditorActorSubsystem」へ移動した関数

Actorに関係する機能が詰まったSubsystemです。
アクターの選択状態に関与できる「GetSelectedLevelActors」「SetSelectedLevelActors」などは、とても良く使います。

関数名UE4UE5
GetAllLevelActors
(EditorLevelLibraryから移動)
GetAllLevelActorsComponents
(EditorLevelLibraryから移動)
GetSelectedLevelActors
(EditorLevelLibraryから移動)
SetSelectedLevelActors
(EditorLevelLibraryから移動)
ClearActorSelectionSet
(EditorLevelLibraryから移動)
SelectNothing
(EditorLevelLibraryから移動)
SetActorSelectionState
(EditorLevelLibraryから移動)
GetActorReference
(EditorLevelLibraryから移動)
SpawnActorFromObject
(EditorLevelLibraryから移動)
SpawnActorFromClass
(EditorLevelLibraryから移動)
DestroyActor
(EditorLevelLibraryから移動)

「LevelEditorSubsystem」へ移動した関数

Levelに関係する機能が詰まったSubsystemです。
「LoadLevel」なんかは便利でよく使ったりしますし、「PilotLevelActor」などは、自動撮影ツールなんかを作成する際は有効です。

関数名UE4UE5
PilotLevelActor
(EditorLevelLibraryから移動)
EjectPilotLevelActor
(EditorLevelLibraryから移動)
EditorPlaySimulate
(EditorLevelLibraryから移動)
EditorInvalidateViewports
(EditorLevelLibraryから移動)
EditorSetGameView
(EditorLevelLibraryから移動)
NewLevel
(EditorLevelLibraryから移動)
NewLevelFromTemplate
(EditorLevelLibraryから移動)
LoadLevel
(EditorLevelLibraryから移動)
SaveCurrentLevel
(EditorLevelLibraryから移動)
SaveAllDirtyLevels
(EditorLevelLibraryから移動)
SetCurrentLevelByName
(EditorLevelLibraryから移動)

「StaticMeshEditorSubsystem」へ移動した関数

StaticMeshに関係した便利機能が詰まったSubsystemです。
自分は、「GetNumberVerts」なんかで大きすぎる頂点数がないかをチェックしたり、「GetCollisionComplexity」でComplexCollisionを使っているStaticMeshを確認したりするのに使っています。

関数名UE4UE5
SetLodsWithNotification
(EditorStaticMeshLibraryから移動)


SetLods
(EditorStaticMeshLibraryから移動)



GetLodReductionSettings
(EditorStaticMeshLibraryから移動)
SetLodReductionSettings
(EditorStaticMeshLibraryから移動)
GetLodBuildSettings
(EditorStaticMeshLibraryから移動)
SetLodBuildSettings
(EditorStaticMeshLibraryから移動)
ImportLOD
(EditorStaticMeshLibraryから移動)
ReimportAllCustomLODs
(EditorStaticMeshLibraryから移動)
SetLodFromStaticMesh
(EditorStaticMeshLibraryから移動)
GetLodCount
(EditorStaticMeshLibraryから移動)
RemoveLods
(EditorStaticMeshLibraryから移動)
GetLodScreenSizes
(EditorStaticMeshLibraryから移動)
AddSimpleCollisionsWithNotification
(EditorStaticMeshLibraryから移動)
AddSimpleCollisions
(EditorStaticMeshLibraryから移動)
GetSimpleCollisionCount
(EditorStaticMeshLibraryから移動)
GetCollisionComplexity
(EditorStaticMeshLibraryから移動)
GetConvexCollisionCount
(EditorStaticMeshLibraryから移動)
SetConvexDecompositionCollisionsWithNotification
(EditorStaticMeshLibraryから移動)
BulkSetConvexDecompositionCollisionsWithNotification
(EditorStaticMeshLibraryから移動)
SetConvexDecompositionCollisions
(EditorStaticMeshLibraryから移動)
BulkSetConvexDecompositionCollisions
(EditorStaticMeshLibraryから移動)
RemoveCollisionsWithNotification
(EditorStaticMeshLibraryから移動)
RemoveCollisions
(EditorStaticMeshLibraryから移動)
EnableSectionCollision
(EditorStaticMeshLibraryから移動)
IsSectionCollisionEnabled
(EditorStaticMeshLibraryから移動)
EnableSectionCastShadow
(EditorStaticMeshLibraryから移動)
HasVertexColors
(EditorStaticMeshLibraryから移動)
HasInstanceVertexColors
(EditorStaticMeshLibraryから移動)
SetGenerateLightmapUVs
(EditorStaticMeshLibraryから移動)
GetNumberVerts
(EditorStaticMeshLibraryから移動)
GetNumberMaterials
(EditorStaticMeshLibraryから移動)
SetAllowCPUAccess
(EditorStaticMeshLibraryから移動)
GetNumUVChannels
(EditorStaticMeshLibraryから移動)
AddUVChannel
(EditorStaticMeshLibraryから移動)
InsertUVChannel
(EditorStaticMeshLibraryから移動)
RemoveUVChannel
(EditorStaticMeshLibraryから移動)
GeneratePlanarUVChannel
(EditorStaticMeshLibraryから移動)
GenerateCylindricalUVChannel
(EditorStaticMeshLibraryから移動)
GenerateBoxUVChannel
(EditorStaticMeshLibraryから移動)
ReplaceMeshComponentsMaterials
(EditorLevelLibraryから移動)
ReplaceMeshComponentsMaterialsOnActors
(EditorLevelLibraryから移動)
ReplaceMeshComponentsMeshes
(EditorLevelLibraryから移動)
ReplaceMeshComponentsMeshesOnActors
(EditorLevelLibraryから移動)
JoinStaticMeshActors
(EditorLevelLibraryから移動)
ConvertActors
(EditorLevelLibraryから移動)
MergeStaticMeshActors
(EditorLevelLibraryから移動)
CreateProxyMeshActor
(EditorLevelLibraryから移動)

「SkeletalMeshEditorSubsystem」へ移動した関数

SkeletalMeshに関係した便利機能が詰まったSubsystemです。
自分はこのあたりの関数はほとんど使ったことないです…

関数名UE4UE5
RegenerateLOD
(EditorSkeletalMeshLibraryから移動)
GetNumVerts
(EditorSkeletalMeshLibraryから移動)
RenameSocket
(EditorSkeletalMeshLibraryから移動)
GetLODCount
(EditorSkeletalMeshLibraryから移動)
ImportLOD
(EditorSkeletalMeshLibraryから移動)
ReimportAllCustomLODs
(EditorSkeletalMeshLibraryから移動)
GetLodBuildSettings
(EditorSkeletalMeshLibraryから移動)
SetLodBuildSettings
(EditorSkeletalMeshLibraryから移動)

雑ですが以上!

※この記事で使用しているUnrealのVersionは05.00.0Preview2です。

※今回はサンプルプロジェクトはありません。

コメントを残す

メールアドレスが公開されることはありません。