【UE×Python】「unreal」(Unreal Engine PythonAPI)について徹底解説

Python

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

Unreal Engine Class

1. unreal.Actor

Link: https://docs.unrealengine.com/5.1/en-US/PythonAPI/class/Actor.html
Bases: Object/_ObjectBase/_WrapperBase

2. unreal.StaticMeshActor

3. unreal.SkeletalMeshActor

Link: https://docs.unrealengine.com/5.1/en-US/PythonAPI/class/SkeletalMeshActor.html
Bases: Actor/Object/_ObjectBase/_WrapperBase

4. unreal.Pawn

Link: https://docs.unrealengine.com/5.1/en-US/PythonAPI/class/Pawn.html
Bases: Actor/Object/_ObjectBase/_WrapperBase

5. unreal.Character

Link: https://docs.unrealengine.com/5.1/en-US/PythonAPI/class/Character.html
Bases: Pawn/Actor/Object/_ObjectBase/_WrapperBase

6. unreal.Level

Link: https://docs.unrealengine.com/5.1/en-US/PythonAPI/class/Level.html
Bases: Actor/Object/_ObjectBase/_WrapperBase

7. unreal.StaticMesh

Link: https://docs.unrealengine.com/5.1/en-US/PythonAPI/class/StaticMesh.html
Bases: StreamableRenderAsset/Object/_ObjectBase/_WrapperBase

8. unreal.SkeletalMesh

Link: https://docs.unrealengine.com/5.1/en-US/PythonAPI/class/SkeletalMesh.html
Bases: SKinnedAsset/StreamableRenderAsset/Object/_ObjectBase/_WrapperBase

9. unreal.Texture

Link: https://docs.unrealengine.com/5.1/en-US/PythonAPI/class/Texture.html
Bases: StreamableRenderAsset/Object/_ObjectBase/_WrapperBase

10. unreal.Material

Link: https://docs.unrealengine.com/5.1/en-US/PythonAPI/class/Material.html
Bases: MaterialInterface/Object/_ObjectBase/_WrapperBase

11. unreal.MaterialInstance

Link: https://docs.unrealengine.com/5.1/en-US/PythonAPI/class/MaterialInstance.html
Bases: MaterialInterface/Object/_ObjectBase/_WrapperBase

12. unreal.Blueprint

Link: https://docs.unrealengine.com/5.1/en-US/PythonAPI/class/Blueprint.html
Bases: BlueprintCore/Object/_ObjectBase/_WrapperBase

Unreal Engine Data

Unreal Engine Function

Basic Function

内容関数入力値出力値リンク
データの表示
Show Data
unreal.log
unreal.log_warning
unreal.log_error
データ詳しくはこちら

データの表示

### Show Data

# log関数によるデータの表示
unreal.log(データ)

# log_warning関数によるデータの表示
unreal.log_warning(データ)

# log_error関数によるデータの表示
unreal.log_error(データ)

# print関数によるデータの表示
print(データ)

Contents Browser and Asset

内容関数入力値出力値リンク
コンテンツブラウザ内のアセットの読み込み
Get Asset Data in Contents Browser
unreal.load_assetアセットのパスアセット詳しくはこちら
詳しくはこちら
コンテンツブラウザ内のアセットの一括取得
Get All Assets in Contents Browser
unreal.EditorAssetLibrary.list_assetsディレクトリのパスアセットリスト詳しくはこちら
コンテンツブラウザ内の選択されているアセットの一括取得
Get All Selected Assets in Contents Browser
unreal.EditorUtilityLibrary.get_selected_assetsアセットリスト詳しくはこちら

コンテンツブラウザ内のアセットの取得

### Get Asset in Contents Browser

# load_asset関数によるコンテンツブラウザ内のアセットの取得
アセット = unreal.load_asset(アセットのパス)

コンテンツブラウザ内のアセットの一括取得

### Get All Assets in Contents Browser

# list_assets関数によるコンテンツブラウザ内のアセットの一括取得
アセットリスト = unreal.EditorAssetLibrary.list_assets(ディレクトリのパス)

コンテンツブラウザ内の選択されているアセットの一括取得

### Get All Selected Assets in Contents Browser

# get_selected_assets関数によるコンテンツブラウザ内の選択されているアセットの一括取得
アセットリスト = unreal.EditorUtilityLibrary.get_selected_assets()

World, Level and Actor

内容関数入力値出力値リンク
アセットを用いたレベルへのアクターの生成
Create Actor by using Asset to Level
unreal.EditorLevelLibrary.spawn_actor_from_objectオブジェクト, 位置, 回転アクター詳しくはこちら
テンプレートを用いたレベルへのアクターの生成
Create Actor by using Template to Level
unreal.EditorLevelLibrary.spawn_actor_from_classクラス, 位置, 回転アクター詳しくはこちら
レベルへのフォルダの生成
Create Folder to Level
詳しくはこちら
レベル上のアクターの一括取得
Get All Actors in Level
unreal.EditorActorSubsystem().get_all_level_actorsアクターリスト詳しくはこちら
レベル上の選択されているアクターの一括取得
Get All Selected Actors in Level
unreal.EditorActorSubsystem().get_selected_level_actorsアクターリスト詳しくはこちら
名前によるレベル上のアクターの取得
Get Actor by Name in Level
unreal.EditorActorSubsystem().get_actor_referenceアクター名アクター詳しくはこちら
アクティブなレベルの取得
Get Active Level
unreal.LevelEditorSubsystem().get_current_levelレベル詳しくはこちら
エディタワールドの取得
Get Editor World
unreal.UnrealEditorSubsystem().get_editor_worldワールド詳しくはこちら
ゲームワールドの取得
Get Game World
unreal.UnrealEditorSubsystem().get_game_worldワールド詳しくはこちら
子アクターから親アクターへの接続
Connect Actor (Child) to Actor (Parent)
“unreal.Actor”.attach_to_actor子アクター
親アクター, ソケット名, 位置ルール, 回転ルール, スケールルール, 物理シミュレーション接続有無
詳しくはこちら
レベル上のアクターの位置情報の取得
Get the Location of an Actor
“unreal.Actor”.get_actor_locationアクターベクトル詳しくはこちら
レベル上のアクターの回転情報の取得
Get the Rotation of an Actor
“unreal.Actor”.get_actor_rotationアクターローテーター詳しくはこちら
レベル上のアクターのスケール情報の取得
Get the Scale of an Actor
“unreal.Actor”.get_actor_scale3dアクターベクトル詳しくはこちら
レベル上のアクターのトランスフォーム情報の取得
Get the Transform of an Actor
“unreal.Actor”.get_actor_transformアクタートランスフォーム詳しくはこちら
レベル上のアクターの位置の変更
Set the Location of an Actor
“unreal.Actor”.set_actor_locationアクター
位置, スイープ有無, テレポート有無
詳しくはこちら
レベル上のアクターの回転の変更
Set the Rotation of an Actor
“unreal.Actor”.set_actor_rotationアクター
回転, テレポート有無
詳しくはこちら
レベル上のアクターのスケールの変更
Set the Scale of an Actor
“unreal.Actor”.set_actor_scale3dアクター
スケール
詳しくはこちら
レベル上のアクターのトランスフォームの変更
Set the Transform of an Actor
“unreal.Actor”.set_actor_transformアクター
変換, スイープ有無, テレポート有無
詳しくはこちら
レベル上のアクターの移動(ローカル座標系)
Translate the Actor in Local Space
“unreal.Actor”.add_actor_local_offsetアクター
移動値, スイープ有無, テレポート有無
詳しくはこちら
レベル上のアクターの移動(ワールド座標系)
Translate the Actor in World Space
“unreal.Actor”.add_actor_world_offsetアクター
移動値, スイープ有無, テレポート有無
詳しくはこちら
レベル上のアクターの回転(ローカル座標系)
Rotate the Actor in Local Space
“unreal.Actor”.add_actor_local_rotationアクター
回転値, スイープ有無, テレポート有無
詳しくはこちら
レベル上のアクターの回転(ワールド座標系)
Rotate the Actor in World Space
“unreal.Actor”.add_actor_world_rotationアクター
回転値, スイープ有無, テレポート有無
詳しくはこちら
レベル上のアクターの選択
Select the Actor in Level
unreal.EditorActorSubsystem().set_actor_selection_stateアクター, True詳しくはこちら
レベル上のアクターの非選択
Unselect the Actor in Level
unreal.EditorActorSubsystem().set_actor_selection_stateアクター, False詳しくはこちら

アセットを用いたレベルへのアクターの生成

### Create Actor by using Asset to Level 

# spawn_actor_from_object関数によるアセットを用いたレベルへのアクターの生成
アクター = unreal.EditorLevelLibrary.spawn_actor_from_object(オブジェクト, 位置, 回転)

テンプレートを用いたレベルへのアクターの生成

### Create Actor by using Template to Level

# spawn_actor_from_class関数によるレベル上へのアクター生成
アクター = unreal.EditorLevelLibrary.spawn_actor_from_class(クラス, 位置, 回転)

レベルへのフォルダの生成

### Create Folder to Level

レベル上のアクターの一括取得

### Get All Actors in Level 

# get_all_level_actors関数によるレベル上のアクターの一括取得
アクターリスト = unreal.EditorActorSubsystem().get_all_level_actors()

レベル上の選択されているアクターの一括取得

### Get All Selected Actors in Level 

# get_selected_level_actors関数によるレベル上の選択されているアクターの一括取得
アクターリスト = unreal.EditorActorSubsystem().get_selected_level_actors()

名前によるレベル上のアクターの取得

### Get Actor by Name in Level

# get_actor_reference関数による名前によるレベル上のアクターの取得
アクター = unreal.EditorActorSubsystem().get_actor_reference(アクター名)

アクティブなレベルの取得

### Get Active Level

# get_editor_world関数によるアクティブなエディタレベルの取得
レベル = unreal.LevelEditorSubsystem().get_current_level()

エディタワールドの取得

### Get Editor World

# get_editor_world関数によるエディタワールドの取得
ワールド = unreal.UnrealEditorSubsystem().get_editor_world()

ゲームワールドの取得

### Get Game World

# get_editor_world関数によるゲームワールドの取得
ワールド = unreal.UnrealEditorSubsystem().get_game_world()

子アクターから親アクターへの接続

### Connect Actor (Child) to Actor (Parent)

# attach_to_actor関数による子アクターから親アクターへの接続
子アクター.attach_to_actor(親アクター, ソケット名, 位置ルール, 回転ルール, スケールルール, 物理シミュレーション接続有無)