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

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

https://www.cnblogs.com/linqing/p/5100518.html

 

看来各位摸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, 0, nullptr)) 
            {
                GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, TEXT("OnMountPak.Execute Successful."));
            }
            else 
            {
                GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, TEXT("OnMountPak.Execute Falied."));
            }
        }
        else 
        {
            GEngine->AddOnScreenDebugMessage(-1, 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)

 

T

本文原创,不定时更新 可以随意转载到任何网站 ~但是~ 转载也要按“基本法” 请注明原文出处和作者

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值