CreatureModelData.dbc
生物模型数据定义。将模型文件路径与碰撞体积、脚印、声音材质等物理属性关联
文件概述
CreatureModelData.dbc 定义了生物3D模型的文件路径和物理属性。每个记录指向客户端MPQ中的一个 .m2 模型文件,并定义模型的实际尺寸、碰撞体积、脚印纹理、弹道碰撞等属性。是通过 CreatureDisplayInfo.dbc 引用模型的核心桥梁。
列结构
| 列号 | 字段 | 类型 | 详细说明 |
|---|---|---|---|
| 1 | 编号 | 整数 | 模型数据唯一标识符 |
| 2 | 标志位 | 整数 | 模型行为标志 |
| 3 | 模型路径 | 字符串 | .m2 模型在MPQ中的文件路径,如 "Creature\Bear\Bear.m2" |
| 4 | 尺寸类别 | 整数 | 模型尺寸等级分类 |
| 5 | 模型基础缩放 | 浮点数 | 模型的基准缩放值 |
| 6 | 血液效果编号 | 整数 | 受伤/死亡时的血液粒子效果 |
| 7 | 脚印纹理编号 | 整数 | 行走时地面留下的脚印纹理 |
| 8 | 脚印长度 | 浮点数 | 脚印贴图的长度尺寸 |
| 9 | 脚印宽度 | 浮点数 | 脚印贴图的宽度尺寸 |
| 10 | 脚印粒子缩放 | 浮点数 | 脚步粒子特效的缩放比例 |
| 11 | 声音材质编号 | 整数 | 脚步声对应的物理材质(如草地、石板、雪地等) |
| 12 | 脚步声震屏 | 浮点数 | 大型生物行走时的屏幕震动幅度 |
| 13 | 死亡震屏 | 浮点数 | 大型生物倒地时的屏幕震动幅度 |
| 14 | 声音编号 | 整数 | 关联的生物声音数据 |
| 15 | 碰撞宽度 | 浮点数 | 生物模型的碰撞半径(水平方向) |
| 16 | 碰撞高度 | 浮点数 | 生物模型的碰撞高度(垂直方向) |
| 17 | 骑乘高度 | 浮点数 | 作为坐骑时,骑乘者的渲染高度偏移 |
| 18 | 几何包围盒 | 浮点数[6] | 6个坐标值定义的几何包围盒 |
| 19 | 世界特效缩放 | 浮点数 | 世界环境特效在模型上的缩放 |
| 20 | 附着特效缩放 | 浮点数 | 附着在模型上的粒子特效缩放 |
| 21 | 弹道碰撞半径 | 浮点数 | 远程弹道打到该模型时的碰撞检测半径 |
| 22 | 弹道碰撞推力 | 浮点数 | 弹道击中的推动力度 |
| 23 | 弹道碰撞提升 | 浮点数 | 弹道击中时的垂直提升量 |
关键字段详解
模型路径(列3)
指向MPQ中 .m2 模型文件的相对路径。不同生物可共享同一模型文件,通过 CreatureDisplayInfo 使用不同纹理和缩放参数来区分外观。路径示例:"Creature\Bear\Bear.m2"。
碰撞体积(列15、16)
定义生物在游戏世界中的物理碰撞范围:
- 碰撞宽度:水平碰撞半径。小型生物约0.2,Boss可达5米以上
- 碰撞高度:垂直碰撞范围
脚印与声音材质(列7~11)
控制生物行走时的地面效果:
- 脚印纹理:根据材质显示不同脚印(泥土、雪地、石板)
- 声音材质:不同地面产生不同脚步声
震屏效果(列12、13)
大型生物(如Boss、巨人)行走或倒地时造成屏幕震动效果,增强游戏沉浸感。
使用示例
-- 查询特定模型的碰撞体积
SELECT 编号, 模型路径, 碰撞宽度, 碰撞高度 FROM CreatureModelData WHERE 编号 = 4449;
-- 查找大型碰撞体积的模型
SELECT 编号, 模型路径, 碰撞宽度 FROM CreatureModelData WHERE 碰撞宽度 > 5.0 ORDER BY 碰撞宽度 DESC;