【UE×Python】レベル上のアクターを全て取得する方法について徹底解説

Python

「unreal」(Unreal Engine Python API)は、Unreal EngineのPythonライブラリです。このAPIを使用することで、Unreal Engineをより簡単にカスタマイズすることができます。Pythonは、様々なプログラミング言語で使用される汎用的なスクリプト言語であり、「unreal」はPythonを使用して構築されています。本記事では、「unreal」を用いたレベル上のアクターを全て取得する方法を紹介します。

# get_all_level_actors関数によるレベル上のアクターを全て取得
unreal.EditorActorSubsystem().get_all_level_actors()
# get_all_level_actors_components関数によるレベル上のアクターを全て取得
unreal.EditorActorSubsystem().get_all_level_actors_components()

下記の様な内容で悩んでいる/困っている場合に使える方法を参考までにご共有させて頂きます。

・Unreal Engine上で、どの様にPythonを使うの?
・Unreal Engine上のPythonで、どの様にレベル上のアクターを全て取得するの?

また、「unreal」を使用する上で基礎的な情報は下記の記事で紹介しております。
他の「unreal」のクラスや関数について気になる方はこちらの記事をご覧ください。

get_all_level_actors関数によるレベル上のアクターを全て取得

unreal.EditorActorSubsystem().get_all_level_actors関数の基本構文

unreal.EditorActorSubsystem().get_all_level_actors() 
→ Array[Actor]

unreal.EditorActorSubsystem().get_all_level_actors_components関数の基本構文

unreal.EditorActorSubsystem().get_all_level_actors_components() 
→ Array[ActorComponent]

unreal.EditorActorSubsystem().get_all_level_actors関数の使い方

import unreal

allActors = unreal.EditorActorSubsystem().get_all_level_actors()
for actor in allActors: print(actor)
LogPython: <Object '/Game/LV_Basic.LV_Basic:PersistentLevel.Floor' (0x00000B28880D5F00) Class 'StaticMeshActor'>
LogPython: <Object '/Game/LV_Basic.LV_Basic:PersistentLevel.DirectionalLight_0' (0x00000B28880DE100) Class 'DirectionalLight'>
LogPython: <Object '/Game/LV_Basic.LV_Basic:PersistentLevel.SkyAtmosphere_0' (0x00000B28880DC300) Class 'SkyAtmosphere'>
LogPython: <Object '/Game/LV_Basic.LV_Basic:PersistentLevel.SkyLight_0' (0x00000B28880DF500) Class 'SkyLight'>
LogPython: <Object '/Game/LV_Basic.LV_Basic:PersistentLevel.ExponentialHeightFog_0' (0x00000B28880D8200) Class 'ExponentialHeightFog'>
LogPython: <Object '/Game/LV_Basic.LV_Basic:PersistentLevel.VolumetricCloud_0' (0x00000B28880D5500) Class 'VolumetricCloud'>
LogPython: <Object '/Game/LV_Basic.LV_Basic:PersistentLevel.StaticMeshActor_0' (0x00000B28349B4600) Class 'StaticMeshActor'>

unreal.EditorActorSubsystem().get_all_level_actors_components関数の使い方

import unreal

allActorsComponents = unreal.EditorActorSubsystem().get_all_level_actors_components()
for actorsComponents in allActorsComponents: print(actorsComponents)
LogPython: <Object '/Game/LV_Basic.LV_Basic:PersistentLevel.AbstractNavData-Default.SceneComp' (0x00000B28378A7E00) Class 'SceneComponent'>
LogPython: <Object '/Game/LV_Basic.LV_Basic:PersistentLevel.GameplayDebuggerPlayerManager_0.GameplayDebug_Input' (0x00000B27FE690000) Class 'InputComponent'>
LogPython: <Object '/Game/LV_Basic.LV_Basic:PersistentLevel.ExponentialHeightFog_0.HeightFogComponent0' (0x00000B289167E800) Class 'ExponentialHeightFogComponent'>
...
LogPython: <Object '/Game/LV_Basic.LV_Basic:PersistentLevel.Floor.StaticMeshComponent0' (0x00000B2888173800) Class 'StaticMeshComponent'>
LogPython: <Object '/Game/LV_Basic.LV_Basic:PersistentLevel.StaticMeshActor_0.StaticMeshComponent0' (0x00000B285AC73100) Class 'StaticMeshComponent'>
LogPython: <Object '/Game/LV_Basic.LV_Basic:PersistentLevel.DirectionalLight_0.LightComponent0' (0x00000B289007BA00) Class 'DirectionalLightComponent'>

まとめ

「unreal」(Unreal Engine Python API)は、Pythonを使ったUnreal Engineの開発に非常に役立ちます。この記事では、レベル上のアクターを全て取得する方法を紹介しました。ぜひ活用してみてください。

関連検索ワード

How to get all actors in level?

関連キーワード

unreal, python, get, actor, level, 取得