多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Baldur‘s Gate 3 武器建模实战:Skyrim 匕首与刀鞘移植、`Dummy_Sheath` 挂鞘骨骼修正与 Patch 8 可见背盾批量生成

Baldur‘s Gate 3 武器建模实战:Skyrim 匕首与刀鞘移植、`Dummy_Sheath` 挂鞘骨骼修正与 Patch 8 可见背盾批量生成 【免费下载链接】universal-modderPoint Claude at any game. Skills, tools and the fal MCP that let Claude Code mod almost any PC game you own: recon, reverse engineering, fal-generated art/3D/audio, in-game testing, showcase videos.项目地址https://gitcode.com/gh_mirrors/un/universal-modder点击查看免费下载本文是 universal-modder 知识库knowledge/中一份 BG3 武器类 field note 的深度展开。它记录了同一个个人模组中的三项武器任务把 Skyrim SE 的匕首与刀鞘移植成可用的 BG3 匕首 佩戴刀鞘用Dummy_Sheath骨骼修正模组长剑的挂鞘高度而不影响手持握姿以及一个批量生成器把三个模组的 144 面盾牌转换为 Patch 8 下收起时可见的形态。读完你将掌握 BG3 武器 GR2 的挂点机制EquipmentTypes.lsx↔ 武器内骨骼、NIF/DAE/glTF/GR2 转换链路、以及纯数据包的资产级asset-only武器改造方法论包括 14 条可复用的坑位清单。一、任务总览一个模组里的三项武器工作这份记录来自一次真实的个人向模组制作共三部分Skyrim 匕首移植来自 Danp 的 Skyrim SE 模组 Hravna - Dagger of the North个人使用中的匕首与刀鞘被制作为一把可用的 BG3 匕首外加一条佩戴在臀部的刀鞘——位置正好落在收鞘匕首的落点并以 wesslen 的 BG3 模组 Modular Equipment 中的 Bandit 腰带作为刀鞘背带。模组长剑挂鞘修正来自 onyx、naerys、mons 的 BG3 模组 Falazure (Clothing and Light Armor) 中的 Deathwyrm 长剑被放大 25%并加入一根Dummy_Sheath骨骼使它在收鞘时挂得更高同时完全不改变手持时的握姿。可见背盾生成器一个生成的补丁把三个模组的 144 面盾牌转换为社区模组在 Patch 8 上使用的收起时可见形态。验证情况匕首、刀鞘、长剑以及三个盾牌模组中两个的转换盾牌均已由人类在游戏中确认第三个模组随机掉落的盾牌未在游戏内实测。整份记录的状态为status: working运行环境为 Steam / Windows 10front matter 见原文档。二、环境与工具链Setup准确的版本记录是这份知识库笔记最有价值的部分knowledge/README.md 明确要求写版本别写 latest用途工具与版本关键说明NIF 导入Blender 3.6 LTS blender_niftools_addon0.1.1不能在 Blender 4.x 中运行便携版 3.6 构建会以STATUS_DLL_NOT_FOUNDVC 运行时缺失失败MSI 安装版可用BG3 导出Blender 4.0.2 Norbyte dos2de_collada_exporter姐妹笔记 custom-outfits-visuals-materials-cloth-icons.md 提到该插件偏好设置里的lslib_path指向Divine.exe模型转换LSLibDivine.exe1.20.4convert-model在 GR2、DAE、glTF 之间互转-o gltf/-i gltf纹理texconvMicrosoft DirectXTexSkyrim DDS → BC1 basecolor with mips脚本PythonglTF 与 lsx 编辑参考资产Blender Weapon TemplatesNexus 11600、原版WPN_HUM_Dagger_A_*.GR2、WPN_HUM_Longsword_A_0.GR2、HUM_F_Base.GR2后者是完整 120 骨骼角色骨架原版数据来源刀鞘/长剑工作发生在 Patch 7 时代2026-04长剑与盾牌在 Patch 8 hotfix2026-08游戏均为 Steam、Windows、单人anti_cheat: none。源模组清单文中已注明作者与出处Hravna - Dagger of the NorthSkyrim SEDanp使用其 SE 构建DanpHravnaDagger.esp从中取匕首与刀鞘网格。Falazure (Clothing and Light Armor)BG3onyx / naerys / monsDeathwyrm 是其长剑。Modular EquipmentBG3wesslen取 Bandit 腰带网格HUM_F_ARM_Bandit_D_Body_Belt_B_MEQ_ForCorsetE作为刀鞘背带。三、路线选择为什么是asset-only该笔记的 route 字段是asset-only在 pak 中提供新的 GR2、视觉资源、材质、根模板root template和 stats不涉及任何注入或脚本框架。为什么不直接改EquipmentTypes.lsx来调整挂鞘位置原因很关键该文件按武器类型type定义挂点改一处会影响该类型的所有武器。因此逐件物品的挂鞘修正必须写进武器自己的 GR2。另一个设计事实BG3 没有刀鞘网格类型——刀鞘在游戏里就是一个穿戴物worn item这也是下文把刀鞘做成贴身穿戴件的原因。四、游戏机制BG3 武器挂鞘到底怎么工作4.1EquipmentTypes.lsx一次挂载的两侧定义EquipmentTypes.lsx按武器类型同时持有拔出/收起两个方向的挂点BoneMainUnsheathed手持时的角色骨骼即Dummy_R_HandBoneMainSheathed收起时的角色骨骼如Dummy_Sheath_Upper_R、Dummy_Sheath_Hip_LSourceBoneSheathed Dummy_Sheath这是武器自身 GR2 内部的一根骨骼只在收起时使用。机制推论原文明确没有Dummy_Sheath的武器 GR2 在拔出和收起两种姿态下都挂在自身原点握柄上因此对网格做平移会连手持握姿一起移动有了这根骨骼移动骨骼只影响收起姿态。原版匕首已经挂在臀部Dummy_Sheath_Hip_L/_R。同一文件中的WeaponType_OneHanded/WeaponType_TwoHanded决定动画集。只改骨骼的臀部挂鞘类改动是动画无关的但笔记提到有人把细剑类型Piercing1H → Small1H重定型结果改变了武器的握持与姿态——提醒你动 type 字段要谨慎。4.2 角色骨架挂点到底在哪根骨骼下身体网格 GR2 携带 82 根形变骨骼HUM_F_Base.GR2则有 120 根包含各鞘位 dummy。Dummy_Sheath_Hip_L的父骨骼是Root_M骨盆在 Blender 世界空间中大约位于 (0.194, -0.002, 1.073)不是挂在会随腿摆动的Hip_L大腿骨下。这个细节直接决定了刀鞘该绑定到哪根骨骼见下文构建步骤与坑位 4。4.3 什么形状的武器 GR2 能渲染原版长剑root dummy Dummy_Sheath、Dummy_Sheath_Versatile、Dummy_Attachment、FX dummies外加网格与 LOD tier 0–4。无骨骼的模组长剑一个网格、模型节点Unnamed、0 关节、1 个几何体。两者都能渲染但用--conform-path做出来的杂交GR2 渲染不出来见坑位 6。4.4 视觉资源模板Template GR2 路径.模型节点名.0视觉资源VisualBank中的Template是GR2 路径.模型节点名.0而模型节点名是 GR2 里的真实字符串。无骨骼网格经 DAE→GR2 时Divine 会记录Generating dummy skeleton for model Unnamed在 glTF 中同名位于scenes[0].extensions.EXT_lslib_profile.ModelName。这条机制是排查节点名不一致导致模板悬空的关键坑位 7。4.5 Patch 8 与盾牌可见性Patch 8 会忽略盾牌Shield类型根模板中的鞘骨字段——老 Visible Shield 模组作者如此说明本项目的实测也一致。因此想通过编辑EquipmentTypes让收起盾牌可见是行不通的。社区 Visible Shields for Patch 8 的替代方案把每面盾牌重新签发为副手武器type Weapon、using WPN_Dagger、Slot Melee Offhand Weapon、AC(2)通过ItemCombination用真实盾牌 工具道具合成出转换后的可见版本并把原版被动passive打补丁以接受HasVisibleShieldEquipped()。关键理解转换物品的根模板仍然留在盾牌家族只有 stats 让它成为武器——视觉、图标、名称全部继承原盾牌。五、构建步骤Build steps5.1 Skyrim 匕首与刀鞘移植在 Blender 3.6 中导入 NIF。NIF 内含KnifeBlade01_low刀身、Scb刀鞘、血渍贴图网格和一个包围盒。缩放后分别把刀身与刀鞘导出为 FBX。按测量结果缩放而不是用网传系数与原版匕首长度WPN_HUM_Dagger_A_2为 0.594 m对比。常被引用的 0.0142875 系数在这个模组上只得到 5 cm 的刀刃约 0.156 才匹配最终由人类肉眼定稿尺寸。在 Blender 4.0 中把刀身换入武器模板的匕首骨架所有顶点以 1.0 权重绑到根骨骼Dummy_WPN_HUM_Dagger_A_2对骨骼armature和网格都要应用全部变换Apply All Transforms再导出。可选--conform-path到原版供体先把网格重命名为供体的网格名WPN_HUM_Dagger_A_2_Mesh并选择根骨骼与你的蒙皮目标一致的供体。纹理与资源链Skyrim_d.dds→ BC1 basecolor 带 mip材质从可工作的武器材质克隆视觉资源从可工作的武器视觉克隆根模板父级parent到原版匕首基础stats 用using WPN_Dagger。刀鞘作为穿戴物父级到 HUM_F 骨架100% 权重绑到Root_M这样它随收鞘匕首一起动放到Dummy_Sheath_Hip_L位置的空物体Empty上对齐应用变换把网格重命名为HUM_F_NKD_Body_A_Mesh并对齐HUM_F_NKD_Body_A.GR2。之后人类经过多轮导出-查看微调位置。背带Modular Equipment 的 Bandit 腰带以同样方式加进同一穿戴物。5.2 提升模组长剑的收鞘位置把武器 GR2 转成 DAE 或 glTF找Dummy_Sheath。这把模组剑没有。数值缩放直接乘 DAE 的POSITION浮点数为 1.25保持文件结构完全不变。GR2 → glTF在模型根下把Dummy_Sheath加为网格节点的兄弟节点sibling给网格一个最小皮肤JOINTS_0全 0、WEIGHTS_0全[1,0,0,0]、逆绑定为单位矩阵因为LSLib 无法导入无皮肤的 glTF保持ModelName不变glTF → GR2。收起时网格会按骨骼局部平移的负值移动骨骼 Z 为 -0.10 就把剑沿自身轴抬升 0.10。沿剑刃轴移动会同时产生向上 朝柄方向的效果在倾斜的剑上做垂直移动也能增加高度。验证转回 glTF读取骨骼平移量并核对顶点包围盒应保持不变。5.3 钢饰变体金饰长剑的纹理重着色该剑的三个材质只绑定普通 basecolor/normal/physical 贴图、无颜色参数金色是烘焙进贴图的。先量化哪些贴图携带金色护手 29% 像素、握柄 7%、剑刃 0%只重着色这些 basecolor 贴图normal 与 physical 保持原样。在 HSV 上只对暖色、高饱和像素操作把色相**吸附snap**到钢色只混合饱和度。若从金色~0.12向蓝色~0.58插值色相会经过绿色把半混合像素染脏。金色饰边与剑刃亮度完全相同、仅靠色相区分因此中性重着色必须明显更暗value 增益约 0.66才能被读作独立部件。加深凹陷围绕中位数拉伸 value 对比度。注意 BC1 源在该区域只有约 21 个独立 value 级别硬拉伸会形成 4×4 块状色带先对 value 通道轻微模糊再抖动dither。DDS 写成与源完全一致此处 BC1、2048×2048、12 mips纹理库中保持SRGBTrue用新的 UUID克隆整条链纹理、材质、视觉、根模板statsusing原武器从而保留全部被动。注意克隆资源若保留原 ID会覆盖原物品的资产。对比预览时使用固定裁剪区域每次渲染自动挑选最有趣区域会让未修改的原版在不同预览间显得不同。5.4 可见盾牌生成器为其他模组的盾牌生成补丁提取每个候选盾牌的 stats只有解析后落到using _Shield/ARM_Shield*护甲条目的才需要转换。已经以type Weapon副手槽发布的盾牌模组无需任何处理。每面盾牌生成一个武器 stats 条目复制其 AC、稀有度、重量、增益与被动一个根模板父级指向原盾牌的根模板继承视觉、图标、名称仅当源设置了可选属性时才复制一个正向ItemCombination盾牌 工具 → 可见版本与一个反向组合还原原盾牌。固定模组 UUID 与确定性deterministic的逐物品 UUIDmeta.lsx带空的Dependencies节点加载顺序在所有源模组之后、且排在 Patch 8 基础模组之后因为补丁要 parent 到它们的模板。六、验证Verification匕首手持正确、收鞘挂在臀部刀鞘经多轮导出-查看后人类确认为完美对齐绑定Root_M的成果。长剑以 1.25 倍渲染收鞘位置被骨骼偏移抬起并移出护甲手持握姿不变人类确认完美。盾牌共生成 144 个转换43 3 来自两个盾牌模组98 来自随机掉落模组每个 stats 名称、根模板 MapKey、组合名称均唯一pak 可加载在修复坑位 14 的meta.lsx之后。人类在游玩中转换并使用过两个盾牌模组的盾牌能工作且收起时可见。未实测随机掉落模组的 98 面其根模板的视觉还要再向上继承一层。七、坑位清单Gotchas症状 → 原因 → 修复这份笔记最值钱的部分。以下 14 条全部来自原文档武器或刀鞘平躺在地板上像风向袋一样跟着角色飘。原因骨骼导入时旋转了 90 度且只有网格应用了变换。修复导出前对骨骼和网格都执行 CtrlA → All Transforms。刀鞘出现在角色身后很远、且在地下。原因物体位置设到了臀部坐标但未应用皮肤变换把偏移又加了一次。修复应用位置apply location让顶点持有坐标、物体位于原点。刀鞘挂错臀部。导出时 X 轴会相对预期镜像对这个网格Blender 的 X 落在角色左臀。bmesh顶点镜像脚本静默地没有生效改用scale(-1,1,1)、应用、并翻转法线。先实测一次确定方位之后保持不变。走路时刀鞘与收鞘刀刃互相漂移。原因刀鞘绑到了Hip_L大腿骨而刀刃挂在Root_M下的Dummy_Sheath_Hip_L。修复刀鞘改绑Root_M。conform 后匕首消失。原因供体..._A_0根骨骼是Dummy_WPN_HUM_Dagger_A_0而网格绑在..._A_2conform 替换了骨架权重指向了不存在的东西。另外网格名必须与供体网格名一致否则 conform 直接报错No matching mesh found。为借一根骨骼把长剑 conform 到原版长剑后剑消失。原因conform 会嫁接供体的整套骨架与布局0 关节/1 几何体变成了 45 关节/11 几何体引擎什么都不画。修复保持能渲染的 GR2 的结构单根骨骼改走 glTF 添加。在 DAE 里加Dummy_SheathJOINT 后剑消失。原因Divine 丢弃了关节日志 Imported rigid mesh却把它的名字用作了模型节点导致Template ...Unnamed.0悬空往返检查显示 0 关节、看起来正常。修复拿工作副本对比 GR2 的字符串名bUnnamed in data骨骼一律走 glTF。骨骼移动了手持姿态而不是收鞘姿态。原因原版把网格父级挂在Dummy_Sheath下在这种层级里偏移在收鞘时被抵消。修复让Dummy_Sheath成为兄弟节点。Blender 的 Collada 导入器把刀刃轴 Z→Y 旋转还丢弃了用作骨骼的 Empty。对刚性武器数值编辑 DAE/glTF不要经过 Blender 往返。conform 后武器在远处消失。原因conform 后的 GR2 继承了供体非零的 LOD 距离与 LOD 槽作为 1 顶点桩而视觉资源只声明了 LOD 0。修复声明 GR2 拥有的全部 tier并把每个 tier 指向基础网格。物品在游戏中完全缺失、且无报错。原因手写的可读GUIDe207dw01-...里w不是十六进制字符。打包、转换、交叉引用都干净通过。修复打包前用正则门禁regex-gate检查每个 GUID。装了可见盾牌模组后收起盾牌仍然不可见。原因Patch 8见 4.5。另基础模组的反向组合会再次返回转换后的物品没有回头路且它对另一个装备模组的补丁在该模组未安装时无效。生成器在一个有 101 面盾牌的模组里找到 0 面。原因它要求显式的VisualTemplate但那些根模板是从父级继承的。修复父级指向源模板、让它继承。生成的补丁让 BG3 启动时清空整个加载顺序。原因其meta.lsx中UUID类型写成guid而非FixedString、LSString而非LSWString、缺少GMTemplate且手填了Dependencies块把显示名当文件夹、空 MD5、假定的Version64。修复复制一个工作模组的meta.lsx把Dependencies留空它不影响加载顺序。八、资产、未解问题与知识库定位资产纹理来自 Skyrim 模组HravnaDanp用 texconv 转换BC1 basecolor 带 mipsnormal 贴图推迟处理。未生成任何新美术。未解问题能否不借助 Script Extender让独立的仅收鞘时显示刀鞘网格随武器状态显隐本项目把刀鞘保留为常显的穿戴物。这份笔记在仓库中的定位它是 universal-modder 知识库的 游戏笔记索引78 篇游戏笔记之一中的一份asset-only路线记录遵循 field note 模板 的骨架Setup / Route and why / How the game works / Build steps / Verification / Gotchas / Assets。与它互补的 BG3 姊妹笔记还包括 custom-outfits-visuals-materials-cloth-icons.md视觉/材质/纹理链路的完整字段说明、gameplay-and-compatibility-patches-stats-osiris.mdstats 与被动补丁、managing-a-500-mod-load-order-by-hand.md加载顺序与modsettings.lsx以及 act-2-load-hang-one-bad-level-layer.mdpak 二分定位。如果你在本地克隆了仓库可以用知识库自带工具直接检索这类笔记knowledge/README.mdum kb search baldurs gate 3 # 按游戏搜索 um kb show games/baldur-s-gate-3/weapons-skyrim-dagger-port-sheath-bone-visible-shields.md按 引擎速查表 的 Larian 章节BG3 的官方 mod.io 工具链 Norbyte Script ExtenderLua LSLib / BG3 Modders Multitool.pak是生态的标准组合而本笔记展示的是纯资产、无需 Script Extender的替代路径——对挂鞘这类逐物品修正而言武器自身 GR2 内的Dummy_Sheath骨骼才是正确的作用点。赞分享【免费下载链接】universal-modderPoint Claude at any game. Skills, tools and the fal MCP that let Claude Code mod almost any PC game you own: recon, reverse engineering, fal-generated art/3D/audio, in-game testing, showcase videos.项目地址https://gitcode.com/gh_mirrors/un/universal-modder点击查看免费下载相关推荐Baldurs Gate 3 Script ExtenderBG3SE配置与构建实战指南Baldurs Gate 3 Script ExtenderBG3SE配置与构建实战指南 本文以 BG3SENorbytes Baldurs Gat游戏开发开发工具5分钟快速上手TVBoxOSC电视盒子智能控制完整指南5分钟快速上手TVBoxOSC电视盒子智能控制完整指南 还在为电视遥控器丢失而烦恼TVBoxOSC让您的手机瞬间变身万能电视遥控器实现智能家居控制的终极体Godot 骨骼空间修正器 BoneSpaceAdjuster3D 详解让皮肤缩放与子骨骼位置完美同步Godot 骨骼空间修正器 BoneSpaceAdjuster3D 详解让皮肤缩放与子骨骼位置完美同步 导读 BoneSpaceAdjuster3D 是 Go文档教程游戏开发上一篇Gallium项目推荐下一篇PrometheusAlert入门指南如何快速搭建企业级运维告警中心创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表