替换骨骼网格体
替换 Skeletal Mesh(骨骼网格体,简称 SK)与替换静态网格体类似,但还需要绘制骨骼权重,并在 Unreal Engine 中匹配骨架和物理资源。本指南通过 Blender 和 UE 介绍基本流程。
准备 Blender 和 io_scene_psk_psa 插件,用于导入 FModel 或 UModel 导出的 .psk 文件。Blender 也可通过 Steam 获取。选择适合的插件版本并遵循仓库说明;原作者使用的是 Blender 3 的旧版插件,界面可能不同。
导出并导入原模型
在 FModel 中找到目标模型,导出为 .psk。
使用 Blender 插件导入时不要缩小模型。导入后,SK 网格位于 Armature 对象内。
准备新模型
将新模型导入同一项目,调整缩放和旋转,使其尽量接近原模型。原例使用 Sketchfab 的骑士模型。
尽可能对齐两个网格,减少动画中的异常变形。若新模型已有骨架,可在 Pose 模式下移动骨骼;如果没有骨架,可先尝试自动绑定、使用 Mixamo,或在 Edit 模式下手动移动顶点。
对于已绑定骨架的新模型,完成对齐后应用 Armature 的改动,将当前姿势设为默认姿势。
选中新网格,右键选择 Parent → Clear and Keep Transformation,解除与新模型骨架的关联,再删除新模型的 Armature。
在将新网格绑定到原 Armature 之前,移除新网格已有的 Vertex Groups,避免出现重叠或无关的骨骼组。
处理 UV Map
完全替换网格时,这一步可选;将新网格合并进现有网格时则很重要。检查原网格 UV Map 的名称,通常为 UV_SINGLE。回到新网格,删除第一项以外的 UV Map,并将保留项重命名为与原网格完全一致。
绑定并绘制权重
先选中新网格,再选择原网格的 Armature,右键选择 Parent → With Empty Groups,使新网格继承原骨架的顶点组。
将 Armature 对象命名为 Armature。原指南强调,遗漏此名称可能导致导入 UE 后骨架结构与原模型不一致,进而破坏动画。
切换到 Weight Paint 模式,逐一选择 Vertex Group,为每个骨骼绘制权重,尽量接近原模型。可以另外打开一个 Blender 窗口,在原模型上查看同一骨骼的权重,作为比例和强度的参考。完成后进入 Pose 模式,移动各骨骼检查网格是否按预期变形。
准备占位材质
原指南建议创建占位材质,避免游戏运行时替换网格材质;仅在确认材质不会在运行时变化时才跳过。先在 FModel 中查看原网格使用的材质数量。原例有三个,因此新建三个材质,将它们放在列表最前面,自定义模型材质排在后面。
每个材质至少要分配一个面,否则 Unreal Engine 会忽略它。原例在网格内部挤出几次,再逐个选择生成的面,并通过 Assign 分配给占位材质。
检查并导出 FBX
不要调整或移动原始骨架;确认 Armature 名称、网格对齐、材质顺序、UV Map 和权重都正确。材质列表的顺序比名称更重要,并应在导出前通过 Pose 模式测试。
导出 FBX 时将缩放设为 0.01,其余设置可参考原例。
导入 Unreal Engine
在 UE 项目中创建与原 SK 路径相同的文件夹,把 FBX 拖入并选择 Import All。将 Skeletal Mesh 的名称改为与游戏文件完全一致。
如果原 SK 使用 ShadowPhysics,可复制导入时生成的 PhysicsAsset,将副本命名为游戏中的 ShadowPhysics 名称。双击 SK,找到相应槽位并拖入副本;没有此资源的游戏可跳过。名称可在 FModel 中打开原 SK 查看。
导入时生成的 Skeleton 和 PhysicsAsset 也必须匹配游戏文件。使用 FModel 查看名称和路径,在项目中创建相应目录,重命名并移动这些资源;ShadowPhysics 如有,也需同样处理。
准备材质与纹理
材质处理方式因游戏和资源而异。可以创建普通 Material,将纹理连接到材质节点,例如将纹理连接到 Base Color;还可使用 ORM 和法线纹理改善效果。
普通材质无效时,可尝试匹配原始材质的设置;仍无效则尝试复刻 Material Instance。
打包前检查资源名称、Skeleton 和 PhysicsAsset 路径,以及材质和纹理。可按常见命名规范整理材质和纹理,方便维护。
打包和测试
只打包新的 SK 及其使用的材质和纹理,不要打包 Skeleton、PhysicsAsset 或 ShadowAsset。UE4 可使用 UnrealPak 或 Chunk;UE5 通常使用 Chunk,游戏不使用 IoStore 时可另行处理。详见烘焙内容指南,Mod 名称中记得包含 _P。