import unreal
import random
import time
def 生成actor(actor_class, actor_location,actor_rotation):
return unreal.EditorLevelLibrary.spawn_actor_from_class(actor_class, actor_location,actor_rotation)
def 生成object(actor_class,actor_location,actor_rotation):
return unreal.EditorLevelLibrary.spawn_actor_from_object(actor_class, actor_location,actor_rotation)
def 销毁actor(actor_to_destroy):
return unreal.EditorLevelLibrary.destroy_actor(actor_to_destroy)
def 获取选中actor列表():
return unreal.EditorLevelLibrary.get_selected_level_actors()
def 销毁选中actor():
a = 获取选中actor列表()
for i in a:
销毁actor(i)
def 取消选择物体():
return unreal.EditorLevelLibrary.select_nothing()
def 获取编辑器视口相机旋转():
Vector,Rotator = unreal.EditorLevelLibrary.get_level_viewport_camera_info()
return Rotator
def 获取编辑器视口相机位置():
Vector,Rotator = unreal.EditorLevelLibrary.get_level_viewport_camera_info()
return Vector
def 加载资源(asset_path):
return unreal.EditorAssetLibrary.load_asset(asset_path)
def 复制资源(source_asset_path, destination_asset_path):
return unreal.EditorAssetLibrary.duplicate_asset(source_asset_path, destination_asset_path)
def 删除资源(asset_path_to_delete):
return unreal.EditorAssetLibrary.delete_asset(asset_path_to_delete)
#在世界中创建一个Actor
def Spawn_Actor():
actor_class = unreal.EditorAssetLibrary.load_blueprint_class('/Game/Blueprint/BP_Actor')
actor_location = unreal.Vector(random.uniform(0,2000), random.uniform(0,2000), 0)
actor_rotation = unreal.Rotator(random.uniform(0,360), random.uniform(0,360), random.uniform(0,360))
actor = 生成actor(actor_class, actor_location,actor_rotation)
return actor
#在世界中创建一个阻挡体积
def Spawn_BlockingVolume():
actor_class = unreal.BlockingVolume()
actor_location = unreal.Vector(random.uniform(0,2000), random.uniform(0,2000), 0)
actor_rotation = unreal.Rotator(random.uniform(0,360), random.uniform(0,360), random.uniform(0,360))
actor = 生成object(actor_class, actor_location,actor_rotation)
return actor
#在世界中创建一个场景捕捉2D,位置和选择依据当前编辑器相机
def Spawn_SceneCapture2D():
actor_class = unreal.SceneCapture2D()
Vector = 获取编辑器视口相机位置()
Rotator = 获取编辑器视口相机旋转()
actor_location = unreal.Vector(Vector.x,Vector.y,Vector.z)
actor_rotation = unreal.Rotator(Rotator.roll,Rotator.pitch,Rotator.yaw)
actor = 生成object(actor_class, actor_location,actor_rotation)
return actor
#根据场景捕捉2DActor获取它的组件
def Get_SceneCaptureComponent2D(SceneCapture2D):
return SceneCapture2D.capture_component2d
a = Spawn_SceneCapture2D()
a = 获取选中actor列表()
for i in a:
if type(i) == unreal.SceneCapture2D:
print("成功")
b = Get_SceneCaptureComponent2D(i)
#TextureRenderTarget2D
b.texture_target = 加载资源('/Game/MyTool/TextureRenderTarget2D')
#SceneCaptureSource捕获源
b.capture_source = unreal.SceneCaptureSource.SCS_FINAL_COLOR_LDR
#PostProcessSettings后期设置
b.post_process_settings.override_color_grading_lut = True
b.post_process_settings.color_grading_lut = 加载资源('/Game/MyTool/GSG_LUT_Everyday_AmberWaves')#Texture
else:
print("请选择SceneCapture2D")
#销毁选中actor()
#a = '/Game/MyTool/TextureRenderTarget2D'
#b = '/Game/MyTool/Demo/TextureRenderTarget2D'
#复制资源(a,b)
#删除资源(b)
#for i in range(1,10):
# 复制资源(a,b+str(i))
#for i in range(1,10):
# 删除资源(b+str(i))
import unreal
def 复制资源(source_asset_path, destination_asset_path):
return unreal.EditorAssetLibrary.duplicate_asset(source_asset_path, destination_asset_path)
def 生成object(actor_class,actor_location,actor_rotation):
return unreal.EditorLevelLibrary.spawn_actor_from_object(actor_class, actor_location,actor_rotation)
def 获取编辑器视口相机旋转():
Vector,Rotator = unreal.EditorLevelLibrary.get_level_viewport_camera_info()
return Rotator
def 获取编辑器视口相机位置():
Vector,Rotator = unreal.EditorLevelLibrary.get_level_viewport_camera_info()
return Vector
#在世界中创建一个场景捕捉2D,位置和选择依据当前编辑器相机
def Spawn_SceneCapture2D():
actor_class = unreal.SceneCapture2D()
Vector = 获取编辑器视口相机位置()
Rotator = 获取编辑器视口相机旋转()
actor_location = unreal.Vector(Vector.x,Vector.y,Vector.z)
actor_rotation = unreal.Rotator(Rotator.roll,Rotator.pitch,Rotator.yaw)
actor = 生成object(actor_class, actor_location,actor_rotation)
return actor
def 获取选中actor列表():
return unreal.EditorLevelLibrary.get_selected_level_actors()
def 销毁选中actor():
a = 获取选中actor列表()
for i in a:
销毁actor(i)
def 加载资源(asset_path):
return unreal.EditorAssetLibrary.load_asset(asset_path)
#根据场景捕捉2DActor获取它的组件
def Get_SceneCaptureComponent2D(SceneCapture2D):
return SceneCapture2D.capture_component2d
复制资源(aaa,bbb)
Spawn_SceneCapture2D()
a = 获取选中actor列表()
for i in a:
if type(i) == unreal.SceneCapture2D:
print("成功")
b = Get_SceneCaptureComponent2D(i)
#TextureRenderTarget2D
b.texture_target = 加载资源(bbb)
ccc = b.texture_target
#SceneCaptureSource捕获源
b.capture_source = unreal.SceneCaptureSource.SCS_FINAL_COLOR_LDR
#PostProcessSettings后期设置
b.post_process_settings.override_color_grading_lut = True
b.post_process_settings.color_grading_lut = 加载资源('/Game/MyTool/GSG_LUT_Everyday_AmberWaves')#Texture
else:
print("请选择SceneCapture2D")