Entity模组制作
原页面:Entity modding
实体是《钢铁雄心 4》用来把模型与脚本对象链接起来的定义,用于ambient_objects.txt等地方。
.gfx与.asset文件都在/Hearts of Iron IV/gfx/entities/中找到。
动画.asset文件在/Hearts of Iron IV/gfx/models/中找到。
添加网格
要添加一个网格,你需要在模组中添加一个包含网格定义的.gfx文件。以下是一个通用示例:
objectTypes = {
pdxmesh = {
name = "name_of_mesh"
file = "gfx/models/name_of_mesh.mesh"
animation = { id = "idle" type = "name_of_animation" }
scale = 1.0
}
}
- name是网格的名称,随后会在.asset文件中被引用。
- file是其所关联模型文件的相对路径。
- animation是为该网格关联的每个动画添加的作用域。
- scale是模型大小的标量。
Animation
动画作用域包含以下属性:
- id是 pdxmesh 内动画的名称。
- type是在 .asset 文件中定义的实际动画的名称。
添加实体
一旦网格定义完成,你还需要添加一个实体定义,才能在脚本中使用它。这需要在你模组内添加的.asset文件中完成。
以下是所有可能属性的完整示例:
entity = {
name = "name_of_entity"
pdxmesh = "mesh_to_use"
scale = 1.0
cull_radius = 100
default_state = "idle"
get_state_from_parent = yes
locator = {
name = "example"
position = { 0.0 0.0 0.0 }
}
state = {
name = "idle"
state_time = 0.0
animation = "idle"
animation_blend_time = 0.0
animation_speed = 1.0
looping = yes
next_state = "idle"
chance = 2
propagate_state = {
node = "idle"
}
event = {
time = 1.0
trigger_once = yes
node = "example_node"
light= "example_light"
particle = "example_particle"
keep_particle = yes
sound = {
soundeffect = "example_soundeffect"
}
}
}
attach = {
name = "name"
<node> = "example_entity"
}
}
- name是实体的名称,用于ambient_objects.txt等地方引用。
- pdxmesh是与该实体关联的网格。
- 州是为该网格关联的每个动画添加的作用域,用于把动画链接到一个动画状态。
- locator是一个作用域,用于向实体添加节点。
- scale是实体大小的标量。
- cull_radius是实体被剔除渲染的距离。
- default_state是该实体的默认动画状态。
- get_state_from_parent继承父实体的状态(即由作为士兵一部分的武器实体使用)。
- attach是一个作用域,用于把另一个实体附着到当前实体的骨架节点上。
请注意,可用状态取决于实体用在何处(即单位实体会获得战斗状态,而建筑实体会获得建筑状态等等)。所有实体都共用idle状态。
州
状态作用域包含以下属性:
- name是模型可以进入的状态的名称。所有模型都有一个idle状态。
- state_time是当前状态的持续时间。
- looping决定该状态是否循环。
- event是一个作用域,用于施加粒子或音效。
- animation是要播放的动画状态(来自 pdxmesh)。
- animation_blend_time是当前动画与指定动画之间的混合时间。
- animation_speed是动画的播放速度。
- next_state为当前状态设置下一个状态。
- chance决定当该状态条目与多个其他状态条目同名时(即训练、是否做俯卧撑、开合跳等等),此状态条目出现的几率。
- propagate_state把当前状态传播到指定节点。
事件
事件作用域包含以下属性:
- time是事件的持续时间,以秒为单位。
- particle是要显示的粒子。
- keep_particle决定粒子是否在事件持续时间结束后继续存在。
- trigger_once决定该事件是否只发生一次。
- sound是一个作用域,用于施加音效。
- node指定一个定位节点或模型节点,以把事件位置原点设置到该处。
- light指定要显示的灯光。
Attach
- name是所附着实体的名称。
- <node>是实体骨架中节点的名称,其值是要附着的实体。
音效
声音作用域包含以下属性:
- soundeffect是要播放的音效。
Locator
定位作用域包含以下属性:
- name是定位节点的名称。
- position是定位节点的位置,其值为 x、y、z 坐标。
添加动画
模型的动画添加在.asset文件中,该文件位于/Hearts of Iron IV/gfx/models/或其子文件夹里。
以下是一个通用示例:
animation = {
name = "animation_name"
file = "animation_name.anim"
}
- name是动画的名称,随后会在pdxmesh中被引用。
- file是动画文件的相对路径。
| 文档 | 效果 • 触发器 • 定义文件 • 修正项 • 修正项列表 • 作用域 • 本地化文件 • 事件钩子 • 数据结构(标记、事件目标、国家标签别名、变量、数组) |
| 脚本 | 成就 • AI • AI 焦点 • 自治领 • 力量均势 • 书签/剧本 (游戏规则) • 建筑 • 角色与特质 • 外观标签 • 国家 • 师 • 决议 • 学说 • 装备 • 事件 • 阵营 • 理念 • 意识形态 • 军事工业组织 • 国策 • 资源 • 脚本化 GUI • 科技与学说 • 单位 |
| 地图 | 地图 • 州 • 补给区域 • 战略区域 |
| 图形 | 界面 • 图形资源 • 实体 • 后期特效 • 粒子 • 字体 |
| 外观 | 肖像 • 名称列表 • 音乐 • 音效 |
| 其他 | 控制台指令 • 疑难排查 • 模组结构 • 模组 • 地图编辑器 |