コリジョンを設定する
USE_COMPLEX_AS_SIMPLEに設定する例。
コンテンツブラウザでアセットを複数選択した状態で以下のスクリプトを実行する。
#
# StaticMeshアセットのCollision ComplexityをUSE_COMPLEX_AS_SIMPLEに設定する
#
import unreal
# アセットブラウザで選択されたスタティックメッシュアセットを取得
assetList = unreal.EditorUtilityLibrary.get_selected_assets()
if len(assetList) > 0:
for asset in assetList:
# body_setupを読み込む
bodySetup = asset.get_editor_property('body_setup')
# Enum型のCollision Trace Flagをつくる
collisionTraceFlag = unreal.CollisionTraceFlag.CTF_USE_COMPLEX_AS_SIMPLE
bodySetup.set_editor_property('collision_trace_flag', collisionTraceFlag)
asset.set_editor_property('body_setup', bodySetup)
Enum変数から値を取得するときのメモ
enumVar = bodySetup.get_editor_property(‘collision_trace_flag’)でEnumで変数を受け取った時に
enumVar.name
で、CTF_USE_COMPLEX_AS_SIMPLEといった名前が取得できる
enumVar.value
で、3のような値が取得できる
コリジョンプリセットを変更する
Collision PresetsをNoCollisionに変更する例
#
# StaticMeshアセットのコリジョンプリセットをNoCollisionに変更する
#
import unreal
# アセットブラウザで選択されたスタティックメッシュアセットを取得
assetList = unreal.EditorUtilityLibrary.get_selected_assets()
if len(assetList) > 0:
for asset in assetList:
# body_setupを読み込む
bodySetup = asset.get_editor_property('body_setup')
bodyInstance = bodySetup.get_editor_property('default_instance')
bodyInstance.set_editor_property('collision_profile_name', 'NoCollision')
bodySetup.set_editor_property('default_instance', bodyInstance)