pythonで既存のNiagaraSystemのSpawnBurst_InstantaneousモジュールのSpawnTimeをGet/Setすることはできますか?
chatGPTではこんなスクリプトがでっち上げられましたが色々動かず困っています。
import unreal
def get_and_set_spawn_time_in_niagara_systems(folder_path, new_spawn_time):
# アセットレジストリにアクセス
asset_registry = unreal.AssetRegistryHelpers.get_asset_registry()
# 指定フォルダ内の全アセットを取得
asset_data_list = asset_registry.get_assets_by_path(folder_path, recursive=True)
# 各アセットをチェック
for asset_data in asset_data_list:
# アセットがNiagaraSystemかどうかを確認
if asset_data.asset_class == 'NiagaraSystem':
# アセットをロード
niagara_system = unreal.EditorAssetLibrary.load_asset(asset_data.object_path)
# エミッタを取得
emitters = niagara_system.get_emitters()
for emitter in emitters:
# エミッタのシミュレーションステージを取得
for stage in emitter.simulation_stages:
# モジュールを探す
for module in stage.modules:
if module.get_name() == 'SpawnBurst_Instantaneous':
# パラメータを取得および設定
spawn_time_param = module.get_parameter_by_name('SpawnTime')
if spawn_time_param:
current_spawn_time = spawn_time_param.default_value
print(f"Current SpawnTime: {current_spawn_time}")
# 新しいSpawnTimeを設定
spawn_time_param.default_value = new_spawn_time
print(f"New SpawnTime set to: {new_spawn_time}")
# 変更を保存
unreal.EditorAssetLibrary.save_asset(asset_data.object_path)
# 実行
folder_path = '/Game/MyNiagaraSystems' # 対象フォルダを指定
new_spawn_time = 1.0 # 新しいSpawnTimeの値
get_and_set_spawn_time_in_niagara_systems(folder_path, new_spawn_time)