基础知识
理解文件结构
Section titled “理解文件结构”当你在虚幻引擎5创建项目时,项目将被保存到一个目录里。这个目录将作为一个项目。举个例子: <SaveDirectory>/<ProjectName>/…。
<ProjectName> 保存了 虚幻引擎5 项目的所有内容。在那个项目文件夹里,有一个文件夹叫做 Content。这个文件夹存放了某个游戏的所有资产和蓝图。
对于 Ready or Not 来说,项目名字就是 ReadyOrNot。在那个文件夹里,有个叫 Content 的文件夹。再说一次,这里面存放了游戏的所有东西,
除了配置文件。然而,当你在 UModel 里打开游戏文件时,这里可能不会有 Content 文件夹,而是 Game 文件夹。
当你在给模组打包成 .pak 时,应该把 Game 替换为 Content。里面的其他子文件夹保持不变。
在制作模组时,你所做的大部分工作都是在 Content 文件夹下完成的。如果某个你想覆写的文件位于 .../ReadyOrNot/Game/ReadyOrNot/Assets/Weapons/Python,那么你要复制的文件夹路径就是 .../Content/ReadyOrNot/Assets/Weapons/Python。
在制作模组的时候你可能会遇到很多不同的文件格式。以下列出了大部分和对应的解释。
- .psk - 骨骼网格体或静态网格体,可能会包含骨骼。
- .psa - 某个网格体的动画。
- .uasset - 两种可能
- 原始的 .uasset 文件是 UE5 项目烘焙后产生的。
- UE5 的 .uasset 文件是直接从某个 UE5 项目中拿到的,这些文件未被烘焙,可以直接在项目间转移。
- .uexp - .uasset 文件的补充,通常包含了导入导出的映射信息。
- .ubulk - UE5 使用的另一种数据存储格式。
- .umap - 一个关卡/地图文件,类似 .uasset,也有已烘焙和未烘焙版本。
提取游戏文件
Section titled “提取游戏文件”提取游戏文件主要有三种方式,有一些不同:
-
FModel 对于 UE5 及以上的引擎版本支持最好,但是需要一些手动配置和 RoN 专用映射文件 (参阅 Mappings)。 FModel 可以保存原始的已烘焙内容,可以在 UAssetGUI 之类的软件中编辑,也可以导出其他资源以供编辑,比如材质、静态网格体、骨骼网格体。
-
UModel 可以导出非原始文件,让你能够访问材质、模型和动画等。若要使用,用它打开 Ready or Not 的 .pak 文件所在地:
<游戏安装位置>\Ready Or Not\ReadyOrNot\Content\Paks。加载之后你就可以导出文件了。 -
手动解包。只需要简单地设置一个解包批处理脚本。使用这种方法只能解压原始已烘焙文件。
-
在你的 Unreal Pak(在 虚幻引擎5 安装位置下)位置新建一个 .bat 文件。位置通常在
<InstallLocation>\UE_5.3\Engine\Binaries\Win64\UnrealPak.exe。 -
在 .bat 文件中,粘贴如下内容并保存:
unpak.bat @if "%~1"=="" goto skip@setlocal enableextensions@pushd %~dp0md "%~dpn1\".\UnrealPak.exe %1 -extract "%~dpn1\\" -extracttomountpoint@popd@pause:skip -
把你要解包的 .pak 文件拖拽到刚新建的脚本上,比如
pakchunk0-Windows.pak。解压后的文件与 .pak 文件同目录,会出现一个新文件夹。
-
烘焙已编辑的文件
Section titled “烘焙已编辑的文件”为了覆盖游戏的某个资产,或者添加新内容,新文件必须是游戏可以识别的格式。使用 UModel 解压出来的文件可以轻松编辑,但是不能被游戏识别。 你需要先烘焙它们,才能打包这些文件。
- 安装最新版本的 虚幻引擎5.3。目前最新版本是
5.3.2 - 把所有你想要打包到模组里的文件全部导入到一个新的空白项目里。其他模板也能用,但是会导致烘焙时间显著变长。
- 找到
File > Cook Content for Windows。这会把文件转换成一个 UE5 导出后的格式(*.uasset,*.uexp,*.ubulk)。 在<ProjectLocation/><ProjectName>/Saved/Cooked/WindowsNoEditor/里拿到已烘焙的文件。
创建 PAK 文件
Section titled “创建 PAK 文件”-
确保你想打包的文件夹,比如
pakchunk99-Mods_MyMod_P,包含的文件结构与 Ready or Not 相同。同时,确保你的 pak 名末尾有_P。 如果不这样做,可能会导致模组不加载。pakchunk后的数字表示 .pak 的加载顺序。请先确保你理解了目录结构然后再打包。 不正确的目录结构将会导致加载问题。你的结构应该类似于pakchunk99-Mods_MyMod/Content/ReadyOrNot/Assets/... -
在你的 Unreal Pak(在 虚幻引擎5 安装位置下)位置新建一个 .bat 文件。位置通常在
<InstallLocation>\UE_5.3\Engine\Binaries\Win64\UnrealPak.exe。 -
在 .bat 文件里,粘贴如下内容并保存:
packaging.bat @setlocal ENABLEDELAYEDEXPANSION@if "%~1"=="" goto skip@setlocal enableextensions@pushd %~1(for /R %%f in (*) do @set "filePath=%%f" & set "relativePath=!filePath:%~1=!" & @echo "%%f" "../../../ReadyOrNot!relativePath!")>"%~dp0/filelist.txt"@pushd %~dp0::-compresslevel=4 for Normal, -compresslevel=-4 for uncompressed hyperfast paking.\UnrealPak.exe "%~1.pak" -create=filelist.txt -compress -compressionformats=Oodle -compressmethod=Kraken -compresslevel=4@popd@pause:skip -
把你要打包的 .pak 文件拖拽到刚新建的脚本上,比如
pakchunk99-Mods_MyMod_P。打包后的 .pak 文件将出现在你与你刚刚拖拽的文件夹同个目录下。
所有的 .pak 模组都应存放在 <游戏安装位置>\Ready Or Not\ReadyOrNot\Content\Paks。请确保 .pak 加载顺序正确。
若要测试你的打包是否有用,请下载这个 示范模组。如果打包正常,安装后你的游戏主界面的 logo 变成粉色的。
请在打包之前下载和解压 .zip 文件。
将 Ready or Not 主界面标题 logo 加上粉色材质
如果你的模组没有生效,请检查这些常见犯错点:
- 检查文件结构,必须完全符合游戏内的文件,否则不会生效。
- 忘记给模组名末尾添加上
_P。如果对游戏使用补丁 pak 就需要添加上这个。 - 加载顺序。错误的加载顺序会导致模组之前产生问题。你可以通过更改 pak 文件名里的数字来修改加载顺序。
- 挂载点(排查问题的最好方法就是使用内置的 UnrealPak.exe。仅需用这行命令打开它:
unreakpak.exe -List This_Is_A_Pak.pak,查看挂载点。 挂载点一般是最深的文件夹,包含了你的所有内容。如果不是,可能会产生问题。)