1. 从“提瓦特”到“卡拉迪亚”一次跨游戏模型迁移的完整实践最近在折腾《骑马与砍杀2霸主》Mount Blade II: Bannerlord的Mod制作一个挺有意思的想法冒了出来能不能把《原神》里那些设计感十足的武器比如“雾切之回光”、“狼的末路”或者“护摩之杖”搬到卡拉迪亚大陆让我的角色也耍一耍这听起来像是天方夜谭毕竟两款游戏引擎、美术风格、技术规范完全不同。但经过一番摸索我发现这条路虽然曲折但并非走不通。整个过程本质上是一次标准的3D游戏资产逆向、重制与再导入的流程涉及模型提取、格式转换、骨骼与权重处理、材质适配以及最终的Mod集成。今天我就把自己从《原神》PC端抓取武器模型到成功导入《骑砍2》并正常使用的完整过程、踩过的坑以及核心技巧毫无保留地分享出来。无论你是Mod制作新手还是对游戏资产管道感兴趣的技术爱好者这篇长文都能给你提供一个清晰的路线图。需要明确的是这个过程仅供学习与研究游戏Mod制作技术之用。所有源自《原神》的模型、贴图等资产其知识产权均归属于米哈游。我们将其用于非商业性质的个人Mod是对原作美术的致敬与学习务必尊重原作者的劳动成果切勿用于任何商业或侵权用途。整个流程会用到多个专业或社区工具有些步骤需要一定的3D软件如Blender基础和耐心。2. 前期准备工具链搭建与《原神》资源初探工欲善其事必先利其器。跨游戏模型搬运的第一步是准备好全套“手术器械”。这个流程的工具链比较长我们可以将其分为几个阶段资源提取、模型查看/编辑、格式转换、以及《骑砍2》Mod制作。### 2.1 资源提取工具的选择与使用《原神》的模型、贴图、动画等资源都打包在游戏目录下的.pck或.blk文件中。要获取它们我们需要专门的解包工具。经过社区验证最常用且相对稳定的工具是Genshin Impact GI Model Importer的配套解包工具或者更通用的AssetStudio。这里我以AssetStudio为例因为它能处理多种Unity游戏界面相对友好。首先定位你的《原神》游戏安装目录通常位于...\Genshin Impact\Genshin Impact Game\。我们需要寻找的是YuanShen_Data国服或GenshinImpact_Data国际服文件夹下的资源文件。使用AssetStudio时直接“File” - “Load folder”加载整个..._Data目录。软件会自动扫描并列出所有可解析的资源包括模型Mesh、纹理Texture、动画AnimationClip等。在资源列表中找到你心仪的武器。由于列表可能非常庞大可以通过名称关键词过滤例如“Sword”、“Claymore”、“Pole”对应单手剑、双手剑、长柄武器。找到目标模型后勾选它及其关联的纹理和材质然后“Export” - “Selected assets”。导出格式选择FBX这是后续流程中兼容性最好的中间格式。同时务必勾选“Export textures”和“Export materials”确保贴图文件通常是.png或.tga一并导出。导出的FBX文件可能包含多个模型网格Mesh和骨骼Armature这是正常现象我们后续在3D软件中再进行处理。注意游戏资源解包涉及对游戏文件的深度读取务必在单机环境下操作并仅用于个人学习。在线环境下任何对游戏客户端的修改都有封号风险切记。### 2.2 3D编辑与处理核心Blender及其必备插件Blender是一款免费开源的3D创作套件是我们进行模型处理的主力。你需要安装当前稳定的版本如3.6 LTS。仅仅有Blender还不够必须安装几个关键插件来打通工作流Cats Blender Plugin这是《骑砍2》Modder社区的瑞士军刀。它专门用于处理《骑马与砍杀》系列的模型功能包括自动修复模型、简化骨骼、生成LOD细节层次、以及最重要的——将模型导出为《骑砍2》引擎Vortex能识别的格式。务必从GitHub或官方论坛下载最新版本。Blender Source Tools (可选)如果你导出的FBX文件在Blender中打开出现材质错乱或轴向问题这个插件提供了更多的FBX导入选项有时能解决疑难杂症。Rigify (Blender内置)在后续绑定骨骼时可能会用到。安装好Blender和Cats插件后首先导入从《原神》提取的FBX文件。在导入设置中注意调整轴向和缩放。《原神》和《骑砍2》可能使用不同的坐标系Y-up vs. Z-up一个常见的设置是导入时勾选“自动变换轴向”并将缩放设置为0.01或0.1因为游戏模型单位与Blender默认单位不同。如果导入后模型变得巨大或微小不要慌调整缩放值重新导入即可。### 2.3 《骑砍2》Mod开发环境配置要让模型最终在游戏里生效我们需要将其打包成一个Mod。这需要《骑砍2》的官方Mod开发工具——Bannerlord Modding Kit它可以通过Steam库中的“工具”部分下载。安装后其目录下包含了游戏资源的结构、XML定义文件模板等。更重要的是我们需要一个基础的Mod项目结构。最简单的方法是复制一个现有的简单物品Mod或者使用社区提供的Mod模板。一个典型的武器Mod文件夹结构如下MyCustomWeaponMod/ ├── SubModule.xml (Mod声明文件) ├── bin/ ├── ModuleData/ │ ├── Items/ │ │ └── my_weapons.xml (武器定义文件) │ └── [其他数据文件] └── SceneObj/ └── my_weapon_brf (编译后的模型文件)我们的核心工作就是生成那个.brf模型文件并在my_weapons.xml中正确引用它。3. 模型手术从“原神风格”到“骑砍可用”直接从《原神》提取的模型就像一块未经雕琢的璞玉无法直接放入《骑砍2》。我们需要进行一系列“手术”使其符合《骑砍2》引擎的规范。### 3.1 模型清理与网格优化导入Blender后你可能会看到模型附带了很多不需要的东西比如角色握持武器的骨骼Armature、可能存在的多个LOD网格、甚至是一些看不见的内部面片。首先在“场景集合”中梳理层级找到代表武器本体的网格Mesh对象。通常武器的刀刃、护手、握柄是分开的网格。选中武器网格进入编辑模式Tab键。进行以下清理操作删除内部面和冗余顶点在编辑模式下选择所有顶点A然后M-按距离合并可以合并重叠的顶点。查看是否有完全在模型内部的面这些面在游戏中不可见却消耗性能可以删除。三角面化《骑砍2》的引擎主要处理三角面。确保你的模型是三角网格。在物体模式下选中武器网格右键 -转换-网格或者使用修改器Triangulate。检查法线确保所有面法线朝外。在编辑模式下选中所有面按ShiftN重新计算外侧法线。如果发现有些面是黑的可能就是法线反了。### 3.2 骨骼与权重的处理静态与动态模型的抉择这是最关键也最易出错的一步。《原神》的武器通常是绑定在角色骨骼上的这意味着FBX文件里会包含一套复杂的骨骼系统和顶点权重信息。而《骑砍2》中的武器99%是静态网格物体即没有骨骼动画只是在角色手中做一个固定的附着。因此我们的目标是将模型从“带骨骼绑定的动态模型”转变为“纯净的静态网格”。操作如下在物体模式下先选中武器的网格然后按住Shift加选骨骼Armature对象。按CtrlP选择分离。这样就将网格与骨骼的父子关系解除了。现在可以安全地删除那个骨骼对象了。选中骨骼按X-删除。此时网格上可能还残留着旧的顶点组Vertex Groups即权重信息。在物体数据属性绿色三角形图标中找到“顶点组”列表逐一选中并点击“-”号移除所有顶点组。完成这些后你的武器模型应该是一个没有任何骨骼、没有任何顶点组的“干净”网格。你可以通过添加一个“空物体”作为父级来整体控制武器的位置、旋转和缩放方便后续调整。### 3.3 材质与贴图的重新链接解包出来的贴图文件如Texture2D_xxxx.png需要重新赋予给模型。《原神》的材质系统基于Unity的Standard或URP Shader与《骑砍2》的材质系统不兼容。我们需要在Blender中创建一套符合《骑砍2》预期的简单材质。创建材质在材质属性中为武器网格新建一个材质。名称可以起得直观些如weapon_metal。连接贴图在着色器编辑器Shader Editor中将工作区切换到Shader Editor。删除默认的原理化BSDF节点我们需要一个更简单的设置。添加一个Image Texture节点打开从《原神》提取的主纹理贴图通常是Albedo/Diffuse贴图负责颜色。将其颜色输出连接到Principled BSDF节点的Base Color。如果你有法线贴图Normal Map再添加一个Image Texture节点载入并将其颜色输出连接到一个Normal Map节点再将Normal Map节点的输出连接到Principled BSDF的Normal输入。简化材质《骑砍2》的引擎材质相对古老。实际上在通过Cats插件导出时它会处理材质转换。因此在Blender中我们只需确保漫反射贴图颜色和法线贴图正确连接即可。高光、金属度等复杂PBR属性在导入《骑砍2》后可能需要通过引擎内的材质参数再次调整。一个务实的做法是在Blender中只使用漫反射贴图确保模型有基本颜色即可。实操心得很多时候《原神》的武器贴图是包含颜色、金属度、粗糙度等信息的PBR贴图集。如果找不到单独的法线贴图可以尝试在AssetStudio中导出时留意贴图类型或者使用图像处理软件如Materialize从颜色贴图生成一个简单的法线贴图这能极大增强模型在《骑砍2》中的体积感。4. 格式转换与导出生成骑砍2引擎的.brf文件模型处理干净后下一步就是将其转换成《骑砍2》的专有格式。这里的主角是之前安装的Cats Blender Plugin。### 4.1 使用Cats插件进行模型检查与修复在Blender的侧边栏按N键找到Cats插件面板。它有一系列功能标签页。首先点击“模型检查”Cats会自动扫描当前场景中的模型报告可能的问题如非法形状、重复顶点、缺失材质等。根据报告逐一修复Cats通常提供一键修复按钮。确保没有严重错误否则导出后可能在游戏中崩溃或隐形。### 4.2 设置导出参数与生成BRF/BRF这是通往成功的临门一脚。在Cats插件的“导出”标签页中进行如下关键设置导出路径选择一个清晰的文件夹最好就在你的Mod项目文件夹内如MyCustomWeaponMod/SceneObj/。文件格式选择BRF/BRF。这是《骑砍2》引擎Vortex使用的模型容器格式一个.brf文件可以包含多个模型、材质和骨骼虽然我们这里只用静态网格。模型名称给你的武器模型起一个唯一的、易于识别的名字例如my_mistsplitter。这个名字将在后续的XML定义文件中引用。导出选项勾选“导出选中的物体”。确保在3D视图中只选中了你的武器网格及其父级空物体如果有的话。LOD细节层次设置对于武器这种小物件通常只需要一个LODLOD0即可。你可以在Cats的“LOD”标签页中生成简单的LOD但非必须。材质导出确保Cats能识别到你赋予模型的材质。它会在.brf文件中创建对应的材质定义。点击“导出”按钮。如果一切顺利你会在目标文件夹下得到一个.brf文件和一个同名的.brf文件有时只有.brf。.brf是文本格式的定义文件.brf是二进制模型数据。两者都需要。### 4.3 常见导出失败问题排查如果导出失败或导出的模型在游戏中无法加载请按以下步骤排查模型尺度确保模型大小符合《骑砍2》的常识。一个单手剑的长度在Blender中大概在1.0到1.5个单位米之间。如果模型太小如0.01在游戏中会看不见。在导出前在物体模式下选中模型按CtrlA-应用缩放确保缩放比例是1:1:1。原点位置模型的原点那个橙色小点决定了它在游戏中被持握时的旋转中心。对于武器原点通常应该位于握柄的末端即角色手部握住的位置。你可以选中模型按ShiftS-游标到选中项将3D游标移动到握柄末端然后右键模型 -设置原点-原点到3D游标。面数过高《原神》的模型面数对于手机/PC游戏是优化的但对于《骑砍2》的战场千人同屏环境可能仍然偏高。如果面数超过2万三角面考虑使用Blender的Decimate精简修改器适当降低面数特别是对看不到的细节部分。材质路径Cats导出时贴图路径可能是绝对路径。最好将使用的贴图文件.png复制到你的Mod项目文件夹内如Textures/子目录并在Blender材质中使用相对路径重新链接避免因路径丢失导致模型在别人电脑上显示为紫色缺失贴图。5. 在《骑砍2》中创建与测试新武器模型文件准备就绪后最后一步是在游戏中“声明”这件新武器并把它放到世界里。### 5.1 编写物品XML定义文件在你的Mod项目的ModuleData/Items/目录下创建一个XML文件例如my_weapons.xml。内容结构如下Items Item Idmy_mistsplitter/Id Name雾切之回光/Name MeshNamemy_mistsplitter/MeshName !-- 必须与.brf文件中的模型名一致 -- ItemFlags ItemFlagForceAttachOffHandPrimaryItemBone/ItemFlag !-- 强制附着在副手左手的主物品骨骼上对于单手剑是必要的 -- ItemFlagCivilian/ItemFlag !-- 非战斗时也可显示 -- /ItemFlags ItemCategorySword/ItemCategory !-- 物品类别剑 -- CultureEmpire/Culture !-- 文化影响商店出现概率 -- Weight1.5/Weight !-- 重量 -- Difficulty0/Difficulty !-- 难度 -- Appearance MeshNamemy_mistsplitter/MeshName MaterialNamemy_mistsplitter_mat/MaterialName !-- 材质名与.brf中定义一致 -- BodyNamemy_mistsplitter/BodyName /Appearance WeaponDescription WeaponFlags WeaponFlagMeleeWeapon/WeaponFlag WeaponFlagHasHitPoints/WeaponFlag /WeaponFlags WeaponClassOneHandedSword/WeaponClass !-- 武器类单手剑 -- ItemLength100/ItemLength !-- 长度 -- SwingDamage80/SwingDamage !-- 挥砍伤害 -- SwingDamageTypeCut/SwingDamageType ThrustDamage40/ThrustDamage !-- 刺击伤害 -- ThrustDamageTypePierce/ThrustDamageType HandPosition5/HandPosition !-- 手持位置偏移 -- WeaponBladeData WeaponBladeLength80/WeaponBladeLength !-- 刃长 -- /WeaponBladeData /WeaponDescription /Item /Items这是一个最基础的单手剑定义。你需要根据武器类型双手剑、长杆等修改WeaponClass和对应的WeaponFlags。所有数值伤害、长度、重量都需要你根据《骑砍2》的平衡性进行合理设定可以参考游戏原版武器文件位于官方Mod开发工具的Native模块内。### 5.2 修改SubModule.xml并构建Mod回到Mod根目录编辑SubModule.xml文件确保它引用了你新建的物品XML文件。在Xmls节点下添加XmlNode XmlNameItems/XmlName XmlPathModuleData/Items/my_weapons.xml/XmlPath /XmlNode同时在Scenes节点下如果没有就创建添加你的模型文件Scene SceneNamemy_weapon_brf/SceneName ScenePathSceneObj/my_weapon.brf/ScenePath !-- 注意是.brf文件 -- /Scene现在你的Mod文件夹应该包含了所有必要文件。使用《骑砍2》启动器在“Mods”页面确保你的Mod被勾选并注意加载顺序你的Mod应放在依赖的模块如Native,SandBoxCore等之后。### 5.3 游戏内测试与调试启动游戏进入自定义战斗或战役模式。要获取你的新武器有几种方式控制台在战场上按Ctrl~打开控制台输入campaign.add_item my_mistsplitter 1给你的角色添加一把。Mod菜单一些第三方Mod如Developer Console或My Little Warband提供了更友好的物品添加界面。商店购买如果你正确设置了Culture和Price它可能会随机出现在对应文化的商店中。测试时重点关注模型显示武器是否正常出现在角色手上、背上或腰间大小比例是否协调贴图与材质颜色、光泽是否正常有没有出现亮紫色缺失贴图或纯黑法线/材质错误碰撞与攻击挥砍时武器的视觉模型与实际的攻击判定框由XML中的ItemLength和WeaponBladeLength部分定义是否匹配会不会出现“空气剑”或“剑未到人已飞”的情况性能在大量单位出现的场景中帧数是否有明显下降如果下降严重可能需要返回Blender进一步优化模型面数。这个过程可能需要多次“修改-导出-测试”的循环。每次修改XML后可能需要重启游戏或重新加载存档才能生效。而修改模型.brf后通常需要重启游戏。6. 进阶技巧与深度优化当你成功导入第一把武器后可能会追求更好的效果和更高效的流程。这里分享一些进阶经验。### 6.1 多部件武器的处理与装配有些《原神》武器比如“弓”是由弓身和弓弦等多个部分组成的。在Blender中你可以将这些部分保持为独立的网格对象但将它们设为同一个父级空物体的子项。在导出时选中父级空物体Cats插件会将其下的所有网格一并导出为一个完整的模型。在XML中仍然只引用这个父级模型的名字即可。游戏引擎会将其作为一个整体来渲染和计算。### 6.2 法线贴图与高光效果的增强《骑砍2》的渲染引擎虽然不支持完整的PBR但对法线贴图和简单的高光贴图Specular Map有很好的支持。为了让你导入的武器更有质感法线贴图如前所述务必使用或生成一张法线贴图。在Blender材质中正确连接并在Cats导出时确保材质设置包含了法线信息。高光贴图你可以利用《原神》提取的贴图中可能包含的“粗糙度贴图”或“高光贴图”通道。在Photoshop或类似软件中将其处理成一张灰度图作为高光贴图。在《骑砍2》的材质系统通过MaterialName在更复杂的材质定义文件中配置中可以引用这张贴图来控制武器不同部位的反光强度让金属刃口更亮木质握柄更暗哑。### 6.3 批量处理与自动化脚本思路如果你计划导入多把武器手动重复上述流程非常耗时。可以考虑以下自动化方法Blender批量处理为清理模型、应用缩放、设置原点等操作录制宏Macro或编写简单的Python脚本对一批导入的FBX文件自动执行。XML生成使用Python或Excel模板根据一个武器属性列表名称、伤害、长度等批量生成my_weapons.xml文件内容避免手动编写容易出错。材质模板在Blender中创建一个预设的材质节点组包含漫反射、法线、高光贴图的输入接口。每导入一个新武器模型只需替换这个节点组中的贴图即可无需重新连接所有节点。### 6.4 从模型到完整Mod的扩展一把武器只是一个开始。一个完整的武器Mod可能包含多级锻造通过修改SmithingTemplate相关的XML让你的武器可以在铁匠铺被锻造和升级。独特技能或效果这需要更深入的Modding知识可能涉及修改Mission脚本或使用Bannerlords TaleWorlds scripting system为武器添加特殊的被动效果或战斗技能。添加到特定兵种或商店修改NPCCharacters或Merchants的XML文件让某些兵种默认装备你的武器或让它在特定地区的商店有更高出现概率。整个从《原神》抓取模型到《骑砍2》可用的过程是一次对3D游戏资产管道、模型处理规范和特定游戏引擎集成方式的深度实践。它要求你兼具“黑客”般的探索精神解包、逆向、“工匠”般的细致耐心模型清理、调试和“设计师”般的平衡感游戏内参数调整。最大的成就感莫过于在卡拉迪亚的战场上看到自己亲手移植的、带着异世界风格的武器熠生辉。这个过程学到的技能远不止于这两款游戏它为你打开了一扇通往3D游戏Mod制作乃至自制游戏内容的大门。