粒子是特殊的实体模型,被其他实体模型用来创建诸如闪电、雪等视觉效果。
粒子效果定义在 .asset 文件中,这些文件位于 /Hearts of Iron IV/gfx/particles/.
添加粒子效果
粒子效果编辑器
可以通过在 Steam 的启动选项中添加 -editor 并回退到 1.11 版本来访问粒子编辑器;使用任何更早的版本将导致启动器无法运行,使用任何更晚的版本将在尝试使用编辑器时导致崩溃。由于粒子编辑器无法访问由模组创建的新粒子,因此有必要覆盖原版粒子,将编辑后的粒子移动到你的模组文件中,然后在完成后验证完整性。粒子编辑器可以访问任何原版实体、网格或粒子效果;一旦访问后,可以根据需要编辑原版粒子效果。
添加光效
Lights are special types of particles that are referred to in entities, for example the muzzle flash of the gun during the combat animation.
Here is a generic example:
light = {
name = "name_of_light"
color = {
r = { <float> }
g = { <float> }
b = { <float> }
}
intensity = <float>, fade
radius = <float>
falloff = <float>
position = {
x = <float>
y = <float>
z = <float>
}
animation = {
name = "name_of_animation"
start = <float>
duration = <float>
repeat = yes
op = <type>
minValue = <float>
maxValue = <float>
curve = {
<decimal> <decimal> <decimal> <decimal> <decimal> <decimal>
#example: 0.000 0.000 0.250 1.000 0.500 0.500 0.750 0.000 1.000 1.000
}
}
}
- name is the name of the light.
- color is the color of the light. The values take decimal RGB.
- intensity is the intensity of the light, and the second value is whether it fades.
- radius is the radius of the light.
- falloff is the falloff gradient of the light.
- position is the position of the light relative to the entity using it.
- animation is animation to play for the light.
Animation
- name is the name of the animation.
- start is the starting position of the curve.
- duration is the duration of the animation.
- repeat determines whether the animation is repeated.
- op determines how multiple sources mix. Can be multiply (MUL), additive (ADD) or absolute (ABS).
- minValue is the minimum value on the curve.
- maxValue is the maximum value on the curve.
- curve is the curve used for the light; each set of two decimals denote an x and y position on the curve graph, the game uses these points to calculate a change in whatever the animation is interacting with. The amount of decimals should always be even; the max y value is determined by "maxValue" argument, the min y value is determined by the "minValue" argument, the max x value is determined by "duration" and the min x value is determined by "start". You can have as many sets of decimals as you want but the last x coordinate must match with the duration and the first must match with "start".