📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| CreatureID | INT UNSIGNED | 无 | 生物模板ID (主键1) |
| Idx | SMALLINT UNSIGNED | 0 | 模型索引 (主键2) |
| CreatureDisplayID | INT UNSIGNED | 无 | 生物显示模型ID |
| DisplayScale | FLOAT | 1 | 显示缩放比例 |
| Probability | FLOAT | 0 | 出现概率 |
| VerifiedBuild | SMALLINT | NULL | 验证版本 |
🔑 核心字段详解
🆔 CreatureID - 生物模板ID
详细说明:对应creature_template.entry,指定使用此模型的生物。
取值范围:对应creature_template.entry
- 复合主键的一部分
- 同一生物可有多条模型记录
- 支持多模型随机显示
📊 Idx - 模型索引
详细说明:同一生物的不同模型编号索引。
取值范围:0 - 3
- 0 - 第一个模型
- 1 - 第二个模型
- 2 - 第三个模型
- 3 - 第四个模型
- 最多支持4个模型
🎨 CreatureDisplayID - 生物显示模型ID
详细说明:生物的3D显示模型ID,对应CreatureDisplayInfo.dbc。
取值范围:对应DBC文件
- 决定生物的外观表现
- 包含模型文件和贴图信息
- 不同DisplayID显示不同造型
- 可从DBC或wowhead查询
📏 DisplayScale - 显示缩放比例
详细说明:模型的缩放比例,修改模型大小。
取值范围:0.1 - 10.0+
- 1.0 - 默认大小(不缩放)
- 0.5 - 缩小一半
- 2.0 - 放大两倍
- 与creature_template.scale叠加
- 最终大小 = 模型基础大小 × DisplayScale × creature_template.scale
🎲 Probability - 出现概率
详细说明:该模型被选中的概率。
取值范围:0.0 - 1.0
- 1.0 - 100%显示此模型(单一模型)
- 0.5 - 50%概率显示
- 同一CreatureID的所有模型概率之和应为1.0
- 核心会在启动时自动校正概率总和
- 多模型时随机选择显示
✔️ VerifiedBuild - 验证版本
详细说明:用于确定模板是否已从WDB文件验证。
- 0 - 尚未解析
- 正数 - 已用该客户端版本的WDB解析
- -1 - 占位符,等待正确数据
- 用于数据验证和版本追踪
💡 实际案例
单一模型 为生物分配单一模型
CreatureID=12345, Idx=0, Probability=1.0(100%显示)
INSERT INTO creature_template_model VALUES(
12345, 0, 1000, 1.0, 1.0, NULL
);多模型 为生物分配两个随机模型
CreatureID=12346, Idx=0/1, 各50%概率
-- 第一个模型(50%概率)
INSERT INTO creature_template_model VALUES(
12346, 0, 1001, 1.0, 0.5, NULL
);
-- 第二个模型(50%概率)
INSERT INTO creature_template_model VALUES(
12346, 1, 1002, 1.0, 0.5, NULL
);缩放 创建缩放后的模型
CreatureID=12347, DisplayScale=2.0(放大两倍)
INSERT INTO creature_template_model VALUES(
12347, 0, 1003, 2.0, 1.0, NULL
);四模型 为生物分配四个随机模型
CreatureID=12348, Idx=0/1/2/3, 各25%概率
-- 模型0(25%)
INSERT INTO creature_template_model VALUES(12348, 0, 1004, 1.0, 0.25, NULL);
-- 模型1(25%)
INSERT INTO creature_template_model VALUES(12348, 1, 1005, 1.0, 0.25, NULL);
-- 模型2(25%)
INSERT INTO creature_template_model VALUES(12348, 2, 1006, 1.0, 0.25, NULL);
-- 模型3(25%)
INSERT INTO creature_template_model VALUES(12348, 3, 1007, 1.0, 0.25, NULL);查询 查询生物使用的所有模型
查询CreatureID=12345的所有模型配置
SELECT ctm.CreatureID, ctm.Idx, ctm.CreatureDisplayID,
ctm.DisplayScale, ctm.Probability, ct.name
FROM creature_template_model ctm
JOIN creature_template ct ON ctm.CreatureID = ct.entry
WHERE ctm.CreatureID = 12345
ORDER BY ctm.Idx;⚡ 快速参考
模型索引
| 0 | 第一个模型 |
| 1 | 第二个模型 |
| 2 | 第三个模型 |
| 3 | 第四个模型 |
缩放比例
| 1.0 | 默认大小 |
| 0.5 | 缩小一半 |
| 2.0 | 放大两倍 |
| 与scale叠加 | 最终大小 |
概率设置
| 1.0 | 单一模型 |
| 0.5 | 50%概率 |
| 0.25 | 25%概率 |
| 总和=1.0 | 必须条件 |
模型数量
| 最多4个 | Idx=0-3 |
| 随机显示 | 按概率 |
| 单一模型 | Probability=1 |
| 多模型 | 概率分配 |
🔗 相关表格
- creature_template - 生物模板表
- creature_model_info - 生物模型信息表
- creature - 生物刷新表
❓ 常见问题
Q1: 如何获取CreatureDisplayID?
从CreatureDisplayInfo.dbc文件或wowhead等网站查询模型ID。
Q2: 概率总和不为1会怎样?
核心会在启动时自动校正,确保所有模型概率之和为1.0。
Q3: DisplayScale和creature_template.scale的关系?
两者叠加计算最终大小:模型基础大小 × DisplayScale × creature_template.scale。
Q4: 一个生物最多可以有多少个模型?
最多4个模型(Idx=0-3),每次刷新时按概率随机选择一个显示。