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

  • 相关阅读:
    5.scala中的对象
    4.scala中的类
    第八章 前端框架
    第六章 用户管理
    第五章 权限验证
    第四章 功能初始化
    第三章 项目结构
    第二章 基于二进制进行权限管理的理论知识
    第一章 权限管理DEMO简介
    NopCommerce源代码分析之用户验证和权限管理
  • 原文地址:https://www.cnblogs.com/linqing/p/5100518.html
Copyright © 2011-2022 走看看