Particle modding

本页面所适用的版本可能已经过时,最后更新于1.5
Revision as of 20:02, 4 February 2025 by 秋起. (talk | contribs)

粒子是特殊的实体模型,被其他实体模型用来创建诸如闪电、雪等视觉效果。

粒子效果定义在 .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".