06. 贴图 · 音效 · 语言
6.1 贴图放哪、干什么用
| 文件 |
位置 |
用途 |
建议尺寸 |
| 枪身 UV |
textures/gun/uv/<id>.png |
模型表面的贴图 |
512×512 或 1024×1024(2 的幂) |
| 背包图标 |
textures/gun/slot/<id>.png |
物品栏/手中图标 |
32×32 或 64×64 |
| HUD 图案 |
textures/gun/hud/<id>.png |
界面上显示的枪械轮廓/弹匣示意 |
按需 |
| 弹药图标 |
textures/ammo/slot/<id>.png |
弹药物品图标 |
32×32 |
| 配件贴图 |
textures/attachment/uv/<id>.png、textures/attachment/slot/<id>.png |
配件模型 + 图标 |
按需 |
| 方块贴图 |
textures/block/uv/<id>.png |
枪包方块 |
按需 |
规范:
- 命名全小写 + 下划线,与 id 一致;
- 需要透明的地方用 PNG 的 alpha 通道(别用纯白当透明);
- 尺寸尽量 2 的幂,非 2 的幂在一些版本上会糊;
- 引用时不写扩展名(mypack:gun/uv/m4a1 而不是 …/m4a1.png)。
6.2 音效
assets/mypack/tacz_sounds/m4a1/
├─ shoot.ogg
├─ reload.ogg
├─ draw.ogg
├─ put_away.ogg
└─ inspect.ogg
// display 里这样引用
"sounds": {
"shoot": "mypack:m4a1/shoot",
"reload": "mypack:m4a1/reload",
"draw": "mypack:m4a1/draw",
"put_away": "mypack:m4a1/put_away"
}
| 要点 |
说明 |
| 格式 |
Ogg Vorbis(.ogg);mp3/wav 不行 |
| 采样率/声道 |
44.1kHz、单声道最稳(立体声也能放,但距离衰减表现可能怪) |
| 音量 |
录/选素材时别削波;响度统一,避免某把枪特别吵 |
| 转换 |
ffmpeg -i input.wav -c:a libvorbis -q:a 5 -ac 1 -ar 44100 shoot.ogg |
| 缺失 |
少某个音效不会崩,会回落到默认音 |
6.3 语言文件
// assets/mypack/lang/zh_cn.json
{
"pack.mypack.name": "我的第一个枪包",
"pack.mypack.desc": "练习用,从 M4A1 开始",
"mypack.gun.m4a1.name": "M4A1 突击步枪",
"mypack.gun.m4a1.desc": "自制枪包里的第一把枪",
"mypack.ammo.556x45.name": "5.56×45mm 弹药",
"mypack.attachment.scope_m4a1.name": "M4A1 战术瞄具"
}
| 键的模板 |
用途 |
pack.<ns>.name / pack.<ns>.desc |
枪包在列表里的名字 / 描述 |
<ns>.gun.<id>.name / .desc |
枪名 / 描述(对应 index 的 name/tooltip) |
<ns>.ammo.<id>.name |
弹药名 |
<ns>.attachment.<id>.name |
配件名 |
<ns>.block.<id>.name |
方块名 |
规则:
- 键必须与 index 里写的 name / tooltip 完全一致(多一个空格都会显示成键名);
- 一份 zh_cn.json + 一份 en_us.json(没写的键会回落,最终可能显示键名);
- 想双语发布就把两个文件都写全。
6.4 图标与包信息(容易被忽略的"门面")
assets/<ns>/icon.png:枪包选择界面里的图标;不做也行,但做了更专业。
assets/<ns>/gunpack_info.json:version / name / desc / license / authors / date —— 多人协作时务必填对版本号,便于排查"客户端和服务端是不是同一版"。
6.5 这一块最常犯的错
| 现象 |
原因 |
| 贴图全黑/花屏 |
尺寸不是 2 的幂 / UV 分配重叠 / 引用了不存在的图 |
| 背包图标是紫黑格 |
slot 路径错,或忘了放 textures/gun/slot/<id>.png |
| 音效不响 |
用了 mp3/wav;或 display 里写了 .ogg 后缀 |
名字显示成 mypack.gun.m4a1.name |
缺 lang 或键不一致 |
| 只有自己能看懂的名字 |
只写了 zh_cn.json,别人用英文客户端就回落成键名 |
| 枪包列表里没图标 |
少了 icon.png(可选但建议) |