📊 SpellMissileMotion.dbc
SpellMissileMotion.dbc 定义了法术投射物/弹道的运动轨迹细节。控制弹道在飞行过程中的路径形状、曲线参数等高级运动行为。
📋 字段结构
| 索引 | 字段名 | 类型 | 说明 |
|---|---|---|---|
| 0 | ID | uint32 | 运动轨迹唯一标识符 |
| 1 | Name | string | 轨迹名称 |
| 2 | ScriptBody | string | 轨迹脚本/路径数据 |
| 3 | Flags | uint32 | 轨迹行为标志位 |
| 4 | MissileCount | uint32 | 同时生成的投射物数量 |
📌 关键字段详解
ID - 轨迹ID
被 Spell.dbc 效果字段中的 SpellMissileMotionID(LaunchMissileMotionID) 引用。定义弹道发射后的运动路径行为。
Name - 轨迹名称
内部标识名称,用于识别轨迹类型。如 "Straight"=直线、"Arc"=弧线、"Spiral"=螺旋、"Homing"=追踪。
ScriptBody - 轨迹脚本
定义弹道的具体运动路径。包含关键帧位置、曲线参数等。不同值的脚本控制不同的运动模式(直线、抛物线、螺旋上升等)。
MissileCount - 投射物数量
单次施法同时产生的投射物数量。>1 时配合 SpellMissile 的 Randomize 参数可实现锥形/扇形散射。如多重射击同时发射多支箭矢。
💡 运动轨迹类型
| 轨迹类型 | 描述 | 典型法术 |
|---|---|---|
| 直线 (Straight) | 从施法者直飞目标 | 火球术、寒冰箭、暗影箭 |
| 追踪 (Homing) | 自动追踪目标移动 | 奥术飞弹、部分引导法术 |
| 螺旋 (Spiral) | 螺旋运动轨迹 | 特定区域持续法术 |
| 弧形 (Arc) | 抛物线弧线 | 投掷类、爆炸投掷物 |
🔧 使用示例
查询弹道运动配置
-- 查询使用追踪轨迹的法术
SELECT DISTINCT s.ID AS SpellID, s.Name, smm.Name AS MotionName
FROM spell_dbc s
JOIN spell_missile_motion smm ON s.EffectMiscValue_1 = smm.ID
WHERE smm.Name LIKE '%Homing%';💡 使用技巧
- 多弹道法术:MissileCount > 1 时,结合 SpellMissile 的 RandomizeFacing 参数创建散射效果。
- 客户端渲染:轨迹运动通过客户端引擎渲染,修改后需要重启客户端生效。
- 与 SpellMissile 配合:SpellMissile 控制物理属性(速度/重力),SpellMissileMotion 控制路径形状。
- 自定义轨迹:ScriptBody 字段结构较复杂,建议参考官方轨迹进行修改而非从零创建。
- 参考链接:AzerothCore Wiki - spell_missile_motion