Beispiel #1
0
    def create_blueprint_from_mesh(self):
        new_blueprint = ue.find_asset(self.path_to_output_asset + '/main_mesh')
        if new_blueprint is None:
            ue.log("blueprint class doesn't exists")
            new_blueprint = ue.create_blueprint(
                Character, self.path_to_output_asset + '/main_mesh')
        else:
            ue.log("blueprint class exists")
            new_blueprint = ue.find_asset(self.path_to_output_asset +
                                          '/main_mesh')
        # new_blueprint.GeneratedClass.get_cdo().Mesh.RelativeLocation = FVector(0, -200, 150)
        # new_blueprint.GeneratedClass.get_cdo().Mesh.RelativeRotation = FRotator(0, 0, 0)
        # add empty static mesh component to blueprint class
        new_blueprint.GeneratedClass.get_cdo(
        ).CapsuleComponent.CapsuleHalfHeight = 150
        new_blueprint.GeneratedClass.get_cdo(
        ).CapsuleComponent.CapsuleRadius = 50
        st_component = ue.add_component_to_blueprint(new_blueprint,
                                                     StaticMeshComponent,
                                                     'dicom_mesh')
        ue.log("self.mesh.get_name() = " + self.mesh.get_name())
        st_component.StaticMesh = ue.load_object(
            StaticMesh, self.path_to_output_asset + "/test_test")

        ue.compile_blueprint(new_blueprint)

        # saves uasset on the hard disk
        new_blueprint.save_package()

        world = ue.get_editor_world()
        new_actor = world.actor_spawn(new_blueprint.GeneratedClass,
                                      FVector(0, 0, 150))
 def test_variable(self):
     new_blueprint = ue.create_blueprint(Character, '/Game/Tests/Blueprints/Test2_' + self.random_string)
     ue.blueprint_add_member_variable(new_blueprint, 'TestValue', 'int')
     ue.compile_blueprint(new_blueprint)
     new_actor = self.world.actor_spawn(new_blueprint.GeneratedClass)
     new_actor.TestValue = 17
     self.assertEqual(new_actor.get_property('TestValue'), 17)
Beispiel #3
0
 def test_variable(self):
     new_blueprint = ue.create_blueprint(
         Character, '/Game/Tests/Blueprints/Test2_' + self.random_string)
     ue.blueprint_add_member_variable(new_blueprint, 'TestValue', 'int')
     ue.compile_blueprint(new_blueprint)
     new_actor = self.world.actor_spawn(new_blueprint.GeneratedClass)
     new_actor.TestValue = 17
     self.assertEqual(new_actor.get_property('TestValue'), 17)
 def test_event(self):
     new_blueprint = ue.create_blueprint(Character, '/Game/Tests/Blueprints/Test3_' + self.random_string)
     uber_page = new_blueprint.UberGraphPages[0]
     x, y = uber_page.graph_get_good_place_for_new_node()
     test_event = uber_page.graph_add_node_custom_event('TestEvent', x, y)
     x, y = uber_page.graph_get_good_place_for_new_node()
     node_set_actor_location = uber_page.graph_add_node_call_function(Actor.K2_SetActorLocation, x, y)
     test_event.node_find_pin('then').make_link_to(node_set_actor_location.node_find_pin('execute'))
     node_set_actor_location.node_find_pin('NewLocation').default_value = '17,30,22'
     ue.compile_blueprint(new_blueprint)
     new_actor = self.world.actor_spawn(new_blueprint.GeneratedClass)
     self.assertEqual(new_actor.get_actor_location(), FVector(0, 0, 0))
     ue.allow_actor_script_execution_in_editor(True)
     new_actor.TestEvent()
     self.assertEqual(new_actor.get_actor_location(), FVector(17, 30, 22))
Beispiel #5
0
 def test_event(self):
     new_blueprint = ue.create_blueprint(
         Character, '/Game/Tests/Blueprints/Test3_' + self.random_string)
     uber_page = new_blueprint.UberGraphPages[0]
     x, y = uber_page.graph_get_good_place_for_new_node()
     test_event = uber_page.graph_add_node_custom_event('TestEvent', x, y)
     x, y = uber_page.graph_get_good_place_for_new_node()
     node_set_actor_location = uber_page.graph_add_node_call_function(
         Actor.K2_SetActorLocation, x, y)
     test_event.node_find_pin('then').make_link_to(
         node_set_actor_location.node_find_pin('execute'))
     node_set_actor_location.node_find_pin(
         'NewLocation').default_value = '17,30,22'
     ue.compile_blueprint(new_blueprint)
     new_actor = self.world.actor_spawn(new_blueprint.GeneratedClass)
     self.assertEqual(new_actor.get_actor_location(), FVector(0, 0, 0))
     ue.allow_actor_script_execution_in_editor(True)
     new_actor.TestEvent()
     self.assertEqual(new_actor.get_actor_location(), FVector(17, 30, 22))
Beispiel #6
0
def Wtestxx():
    selbp = ue.get_selected_assets()
    for aa in selbp:
        aa.save_package()
        uw = aa.WidgetTree
        allwid = uw.AllWidgets
        for wb in allwid:
            if wb.get_class().get_name() == 'TextBlock':
                try:
                    ue.log(wb.get_name())
                    wb.Text = ''
                except:
                    ue.log('Error!!')
            if wb.get_class().get_name() == 'IMTextBlock':
                try:
                    ue.log(wb.get_name())
                    ue.log(wb.Content)
                    wb.Content = ''
                except:
                    ue.log('Error!!')
        ue.compile_blueprint(aa)
        aa.save_package()
spawn_actor_node = uber_page.graph_add_node(K2Node_SpawnActorFromClass, x, y)

# set its Class pin
pin_class = spawn_actor_node.node_find_pin('Class')
pin_class.default_object = Character

# get a reference to its 'exec' pin
spawn_actor_node_exec = spawn_actor_node.node_find_pin('execute')

# link the hello world event to the spawn actor node
hello_world_then.make_link_to(spawn_actor_node_exec)

x, y = uber_page.graph_get_good_place_for_new_node()
# create a 'make transform' node
make_transform = uber_page.graph_add_node_call_function(
    KismetMathLibrary.MakeTransform, x, y)

# link the return value of 'make transform' to the 'SpawnTransform' pin of the spawn actor node
make_transform.node_find_pin('ReturnValue').make_link_to(
    spawn_actor_node.node_find_pin('SpawnTransform'))

input_key = K2Node_InputKey(Outer=uber_page)
input_key.InputKey = Key(KeyName='SpaceBar')
input_key_node = uber_page.graph_add_node(input_key, 400, 400)

# compile the blueprint
ue.compile_blueprint(new_blueprint)

# save it
ue.editor_save_all()
Beispiel #8
0
# link variables
intensity_node.node_find_pin('intensity').make_link_to(
    directional_light_set_intensity.node_find_pin('NewIntensity'))
directional_light_node.node_find_pin('Directional_light').make_link_to(
    directional_light_set_intensity.node_find_pin('self'))


# a commodity function for finding an event node
def get_event_node(event_name):
    for node in bp.UberGraphPages[0].Nodes:
        if node.is_a(K2Node_Event):
            if node.EventReference.MemberName == event_name:
                return node


# get the ReceiveBeginPlay event node
begin_play_node = get_event_node('ReceiveBeginPlay')

# link BeginPlay to SetIntensity
begin_play_node.node_find_pin('then').make_link_to(
    directional_light_set_intensity.node_find_pin('execute'))

# compile the blueprint
ue.compile_blueprint(bp)

# open related editor
ue.open_editor_for_asset(bp)

# spawn it
ue.get_editor_world().actor_spawn(bp.GeneratedClass)
def stereo_setup_level_bp_variable(player_sets=[]):		
	from unreal_engine.classes import KismetMathLibrary, K2Node_Timeline, K2Node_ExecutionSequence, K2Node_IfThenElse

	world = ue.get_editor_world()
	level_bp = world.CurrentLevel.get_level_script_blueprint()
	left_channel = player_sets[0]
	if len(player_sets==4):
		right_channel = player_sets[1]
	else:
		right_channel = None
		
	pin = EdGraphPinType(PinCategory='object', PinSubCategoryObject=MediaPlayer)
	left_media = ue.blueprint_add_member_variable(level_bp, left_channel.get_name(), pin, None, left_channel.get_path_name())
	right_media = ue.blueprint_add_member_variable(level_bp, right_channel.get_name(), pin, None, right_channel.get_path_name())

	uber_page = level_bp.UberGraphPages[0]

	# 添加media player节点
	# ----------------------------------------------
	y, x = uber_page.graph_get_good_place_for_new_node()
	node_left_media = uber_page.graph_add_node_variable_get(left_channel.get_name(), None, x, y)
	y, x = uber_page.graph_get_good_place_for_new_node()
	node_right_media = uber_page.graph_add_node_variable_get(right_channel.get_name(), None, x, y)

	# 添加open source节点
	# ----------------------------------------------
	y, x = uber_page.graph_get_good_place_for_new_node()
	node_open_source_L = uber_page.graph_add_node_call_function(MediaPlayer.OpenSource, x, y)
	y, x = uber_page.graph_get_good_place_for_new_node()
	node_open_source_R = uber_page.graph_add_node_call_function(MediaPlayer.OpenSource, x, y)

	# 连接media source,没办法单独的设置资源,只能通过变量来设置
	# ----------------------------------------------
	pin = EdGraphPinType(PinCategory='object', PinSubCategoryObject=FileMediaSource)
	ue.blueprint_add_member_variable(level_bp, player_sets[2].get_name(), pin, None, player_sets[2].get_path_name())
	pin = EdGraphPinType(PinCategory='object', PinSubCategoryObject=FileMediaSource)
	ue.blueprint_add_member_variable(level_bp, player_sets[3].get_name(), pin, None, player_sets[3].get_path_name())

	c = uber_page.graph_add_node_variable_get(player_sets[2].get_name(), None, x, y)
	d = uber_page.graph_add_node_variable_get(player_sets[3].get_name(), None, x, y)

	pin1=c.node_find_pin(player_sets[2].get_name())
	pin2=node_open_source_L.node_find_pin("MediaSource")
	pin1.make_link_to(pin2)
	pin1=d.node_find_pin(player_sets[3].get_name())
	pin2=node_open_source_R.node_find_pin("MediaSource")
	pin1.make_link_to(pin2)

	# 添加>=节点, call_function的函数名可以大写也可以小写,直接按照C++文档的来就可以
	# ----------------------------------------------
	y, x = uber_page.graph_get_good_place_for_new_node()
	node_greater = uber_page.graph_add_node_call_function(KismetMathLibrary.EqualEqual_FloatFloat, x, y)
	
	# 添加branch节点
	# ----------------------------------------------
	i = K2Node_IfThenElse()
	y, x = uber_page.graph_get_good_place_for_new_node()
	node_branch = uber_page.graph_add_node(i, x, y)

	# 连接节点
	# ----------------------------------------------
	pin1 = node_greater.node_find_pin("ReturnValue")
	pin2 = node_branch.node_find_pin("Condition")
	pin1.make_link_to(pin2)

	pin1 = node_left_media.node_find_pin(left_channel.get_name())
	pin2 = node_open_source_L.node_find_pin('self')
	pin1.make_link_to(pin2)

	pin1 = node_right_media.node_find_pin(right_channel.get_name())
	pin2 = node_open_source_R.node_find_pin('self')
	pin1.make_link_to(pin2)

	pin1 = node_open_source_L.node_find_pin("then")
	pin2 = node_open_source_R.node_find_pin("execute")
	pin1.make_link_to(pin2)

	pin1 = node_branch.node_find_pin("Then")
	pin2 = node_open_source_L.node_find_pin("execute")
	pin1.make_link_to(pin2)

	# compile the blueprint
	ue.compile_blueprint(level_bp)

	# open related editor
	ue.open_editor_for_asset(level_bp)
	return node_branch.node_find_pin, node_greater.node_find_pin("A")
Beispiel #10
0
import unreal_engine as ue
from unreal_engine.classes import Blueprint, K2Node_DynamicCast, Actor, Object
from unreal_engine.structs import EdGraphPinType
from unreal_engine.enums import EEdGraphPinDirection

bp_foo = ue.load_object(Blueprint, '/Game/Foo.Foo')
bp_bar = ue.load_object(Blueprint, '/Game/Bar.Bar')

graph = ue.blueprint_add_function(bp_foo, 'FooCaster')
func = graph.Nodes[0]

cast_node = K2Node_DynamicCast(Outer=graph)
cast_node.TargetType = bp_bar.GeneratedClass

pin_type = EdGraphPinType(PinCategory = 'object', PinSubCategoryObject=Actor)
pin = func.node_create_pin(EEdGraphPinDirection.EGPD_Input, pin_type, 'Arg001')


graph.graph_add_node(cast_node, 600, 0)

cast_node.node_find_pin('Object').category = 'object'
cast_node.node_find_pin('Object').sub_category = Object

pin.make_link_to(cast_node.node_find_pin('Object'))
func.node_find_pin('then').make_link_to(cast_node.node_find_pin('execute'))

ue.compile_blueprint(bp_foo)
import unreal_engine as ue
from unreal_engine.classes import Blueprint, K2Node_DynamicCast, Actor, Object
from unreal_engine.structs import EdGraphPinType
from unreal_engine.enums import EEdGraphPinDirection

bp_foo = ue.load_object(Blueprint, '/Game/Foo.Foo')
bp_bar = ue.load_object(Blueprint, '/Game/Bar.Bar')

cast_node = K2Node_DynamicCast()
cast_node.TargetType = bp_bar.GeneratedClass

graph = ue.blueprint_add_function(bp_foo, 'FooCaster')
func = graph.Nodes[0]

pin_type = EdGraphPinType(PinCategory = 'object', PinSubCategoryObject=Actor)
pin = func.node_create_pin(EEdGraphPinDirection.EGPD_Input, pin_type, 'Arg001')


graph.graph_add_node(cast_node, 600, 0)

cast_node.node_find_pin('Object').category = 'object'
cast_node.node_find_pin('Object').sub_category = Object

pin.make_link_to(cast_node.node_find_pin('Object'))
func.node_find_pin('then').make_link_to(cast_node.node_find_pin('execute'))

ue.compile_blueprint(bp_foo)
Beispiel #12
0
    "/Game/W_MyWidgetBlueprint" + str(int(time.time())))

widget.modify()

widgetTree = widget.WidgetTree

slot = CanvasPanelSlot('', widgetTree)
image = Image('', widgetTree)

slot.Content = image

slot2 = CanvasPanelSlot('', widgetTree)
text_block = TextBlock('', widgetTree)
text_block.Text = 'Hello World'

slot2.Content = text_block

widgetTree.RootWidget.Slots = [slot, slot2]
widgetTree.AllWidgets = [widgetTree.RootWidget, image, text_block]

slot.LayoutData = AnchorData(
    Offsets=Margin(Left=0, Top=0, Right=300, Bottom=300))

slot2.LayoutData = AnchorData(Anchors=Anchors(Minimum=Vector2D(X=0.5, Y=0.5),
                                              Maximum=Vector2D(X=1, Y=1)))

widget.post_edit_change()

ue.compile_blueprint(widget)

ue.open_editor_for_asset(widget)
anim_factory.ImportUI.bImportMaterials = False
anim_factory.ImportUI.bImportTextures = False
anim_factory.ImportUI.AnimSequenceImportData.ImportUniformScale = 0.1;

animation = anim_factory.factory_import_object(os.path.join(kaiju_source, kaiju_animation), kaiju_destination)

new_blueprint = ue.create_blueprint(Character, kaiju_destination + '/Kaiju_BP')

new_blueprint.GeneratedClass.get_cdo().Mesh.SkeletalMesh = mesh
new_blueprint.GeneratedClass.get_cdo().Mesh.RelativeLocation = FVector(0, 0, -140)
new_blueprint.GeneratedClass.get_cdo().Mesh.RelativeRotation = FRotator(0, 0, -90)
new_blueprint.GeneratedClass.get_cdo().CapsuleComponent.CapsuleHalfHeight = 150
new_blueprint.GeneratedClass.get_cdo().CapsuleComponent.CapsuleRadius = 50

new_blueprint.GeneratedClass.get_cdo().Mesh.OverrideMaterials = [None, mat]

new_blueprint.GeneratedClass.get_cdo().Mesh.AnimationMode = EAnimationMode.AnimationSingleNode
new_blueprint.GeneratedClass.get_cdo().Mesh.AnimationData = SingleAnimationPlayData(AnimToPlay=animation)

# move forward
tick = new_blueprint.UberGraphPages[0].graph_add_node_event(Actor, 'ReceiveTick')
add_movement_input = new_blueprint.UberGraphPages[0].graph_add_node_call_function(Character.AddMovementInput)
add_movement_input.node_find_pin('WorldDirection').default_value = '1,0,0'
tick.node_find_pin('then').make_link_to(add_movement_input.node_find_pin('execute'))

ue.compile_blueprint(new_blueprint)

world = ue.get_editor_world()
new_actor = world.actor_spawn(new_blueprint.GeneratedClass, FVector(0, 0, 150))

ue.editor_save_all()
widget = WidgetBlueprintFactory().factory_create_new( "/Game/W_MyWidgetBlueprint" + str(int(time.time())) )

widget.modify()

widgetTree = widget.WidgetTree


slot = CanvasPanelSlot('', widgetTree)
image = Image('', widgetTree)

slot.Content = image

slot2 = CanvasPanelSlot('', widgetTree)
text_block = TextBlock('', widgetTree)
text_block.Text = 'Hello World'

slot2.Content = text_block

widgetTree.RootWidget.Slots = [slot, slot2]
widgetTree.AllWidgets = [ widgetTree.RootWidget, image, text_block ]

slot.LayoutData = AnchorData(Offsets=Margin(Left=0, Top=0, Right=300, Bottom=300))

slot2.LayoutData = AnchorData(Anchors=Anchors(Minimum=Vector2D(X=0.5, Y=0.5), Maximum=Vector2D(X=1, Y=1)))

widget.post_edit_change()

ue.compile_blueprint(widget)

ue.open_editor_for_asset(widget)
cone = world.actor_spawn(Actor)
cone.set_actor_label('A Cone')
cone_mesh = cone.add_actor_component(StaticMeshComponent, 'Cone')
cone_mesh.StaticMesh = ue.load_object(StaticMesh, '/Engine/BasicShapes/Cone')
cone.InitialLifeSpan = 30.0

# add a better cone
cone2 = world.actor_spawn(StaticMeshActor)
cone2.StaticMeshComponent.StaticMesh = ue.load_object(StaticMesh, '/Engine/BasicShapes/Cone')
cone2.set_actor_label('A Better Cone')

# create a new bleprint
bp = ue.create_blueprint(Pawn, '/Game/SuperEvilPawn')
ue.add_component_to_blueprint(bp, PawnSensingComponent, 'Eyes')
point_light = ue.add_component_to_blueprint(bp, PointLightComponent, 'Light')
point_light.Intensity = 9999.9
ue.blueprint_add_member_variable(bp, 'SightPower', 'float')
ue.blueprint_set_variable_visibility(bp, 'SightPower', False)

ue.compile_blueprint(bp)

# instantiate a new actor using the previously created blueprint
super_evil_pawn = world.actor_spawn(bp.GeneratedClass)
super_evil_pawn.set_actor_label('Super Evil Pawn')
super_evil_pawn.SightPower = 2217.30

# save them all
ue.editor_save_all()