跳转至

建筑数据资产

Building Data Asset 用于定义一种可建造建筑的 UI 信息、渲染方式、预览配置、放置规则、成本、特效和初始实体数据。

每种建筑通常对应一个独立资产,例如:

BDA_Foundation_Wood
BDA_Wall_Wood
BDA_Workbench

开始前,请先完成 Asset Manager 配置

创建资产

快速创建

右键 Static Mesh,选择插件提供的 Create Asset,可以快速创建:

  • Building Module Info
  • Building Data Asset

创建完成后,需要将资产移动到 Asset Manager 配置的扫描目录中。

快速创建

缩略图异常

创建的资产缩略图偶尔可能出现显示不完整、局部发黑或材质未正确渲染等情况。这通常是因为 UE 尚未完成相关材质、着色器或光照资源的编译。

可先双击打开对应的 Static Mesh,进入 `Static Mesh Editor`,等待编译完成后,再重新生成缩略图。

手动创建

在 Content Browser 中选择:

Add → Miscellaneous → Data Asset → Building Data Asset

下面按照资产 Details 面板中的显示顺序介绍各项设置。

building-data-assets

UI

控制建筑在建造菜单中的显示方式。

设置项 默认值 说明
Sort Index 0 建筑在列表中的排序值。
Display Name 建筑在 UI 中显示的本地化名称。
Icon None 建筑在 UI 中显示的图标。

Sort Index 越小,建筑通常越靠前显示。最终排序方式也可以由项目 UI 自行决定。

Rendering

Render Mode

决定建筑确认后使用的渲染方式。

模式 说明
HISM 使用 HISM Instance 渲染,适合地基、墙体和屋顶等大量重复建筑。
Actor 生成独立 Actor,适合门、箱子和工作台等需要独立逻辑的建筑。

默认值为:

HISM

Module

仅在以下模式下显示:

Render Mode = HISM
设置项 说明
Module Definition HISM 建筑使用的 Building Module Info 资产。

Module Definition 用于提供最终渲染 Mesh、碰撞、吸附点和其他模块级配置。

HISM 建筑确认后,会使用其中的 Mesh 创建对应的 HISM Instance。

创建 Module Definition

在 Content Browser 中选择:

Add → Miscellaneous → Data Asset → Building Module Info

创建完成后,将其设置到 Module Definition

Building Module Info 的主要配置包括:

设置项 说明
Mesh HISM 模式下最终显示的 Static Mesh。
Build Collision Profile 生成的 HISM Component 使用的碰撞配置。
Additional Component Tags 添加到 HISM Component 的自定义组件标签。
Exclude From World Support 是否禁止该模块作为其他建筑的世界支撑来源。如装饰物等

Interaction

仅在以下模式下显示:

Render Mode = Actor
设置项 说明
Actor Class 建筑确认后生成的 Actor 类。

Actor Class 应继承插件提供的:

Building Entity Actor

适合使用 Actor 模式的建筑包括:

  • 门和箱子
  • 工作台
  • 可交互设备
  • 需要独立组件或运行逻辑的建筑

Ghost

用于配置建筑放置阶段的预览。

设置项 默认值 说明
Preview Mesh None 建筑预览使用的 Static Mesh。

Preview Mesh 主要用于:

  • 显示建筑预览
  • 计算建筑边界
  • 执行放置碰撞检测
  • 读取 Static Mesh Socket
  • 搜索附近的吸附目标

HISM 建筑未配置 Preview Mesh 时,可以回退使用 Module Definition 中的 Mesh。

Actor 建筑不使用 Module Definition,因此建议始终配置有效的 Preview Mesh

Collision

控制当前建筑是否覆盖项目默认的预览碰撞配置。

设置项 默认值 说明
Override Ghost Collision Profile 关闭 是否使用当前建筑独立的 Ghost Collision Profile。
Ghost Collision Profile Override 未配置 当前建筑使用的预览碰撞 Profile。

启用:

Override Ghost Collision Profile

后,才会显示并使用:

Ghost Collision Profile Override

未启用时,建筑预览使用项目设置中的默认 Ghost Collision Profile。

详细说明请参阅 碰撞配置

Placement

控制建筑的 UI 分类和基础放置规则。

设置项 默认值 说明
Categories 空数组 建筑所属的一个或多个 UI 分类。
Grid Size 5.0 cm 网格移动和位置调整使用的距离步长。
Requires Planar Supported 关闭 是否要求建筑底部获得有效的平面支撑。

Categories

Categories 用于在建造菜单中对建筑进行分组。

一个建筑可以属于多个分类,例如:

Foundation
Wall
Roof
Decoration
Functional

该设置只用于建筑列表和 UI 组织,不属于吸附分组。

Grid Size

Grid Size 表示建筑进行网格移动或位置调整时使用的距离步长。

Unreal Engine 默认使用厘米单位,因此默认值:

5.0

表示:

5 cm

数值越小,位置调整越精细;数值越大,每次调整的距离越大。

该参数只提供建筑自身的移动步长。项目是否启用网格移动,以及何时使用该数值,由具体输入和放置逻辑决定。

Requires Planar Supported

启用后,建筑放置时需要获得有效的平面支撑,要求Mesh Box在一个平面上。

适合启用的建筑包括:

  • 家具
  • 工作台
  • 箱子
  • 需要平稳放置的功能建筑

不要求平面支撑的墙体、悬挂物或特殊建筑可以保持关闭。

Cost

用于配置建筑所需的资源。

设置项 默认值 说明
Cost Set None 当前建筑使用的成本配置。

Cost Set 可以通过不同的 Cost Evaluator 接入:

  • 背包物品
  • 金币
  • 角色属性
  • 基地仓库
  • 项目自定义资源系统

未配置 Cost Set 时,当前建筑没有由插件成本系统定义的建造成本。

详细说明请参阅 建筑成本系统

Effect

控制当前建筑如何使用项目默认特效和建筑专属特效。

设置项 默认值 说明
Effect Resolve Mode Use Project Default 特效配置的解析方式。
Effect Set Override None 当前建筑使用的专属 Effect Set。

Effect Resolve Mode

模式 说明
Use Project Default 仅使用项目设置中的默认 Effect Set。
Override Project Default 使用建筑专属 Effect Set 替换项目默认配置。
Play Default Then Override 先播放项目默认特效,再播放建筑专属特效。
Disabled 当前建筑不播放建筑特效。

Effect Set Override 仅在以下模式中显示:

Override Project Default
Play Default Then Override

详细说明请参阅 建筑特效

Entity

Initial Entity Data 用于配置建筑创建时写入实体的初始数据。

字段 说明
Tags 建筑创建时拥有的 Gameplay Tags。
Attributes 建筑创建时拥有的数值属性。

Tags

Tags 限定在 Building Gameplay Tag 分类下,可用于标识建筑类型、材质或玩法特征。

例如:

Building.Type.Foundation
Building.Type.Wall
Building.Material.Wood
Building.Function.Storage

Attributes

每个 Attribute 包含:

字段 默认值 说明
Attribute Tag 属性标识,限定在 Building.Attr 分类下。
Value 0.0 属性的初始数值。

例如:

Building.Attr.Health = 100
Building.Attr.Durability = 50

这些数据会在建筑实体创建时写入 Initial Entity Data

配置检查

建筑无法正常使用时,优先检查:

问题 检查内容
未出现在建造列表 检查 Categories、Asset Manager 和 UI 数据来源。
HISM 建筑无法生成 检查 Render ModeModule Definition
Actor 建筑无法生成 检查 Actor Class 是否有效。
没有建筑预览 检查 Preview Mesh 或 Module Mesh。
预览碰撞异常 检查 Ghost Collision Profile。
无法支付成本 检查 Cost Set 和对应 Evaluator。
没有建筑特效 检查 Effect Resolve Mode 和 Effect Set。
初始数据缺失 检查 Initial Entity Data