加载中...

「RO 笔记」武器外观 ID 解读


0x00 前言

此前在《防具外观 ID 解读 - 头饰篇》已经详细介绍过头饰外观修改方法了,本节再继续说明武器的外观的修改方法。

武器的外观不同于防具,它只有在玩家进入攻击状态时才能看到,也叫「攻击外观」。

盾牌的外观也是只有在攻击状态时才能看到,但不在本篇的讨论范围内

0x10 定义武器道具

早前入手了一批新的武器外观的图档,这里就拿其中一件作为演示:

0x11 服务端代码

首先定义其在服务端装备库 item_db_equip.yml 代码:

- Id: 1300000
  AegisName: FF15_NOCITS_AXE
  Name: 诺克提斯之斧
  Type: Weapon
  SubType: 1hAxe
  Buy: 500
  Weight: 800
  Attack: 520
  Range: 1
  view: 1300
  Jobs:
    All: true
  Locations:
    Right_Hand: true
  WeaponLevel: 5
  EquipLevelMin: 1
  Refineable: true

如代码所示,注意几个地方:

  • 声明道具类型为「武器」: Type: Weapon
  • 声明武器类型为「单手斧」: SubType: 1hAxe
  • 声明武器的「外观 ID」为 1300: view: 1300

为了方便演示,这里把 Jobs 声明为 All: true 全职业可用,实际情况下根据自己的需求设置职业即可

0x12 客户端代码

然后定义其在客户端道具池中 itemInfo.lub 的代码:

[1300000] = {
    unidentifiedDisplayName = "斧",
    unidentifiedResourceName = "咀胶",
    unidentifiedDescriptionName = { 
        "尚未鉴定, 可使用^990099[放大镜]^000000进行鉴定"
    },
    identifiedDisplayName = "诺克提斯之斧",
    identifiedResourceName = "NOCITS_22273",
    identifiedDescriptionName = { 
        "FF15 联动纪念武器",
        "系列: ^777777斧^000000  攻击: ^777777520^000000",
        "重量: ^77777780^000000",
        "武器等级: ^7777775^000000",
        "要求等级: ^7777771^000000",
        "装备: ^777777全职业^000000"
    },
    slotCount = 0,
    ClassNum = 1300
}

同样地,这里注意几个地方:

  • 声明武器的「道具图档名称」: identifiedResourceName = "NOCITS_22273"
  • 声明武器的「外观 ID」: ClassNum = 1300

0x20 武器外观池

接着定义在武器的外观池中定义这个外观 ID。

和头饰外观池不一样,武器外观池只有一个文件: data/luafiles514/lua files/datainfo/weapontable.lub

但是该文件内有 5 个表,需要修改的只有前 3 个:

  1. 定义「武器唯一代码」和「武器外观 ID」的关系: Weapon_IDs
  2. 定义「武器唯一代码」和「武器图档名称」的关系: WeaponNameTable
  3. 定义「武器唯一代码」和「武器类型」的关系: Expansion_Weapon_IDs
  4. 定义「武器类型」和「攻击音效」的关系: Expansion_Weapon_IDs (一般不用改)
  5. 定义「弓类型」: BowTypeList (目前用途不明,不动它即可)

0x21 设置外观图档

现在在外观池添加 1300 的「外观 ID」和「外观图档」的关联关系:

Weapon_IDs = {
  ... ...
  WEAPONTYPE_NOCITS_AXE = 1300, 
}
WeaponNameTable = {
  ... ...
  [Weapon_IDs.WEAPONTYPE_NOCITS_AXE] = "_NOCITS_22273",
}

和防具外观池一样:

  • WEAPONTYPE_NOCITS_AXE 是任意命名的唯一字符串,分配外观 ID 为 1300。
  • _NOCITS_22273 是武器的外观图档后缀名(下划线 _ 是约定的命名方式,因为之后需要拼接「职业」和「性别」前缀)

0x22 设置武器类型和音效

随后还要设定这个武器的「类型」和「攻击音效」。

武器类型我们在服务端的道具库中已经声明为「单手斧」SubType: 1hAxe,所以这里也需要配置成一样的武器类型。

Expansion_Weapon_IDs 表中已经存在所有的武器类型名称了,其中「单手斧」的类型名称为 WEAPONTYPE_AXE

我们需要做的是新增一行代码、建立我们自定义的武器代码 WEAPONTYPE_NOCITS_AXE 和现有武器类型 WEAPONTYPE_AXE 的关联关系:

Expansion_Weapon_IDs = {
  ... ...
  [Weapon_IDs.WEAPONTYPE_NOCITS_AXE] = Weapon_IDs.WEAPONTYPE_AXE, 
}

至于 WeaponHitWaveNameTable 表是不需要配置的,因为单手斧 WEAPONTYPE_AXE 默认已经关联到斧头的攻击音效了:

WeaponHitWaveNameTable = {
  ... ...
  [Weapon_IDs.WEAPONTYPE_AXE] = "_hit_axe.wav"
}

由于我们新增的武器代码 WEAPONTYPE_NOCITS_AXE 已经和单手斧关联上了、自然而然就拥有了单手斧的音效了。

当然如果你希望换一个音效,也可以修改它。

0x23 附-武器类型对照表

服务端代码
SubType
客户端代码
Expansion_Weapon_IDs
武器类型
Fist WEAPONTYPE_NONE 空手
Dagger WEAPONTYPE_SHORTSWORD 短剑
1hSword WEAPONTYPE_SWORD 单手剑
2hSword WEAPONTYPE_TWOHANDSWORD 双手剑
1hSpear WEAPONTYPE_SPEAR 单手矛
2hSpear WEAPONTYPE_TWOHANDSPEAR 双手矛
1hAxe WEAPONTYPE_AXE 单手斧
2hAxe WEAPONTYPE_TWOHANDAXE 双手斧
Mace WEAPONTYPE_MACE 钝器
2hMace WEAPONTYPE_TWOHANDMACE 双手钝器
Staff WEAPONTYPE_ROD 权杖
Bow WEAPONTYPE_BOW 弓箭
Knuckle WEAPONTYPE_KNUKLE 拳套
Musical WEAPONTYPE_INSTRUMENT 乐器
Whip WEAPONTYPE_WHIP 鞭子
Book WEAPONTYPE_BOOK
Katar WEAPONTYPE_CATARRH 拳刃
Revolver WPCLASS_GUN_HANDGUN 手枪
Rifle WPCLASS_GUN_RIFLE 来复枪
Gatling WPCLASS_GUN_GATLING 格林机关枪
Shotgun WPCLASS_GUN_SHOTGUN 散弹枪
Grenade WPCLASS_GUN_GRANADE 榴弹枪
Huuma WPCLASS_SYURIKEN 风魔手里剑
2hStaff WPCLASS_TWOHANDROD 双手杖
- WEAPONTYPE_SHORTSWORD_SHORTSWORD 双持短剑
- WEAPONTYPE_SWORD_SWORD 双持单手剑(二刀流)
- WEAPONTYPE_AXE_AXE 双持单手斧
- WEAPONTYPE_SHORTSWORD_SWORD 双持:短剑-单手剑
- WEAPONTYPE_SHORTSWORD_AXE 双持:短剑-单手斧
- WEAPONTYPE_SWORD_AXE 双持:单手剑-单手斧

关于双持: 两把武器在服务端和客户端的设定,都和单持武器是一样的,重点在于两把武器的外观 ID 都是指向同一个图档,而这个图档的每一帧动作都必须把两把武器都画上

0x30 图档位置

前面我们在 道具池 和 武器外观池 分别定义了两个图档名称:

  • 道具图档名称: NOCITS_22273
  • 外观图档后缀名称: _NOCITS_22273

这两个名称对应的图档位置如下:

0x31 道具图档位置

参考《防具外观 ID 解读》,和其他道具图档一样,“武器” 也是 “道具” 的一种,故道具图档位置是一样的:

  • 道具在地上/拖拽时的图档:
    • data/sprite/酒捞袍/NOCITS_22273.act
    • data/sprite/酒捞袍/NOCITS_22273.spr
  • 道具栏的小图图档: data/texture/蜡历牢磐其捞胶/item/NOCITS_22273.bmp
  • 道具详情的大图图档: data/texture/蜡历牢磐其捞胶/collection/NOCITS_22273.bmp

0x32 武器外观图档位置

参考《客户端目录结构及功能说明(2024 修订)》,可知武器的外观图档目录为: data/sprite/牢埃练

因为每个职业有体型区别(例如宝宝为小体型、骑乘形态为大体型),故每个武器外观都是需要和职业绑定的。

data/sprite/牢埃练 目录下定义了每一种职业的文件夹,每个文件夹下即是该职业的武器外观图档。

以商人职系为例,其每个职业对应的文件夹为:

职级 职业 职业文件夹名称
一转/进阶一转 商人 惑牢
二转/进阶二转 铁匠/神工匠 力枚傍
二转/进阶二转 炼金术师/创造者 楷陛贱荤
三转/进阶三转 机械工匠 固纳葱
三转/进阶三转 机械工匠(骑乘) 固纳葱镐蹬瘤
三转/进阶三转 基因学者 力匙腐
四转 机械神匠 MEISTER
四转 生命缔造者 BIOLO

由于武器外观图档的格式为: data/sprite/牢埃练/{职业名}/{职业名}_{性别}{外观图档后缀名称}.[act|spr]

据此即可为每个职业添加武器外观图档(复制同一份图档、更改名称即可):

  • 一转 - 商人:
    • data/sprite/牢埃练/惑牢/惑牢_巢_NOCITS_22273.act
    • data/sprite/牢埃练/惑牢/惑牢_巢_NOCITS_22273.spr
    • data/sprite/牢埃练/惑牢/惑牢_咯_NOCITS_22273.act
    • data/sprite/牢埃练/惑牢/惑牢_咯_NOCITS_22273.spr

  • 二转 - 铁匠/神工匠:
    • data/sprite/牢埃练/力枚傍/力枚傍_巢_NOCITS_22273.act
    • data/sprite/牢埃练/力枚傍/力枚傍_巢_NOCITS_22273.spr
    • data/sprite/牢埃练/力枚傍/力枚傍_咯_NOCITS_22273.act
    • data/sprite/牢埃练/力枚傍/力枚傍_咯_NOCITS_22273.spr

  • 二转 - 炼金术师/创造者:
    • data/sprite/牢埃练/楷陛贱荤/楷陛贱荤_巢_NOCITS_22273.act
    • data/sprite/牢埃练/楷陛贱荤/楷陛贱荤_巢_NOCITS_22273.spr
    • data/sprite/牢埃练/楷陛贱荤/楷陛贱荤_咯_NOCITS_22273.act
    • data/sprite/牢埃练/楷陛贱荤/楷陛贱荤_咯_NOCITS_22273.spr

  • 三转 - 机械工匠:
    • data/sprite/牢埃练/固纳葱/固纳葱_巢_NOCITS_22273.act
    • data/sprite/牢埃练/固纳葱/固纳葱_巢_NOCITS_22273.spr
    • data/sprite/牢埃练/固纳葱/固纳葱_咯_NOCITS_22273.act
    • data/sprite/牢埃练/固纳葱/固纳葱_咯_NOCITS_22273.spr
  • 三转 - 基因学者:
    • data/sprite/牢埃练/力匙腐/力匙腐_巢_NOCITS_22273.act
    • data/sprite/牢埃练/力匙腐/力匙腐_巢_NOCITS_22273.spr
    • data/sprite/牢埃练/力匙腐/力匙腐_咯_NOCITS_22273.act
    • data/sprite/牢埃练/力匙腐/力匙腐_咯_NOCITS_22273.spr

  • 四转 - 机械神匠:
    • data/sprite/牢埃练/MEISTER/MEISTER_巢_NOCITS_22273.act
    • data/sprite/牢埃练/MEISTER/MEISTER_巢_NOCITS_22273.spr
    • data/sprite/牢埃练/MEISTER/MEISTER_咯_NOCITS_22273.act
    • data/sprite/牢埃练/MEISTER/MEISTER_咯_NOCITS_22273.spr
  • 四转 - 生命缔造者:
    • data/sprite/牢埃练/BIOLO/BIOLO_巢_NOCITS_22273.act
    • data/sprite/牢埃练/BIOLO/BIOLO_巢_NOCITS_22273.spr
    • data/sprite/牢埃练/BIOLO/BIOLO_咯_NOCITS_22273.act
    • data/sprite/牢埃练/BIOLO/BIOLO_咯_NOCITS_22273.spr

0x40 武器外观不显示的原因

当所有地方图档都配置正确,但是进入游戏却不显示武器外观,常见有两种可能:

  1. 你参考了旧版的「客户端目录结构」去创建职业文件夹,以前三转是共用二转的职业图档目录的;但是至少从 202204 版本开始,三转已经拆分出独立的职业图档目录了,详细职业名称可以参考《客户端目录结构及功能说明(2024 修订)
  2. 你使用的「武器外观 act 预设轨迹」和「实际职业的攻击动作轨迹」不匹配,最明显的就是体型不一致导致的错位。

譬如前面的例子中,我就没有设置「机械工匠(骑乘)」的图档,因为高达的攻击动作没有挥斧,无法把斧头渲染出来、会强制变成空手:

甚至有些时候,男/女拿武器的轨迹、一转/高转拿武器的轨迹、等等都不一样,同一把武器在不同性别、不同职业的手上可能存在横斩、竖劈、抡砸等多种使用轨迹,纯粹复制图档并不能兼容所有情况,而是需要调整 act 文件:


文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
 上一篇
「RO 笔记」防具外观 ID 解读 - 披风/翅膀篇 「RO 笔记」防具外观 ID 解读 - 披风/翅膀篇
在各个平台上看到别人分享的炫酷翅膀,应该怎么加到自己的服务器?为什么翅膀图档都没问题,但是游戏中却看不到翅膀?本篇继续解读人物的披肩/翅膀应该怎么配置 ...
2024-01-20
下一篇 
「RO 笔记」头饰制作基础 - 五色卡浩之角 「RO 笔记」头饰制作基础 - 五色卡浩之角
深入浅出的简易头饰制作教程,从 PS 开始手把手教你如何改图调色、生成画出每一帧图像,从此制作 RO 时装不求人 ~
2024-01-06
  目录