📊 SpellVisual.dbc
SpellVisual.dbc 定义了游戏中所有法术的视觉特效配置。该文件控制法术的施法动画、投射物模型、命中特效、区域特效等视觉表现。
📋 字段结构
| 索引 | 字段名 | 类型 | 说明 |
|---|---|---|---|
| 0 | ID | uint32 | 视觉特效唯一标识符 |
| 1 | PrecastKit | uint32 | 预施法特效ID(准备施法时播放) |
| 2 | CastKit | uint32 | 施法动画特效ID |
| 3 | ImpactKit | uint32 | 命中/撞击特效ID |
| 4 | ChannelKit | uint32 | 通道持续特效ID |
| 5 | MissileModel | uint32 | 投射物模型ID(弹道) |
| 6-10 | VisualEffect[1-5] | uint32 | 视觉特效ID数组(各种粒子特效) |
📌 关键字段详解
ID - 视觉特效ID
被 Spell.dbc 的 SpellVisualID 字段引用。每个法术关联一个 SpellVisual 记录来确定其视觉表现。
PrecastKit - 预施法特效
施法者开始施法时播放的视觉特效。通常在读条开始时出现(如手中的光芒)。值为 0 表示无预施法特效。
CastKit - 施法特效
施法完成瞬间播放的主特效。包含手势动画、粒子爆发等。大多数法术的主要视觉效果由此字段控制。
ImpactKit - 命中特效
法术命中目标时的特效(如爆炸、光芒等)。对于 AOE 法术,每个受影响目标都会播放。
MissileModel - 投射物模型
飞行的弹道模型(如火球、寒冰箭的飞行效果)。从施法者飞向目标的视觉模型。0 表示无投射物(如直接命中法术)。
🔧 使用示例
查询法术视觉特效
-- 查询火球术(133)的视觉特效
SELECT s.ID AS SpellID, s.Name, sv.ID AS VisualID, sv.MissileModel, sv.ImpactKit
FROM spell_dbc s
JOIN spell_visual sv ON s.SpellVisualID = sv.ID
WHERE s.ID = 133;
替换法术特效
-- 将所有使用视觉ID 100 的法术改为使用视觉ID 200
UPDATE spell_visual SET
PrecastKit = (SELECT PrecastKit FROM spell_visual WHERE ID = 200)
WHERE ID IN (SELECT SpellVisualID FROM spell_dbc WHERE SpellVisualID = 100);
💡 使用技巧
- 复制特效:可复制已有 SpellVisual 记录创建新ID,修改个别字段以创建变体特效。
- 客户端依赖:特效 ID 引用客户端 SpellVisualKit.dbc 和 SpellVisualEffectName.dbc 中的实际资源。
- 通道法术特效:ChannelKit 通常用于持续引导法术(如奥术飞弹的精神鞭笞效果)。
- 特效层级:多个 VisualEffect 字段允许叠加多个视觉层,创造复杂效果。
- 参考链接:AzerothCore Wiki - spell_visual