[UE4]Unreal Python 런타임에 임의의 인수를 변수로 전달
5240 단어 위 4UnrealEngineUnrealEngine4
예를 들어 액터를 10개 스폰시키는 스크립트가 있다고 해서 8개로 하거나 20개로 하거나 조정하고 싶을 때 매번 스크립트를 다시 쓰는 것은 똑똑하지 않습니다.
그런 경우에는 argv를 사용합니다.
argv
sys 라이브러리의 함수.
런타임에 인수를 추가하여 변수로 얻을 수 있습니다.
qiita.py
import sys
print(sys.argv[1])
예를 들어, 다음과 같은 스크립트를 만들어 보았습니다.
선택 액터의 라이트맵 해상도 조정
※numpy 라이브러리의 설치가 필요합니다.
외부 라이브러리 설치에 대해서는 다음 문서를 참조하십시오.
htps : // 코 m/에 GJ-히로유키_코바야시/있어 ms/1f8472 아77에 322704d603
qiita.py
import unreal
import sys
import numpy as np
#選択したアクタを取得
selected_actors = unreal.EditorLevelLibrary.get_selected_level_actors()
selected_static_mesh_actors = unreal.EditorFilterLibrary.by_class(selected_actors,unreal.StaticMeshActor.static_class())
static_meshes = np.array([])
#配列のユニーク化
for sma in selected_static_mesh_actors:
smc = sma.static_mesh_component
sm = smc.static_mesh
static_meshes = np.append(static_meshes,sm)
static_meshes = np.unique(static_meshes)
#引数から値を取得
offset = float(sys.argv[1])
for sm in static_meshes:
#現在のライトマップ解像度を取得
current_resolution = sm.get_editor_property("light_map_resolution")
#新しいライトマップ解像度を設定
log = unreal.MathLibrary.log(current_resolution,2)
new_resolution = unreal.MathLibrary.multiply_multiply_float_float(2,log + offset)
sm.set_editor_property('light_map_resolution',new_resolution)
라이트맵 해상도를 1단계 올리고 싶을 때는 인수에 1을 붙인다. (256 → 512 등)
1단계 낮추고 싶은 경우는 인수에 -1을 붙인다. (512 → 256)
이런 느낌으로 사용할 수 있습니다.
Reference
이 문제에 관하여([UE4]Unreal Python 런타임에 임의의 인수를 변수로 전달), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/EGJ-Hiroyuki_Kobayashi/items/fb534992ffe15b819ca8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)