使用 UnrealPak.exe 创建 Pak文件方法

使用 UnrealPak.exe 创建 Pak文件方法,第1张

使用 UnrealPak.exe 创建 Pak文件方法

看来各位摸UE4 的基佬们,也是被DLC搞得不要不要的呢,其实热更新PAK是很简单就可以实现的,虽然当时我也是弄了快一个月。


下面贴一段以前在 Runtime 状态下 Mount Pak的代码,希望能帮助大家。


首先你得有一个Cookie 过的PAK文件。


Pak文件的例子参照 :http://www.tomlooman.com/add-mod-support-to-your-unreal-engine-4-game/

(当然也可以通过 UnrealPAK.exe 以命令的形式生产Pak文件)

然后在序列化到本地之后采用类似下面的代码,就可以将资源注册到Game中。


而后就可以像其他asset 一样采用 StaticLoadObject 加载到游戏中了。


        if (FCoreDelegates::OnMountPak.IsBound())
{
//GEngine
if (FCoreDelegates::OnMountPak.Execute(temp_filePath, , nullptr))
{
GEngine->AddOnScreenDebugMessage(-, 5.0f, FColor::Red, TEXT("OnMountPak.Execute Successful."));
}
else
{
GEngine->AddOnScreenDebugMessage(-, 5.0f, FColor::Red, TEXT("OnMountPak.Execute Falied."));
}
}
else
{
GEngine->AddOnScreenDebugMessage(-, 5.0f, FColor::Red, TEXT("OnMountPak.IsBound() Falied"));
}

------------------------------------------------------------------------------------------

DLC这个问题折腾老子半个多月,现在总算有点进展,靠靠靠~到现在还是没搞定。


https://forums.unrealengine.com/showthread.php?7323-UE4-equivalent-of-AssetBundles-(Unity)

You could also use pak files. Pak is a single package containing multiple asset files (only content, no DLLs etc).

There's a UnrealPak.exe under Engine/Binaries/Win64. Here's example how it can be used

UnrealPak.exe D:\MyAssetPak.pak PathToYourProject/Content/FolderToAddToPak1 PathToYourProject/Content/FolderToAddToPak2 ...

or

UnrealPak.exe D:\MyAssetPak.pak -create=PathToResponseFile.txt

where the ResponseFile could be:

Code:
..\..\..\Engine\Content\Editor\Slate\*.*
..\..\..\Engine\Content\Localization\*.*
..\..\..\Engine\Shaders\*.*
..\..\..\Engine\config\*.*
PathToYourProject\*.uproject
PathToYourProject\Config\*.*
PathToYourProject\Content\Localization\*.*
PathToYourProject\Saved\Sandboxes\Cooked-WindowsNoEditor\Engine\*.* ..\..\..\Engine\*.*
PathToYourProject\Saved\Sandboxes\Cooked-WindowsNoEditor\ProjectName\*.* ..\..\..\ProjectName\*.*

Note that the last two lines re-base the content from Cooked folder to Content folder.

There's more info in UnrealPak.cpp, line ~582:

Code:
 * Params:
* -Test test if the pak file is healthy
* -Extract extracts pak file contents (followed by a path, i.e.: -extract D:\ExtractedPak)
* -Create=filename response file to create a pak file with
* where the first number is the private key exponend, the second one is modulus and the third one is the public key exponent.
* -TableMax=number maximum prime number in the generated table (default is 10000)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/588780.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存