zoukankan      html  css  js  c++  java
  • 使用 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, 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:
    ......EngineContentEditorSlate*.*
    ......EngineContentLocalization*.*
    ......EngineShaders*.*
    ......Engineconfig*.*
    PathToYourProject*.uproject
    PathToYourProjectConfig*.*
    PathToYourProjectContentLocalization*.*
    PathToYourProjectSavedSandboxesCooked-WindowsNoEditorEngine*.* ......Engine*.*
    PathToYourProjectSavedSandboxesCooked-WindowsNoEditorProjectName*.* ......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

  • 相关阅读:
    大型网站架构
    Swift 2.x 升为 swift 3后语法不兼容问题适配
    Redis开发
    你必须知道的Dockerfile
    JAVA知识点汇总
    JAVA知识点汇总
    nginx location配置详细解释
    python3 urllib.request.Request的用法
    拉勾网python开发要求爬虫
    爬虫工程师是干什么的?你真的知道了吗?
  • 原文地址:https://www.cnblogs.com/linqing/p/5100518.html
Copyright © 2011-2022 走看看