Skip to content

技能素材配置:skillMagic.json

skillMagic.json 定义客户端技能的起手、飞行和命中特效,随客户端配置包发布。顶层是 JSON 数组,每个对象定义一个技能的素材表现。

怪物攻击填写的 EffectId 对应这里的 effectID。不同攻击可以复用同一条表现配置;攻击伤害、范围和命中判定由服务端各攻击独立配置,客户端只负责播放。

落点特效

适用于冰咆哮、爆裂火焰等:先播放起手特效,再在指定落点播放命中特效。

json
[
  {
    "uid": 100020,
    "name": "寒冰爆破",
    "effectID": 100020,
    "rsc": "magic",
    "playbackMode": "point",
    "playback": { "destination": "messagePoint" },
    "startFrame": [
      { "begin": 3840, "frame": 10 }
    ],
    "beatenFrame": { "begin": 3850, "frame": 20, "delay": 0.08 }
  }
]
字段含义
uid客户端表现条目的内部身份;怪物扩展消息通过 effectID 查到条目后取得 uid,不要求与服务端另一个技能编号对应
name表现名称
effectID表现编号,与服务端 EffectId 对应;可以与 uid 不同
rsc素材资源名,如 magic、magic2
playbackMode播放方式,point 表示在指定位置播放
playback.destination播放位置,messagePoint 表示服务端消息中的坐标
startFrame起手特效数组;不需要起手特效时直接省略,不影响身体动作
beatenFrame命中或落点特效
begin素材起始索引
frame播放帧数
delay每帧间隔,单位秒;0.08 表示每帧 80 毫秒

各阶段可以单独填写 rsc 覆盖默认资源。示例采用原生素材布局,使用时应确认资源包含对应帧,并选择未占用的编号。合并配置时添加数组元素,不要覆盖原有技能库。

飞行特效

适用于飞符等:从施法者飞向指定落点,抵达后播放命中特效。

json
[
  {
    "uid": 100021,
    "name": "灵符爆破",
    "effectID": 100021,
    "rsc": "magic",
    "playbackMode": "projectile",
    "playback": {
      "destination": "messagePoint",
      "travelTimeMs": 150
    },
    "startFrame": [
      { "begin": 940, "frame": 10 }
    ],
    "flyFrame": { "begin": 1160, "frame": 3, "delay": 0.08 },
    "beatenFrame": { "begin": 1360, "frame": 10, "delay": 0.08 }
  }
]
  • flyFrame:飞行过程使用的素材。
  • travelTimeMs:从起点移动到终点的总时间,单位毫秒。这里是 150 毫秒;距离越远,视觉移动速度越快。
  • flyFrame.delay:弹道自身的动画帧间隔,与移动时间是两回事。

destination 改为 targetSnapshot 时,使用播放开始时读取的目标位置作为终点,不持续追踪目标。messagePoint 不要求落点处存在角色。

省略 playback 时,projectile 沿用目标位置解析和默认飞行时间:找到目标时约 0.3 秒;未找到时沿朝向向前播放约 1 秒,不播放正常的目标命中特效。建议需要固定落点的技能显式填写位置和时间。

直线特效

适用于疾光电影:从施法者位置按朝向选取素材播放,不需要飞行阶段。

json
[
  {
    "uid": 100022,
    "name": "雷光射线",
    "effectID": 100022,
    "rsc": "magic",
    "playbackMode": "beam",
    "startFrame": [
      { "begin": 940, "frame": 10 }
    ],
    "beatenFrame": { "begin": 970, "frame": 6, "delay": 0.08 }
  }
]

beam 使用疾光电影式方向素材布局,不填写播放位置或飞行时间。它不会根据服务端伤害范围自动拉伸长度或宽度。

播放参数速查

参数可选值用途
playbackModepoint在指定位置播放 beatenFrame
projectile播放 flyFrame,抵达后播放 beatenFrame
beam按施法者朝向播放直线特效
playback.destinationmessagePoint消息落点,适用于 point / projectile
targetSnapshot目标位置快照,仅用于 projectile
caster施法者位置,仅用于 point,例如自身范围爆炸
playback.travelTimeMs正数,毫秒projectile 的固定飞行耗时

point 省略位置时使用消息落点。新增技能建议明确填写 playbackMode;省略时沿用原生技能的旧编号判断。

起手素材若需要按方向选帧,可在 startFrame 项中填写 withDir: trueskip,方向步长为 frame + skip。普通 flyFrame 使用既有 dir 方向索引倍率,缺省为 2,方向步长为 10 × dir;它不是方向数量,不要与起手规则混用。

播放时间不控制服务端伤害时机,应在制作技能时对照两者的视觉节奏。剑术 hitFrame、护盾状态、火墙等地图事件继续使用各自的表现链路,不通过上述三种模式定义其持续和消失。

GOW-Next 引擎开发手册 · 原版 API 兼容列表持续核验中