【问题标题】:Trying to generate static mesh actor in UE4 level using Python Scripting尝试使用 Python 脚本在 UE4 级别生成静态网格演员
【发布时间】:2021-02-12 11:41:14
【问题描述】:

背景:我正在尝试学习如何使用 Python(和蓝图)在 UE4 中自动生成环境。我已经安装了插件。使用 UE4.25,配合 python 2.7(根据 python 脚本插件)。我对使用脚本语言不是很熟悉——而且大部分工作都是在蓝图中完成的。我已经使用 Python 成功地将测试 fbx/static 网格添加到我的内容目录中 - 并且已经能够使用 Python 在关卡中生成一个通用(空)静态网格 actor。

目标:我正在尝试使用 Python 在一个简单级别上自动生成从简单到复杂的资产/静态网格模式 - 用于由 Python 后端驱动的自动场景生成。我只希望它用于编辑工作 - 不是实时的(以后的目标)。

问题:生成的唯一方法似乎是使用 EditorLevelLibrary.spawn_actor_from_classEditorLevelLibrary.spawn_actor_from_object 命令。但是,我不能直接使用“静态网格”,因为它既不是类也不是对象。我不知道如何将资产重新转换为正确的形式。我尝试生成一个通用静态网格体 Actor(成功),但随后无法分配静态网格体,因为这似乎是一个只读属性,并且似乎没有任何 set_static_mesh 函数。我确信有一种简单的方法可以投射这些东西 - 但文档太可怕了。

问题:使用内置 Python 脚本插件将现有静态网格物体和生成大量静态网格物体角色的最佳方法是什么。

import unreal

# Filename paths
staticmesh_fbx = "D:\Data\Unreal Projects\Assets\house_w_collision_3.fbx"
 
def spawnActor():
# Purpose to auto-populate a single (or set) of static meshes in a level     
 
building_mesh = unreal.load_asset('/Game/StaticMeshes/house_w_collision_3.house_w_collision_3')
# can 'load' the asset, but this does not seem to be cast to 'object' type.
 
actor_class = unreal.StaticMeshActor
actor_location = unreal.Vector(0.0,0.0,0.0)
actor_rotation = unreal.Rotator(0.0,0.0,0.0)
 
test_actor = unreal.EditorLevelLibrary.spawn_actor_from_class(actor_class, actor_location, actor_rotation)

【问题讨论】:

    标签: python scripting actor unreal-engine4 blueprint


    【解决方案1】:

    我感到有些困惑 - 在昨天尝试使这项工作没有成功之后,我尝试使用加载的建筑网格资产,这次它以某种方式工作:

    import unreal
    
    # Filename paths
    staticmesh_fbx = "D:\Data\Unreal Projects\Assets\house_w_collision_3.fbx"
    
    def spawnActor():
       obj = unreal.load_asset('/Game/StaticMeshes/house_w_collision_3.house_w_collision_3')
      actor_location = unreal.Vector(0.0,0.0,0.0)
      actor_rotation = unreal.Rotator(0.0,0.0,0.0)
      unreal.EditorLevelLibrary.spawn_actor_from_object(obj, actor_location, actor_rotation)
    

    我不确定为什么这之前不起作用 - 因为我认为加载的资产是一个对象(但它之前不起作用)。

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 2017-10-15
      • 1970-01-01
      • 1970-01-01
      • 2012-10-20
      • 1970-01-01
      相关资源
      最近更新 更多