【UE×Python】特定のアクターと別のアクターを接続/アタッチする方法について徹底解説

Python

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

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

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

・Unreal Engine上で、どの様にPythonを使うの?
・Unreal Engine上のPythonで、どの様に特定のアクターと別のアクターを接続/アタッチするの?

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

attach_to_actor関数による特定のアクターの別のアクターへの接続/アタッチ

“unreal.Actor”.attach_to_actor関数の基本構文

“unreal.Actor”.attach_to_actor(
	parent_actor: Actor, 
	socket_name: Name, 
	location_rule: AttachmentRule, 
	rotation_rule: AttachmentRule, 
	scale_rule: AttachmentRule, 
	weld_simulated_bodies: bool=True
) 
→ None

“unreal.Actor”.attach_to_actor関数の使い方

import unreal

### New Actor (Class: Actor)
new_actor_Parent = unreal.EditorLevelLibrary.spawn_actor_from_class(
    unreal.Actor.static_class(),
    unreal.Vector(0, 0, 0),
    unreal.Rotator(0, 0, 0)
)

new_actor_Parent.set_actor_label(f"ParentActor")      ### Edit Label Name

### New Actor (Class: Actor)
chair_asset = unreal.EditorAssetLibrary().load_asset('/Game/StarterContent/Props/SM_Chair.SM_Chair')
new_actor_Child = unreal.EditorLevelLibrary.spawn_actor_from_object(
    chair_asset,
    unreal.Vector(0, 0, 0),
    unreal.Rotator(0, 0, 0)
)

new_actor_Child.set_actor_label(f"ChildActor")      ### Edit Label Name
new_actor_Parent.root_component.set_mobility(new_actor_Child.root_component.mobility)

### Connect Actor (Child) to Actor (Parent)
new_actor_Child.attach_to_actor(new_actor_Parent, "", unreal.AttachmentRule.KEEP_RELATIVE, unreal.AttachmentRule.KEEP_RELATIVE, unreal.AttachmentRule.KEEP_RELATIVE)

まとめ

「unreal」(Unreal Engine Python API)は、Pythonを使ったUnreal Engineの開発に非常に役立ちます。この記事では、特定のアクターと別のアクターを接続/アタッチする方法を紹介しました。ぜひ活用してみてください。

関連検索ワード

How to connect/attach a specific actor to another actor?

関連キーワード

unreal, python, connect, attach, actor, 接続, アタッチ