基础知识
理解文件结构
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
,查看挂载点。 挂载点一般是最深的文件夹,包含了你的所有内容。如果不是,可能会产生问题。)