【虚幻引擎】UE4/UE5 pak挂载
一、首先设置UE4引擎的系统环境变量
找到:D:\UE\UE_4.27\Engine\Binaries\Win64,
WindowS+R打开CMD命令
运行UnrealPak,运行结果如下
二、打开虚幻引擎,Cook资源
注意如果想要加载Pak内资源,那么这些资源必须是经过Cook的。如果打包的是未Cook的资源,那么即使Pak挂载成功,也不可能会成功加载Pak内资源。
Cook好之后,存储的路径在你的I:\DBJTest\Saved\Cooked\WindowsNoEditor\DBJTest\Content\DLC
使用命令开始打包
第一种:打包单个文件夹,此处的文件夹为DLC
打包Pak的命令行格式
UnrealPak “存储Pak的路径+Pak包名” -create="Cook好的资源的路径"
成功之后会出现文件DLCtest.pak
第二种:打包整个Content文件
unrealpak "I:\DLCtest.pak" -create=I:\DBJTest\Saved\Cooked\WindowsNoEditor\DBJTest\Content
第三种:打包单个文件
unrealpak "I:\DLCtest.pak" -create=I:\DBJTest\Saved\Cooked\WindowsNoEditor\DBJTest\Content\DLC\download.uasset
打包完成后就能在你对应的文件夹中找到相对应的文件
三、挂载Pak包
1.自动挂载
如果手动将Pak放在以下这些项目路径中,引擎将会自动加载Pak
[ProjectName]/Content/Paks
[ProjectName]/Saved/Paks
Engine/Content/Paks
2.手动挂载
在Bulid.cs里面加入模块PakFile
public class DBJTest : ModuleRules
{public DBJTest(ReadOnlyTargetRules Target) : base(Target){PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;PublicDependencyModuleNames.AddRange(new string[] {"Core","CoreUObject","Engine","InputCore","HeadMountedDisplay","PakFile",});}
}
MyPlayerController.h文件
// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"
#include "GameFramework/PlayerController.h"
#include "MyPlayerController.generated.h"/*** */
UCLASS()
class DBJTEST_API AMyPlayerController : public APlayerController
{GENERATED_BODY()public:virtual void BeginPlay() override;UFUNCTION(Exec)void TestLoadPak(FString InPakFullPath);TSharedPtr<class FPakPlatformFile> PakPlatform;class IPlatformFile* OldPlatform;
};
MyPlayerController.cpp文件
// Fill out your copyright notice in the Description page of Project Settings.#include "MyPlayerController.h"
#include "IPlatformFilePak.h"
#include "PlatformFilemanager.h"
#include "Runtime/Engine/Classes/Engine/StaticMeshActor.h"
#include "GenericPlatformFile.h"void AMyPlayerController::BeginPlay()
{Super::BeginPlay();OldPlatform = &FPlatformFileManager::Get().GetPlatformFile();PakPlatform = MakeShareable(new FPakPlatformFile());PakPlatform->Initialize(&FPlatformFileManager::Get().GetPlatformFile(), TEXT(""));
}void AMyPlayerController::TestLoadPak(FString InPakFullPath)
{FPlatformFileManager::Get().SetPlatformFile(*PakPlatform.Get());FString PakFileFullPath = InPakFullPath;FPakFile* TmpPak = new FPakFile(PakPlatform.Get(), *PakFileFullPath, false);FString PakMountPoint = TmpPak->GetMountPoint();int32 Pos = PakMountPoint.Find("Content/");FString NewMountPoint = PakMountPoint.RightChop(Pos);NewMountPoint = FPaths::ProjectDir() + NewMountPoint;//FString NewMountPoint = "../../../DBJTest/Content/DLC/";TmpPak->SetMountPoint(*NewMountPoint);if (PakPlatform->Mount(*PakFileFullPath, 1, *NewMountPoint)){TArray<FString> FoundFilenames;TmpPak->FindFilesAtPath(FoundFilenames, *TmpPak->GetMountPoint(), true, false, false);if (FoundFilenames.Num() > 0){for (FString& Filename : FoundFilenames){if (Filename.EndsWith(TEXT(".uasset"))){FString NewFileName = Filename;NewFileName.RemoveFromEnd(TEXT(".uasset"));int32 Pos = NewFileName.Find("/Content/");NewFileName = NewFileName.RightChop(Pos + 8);NewFileName = "/Game" + NewFileName;UObject* LoadedObj = StaticLoadObject(UObject::StaticClass(), NULL, *NewFileName);UStaticMesh* SM = Cast<UStaticMesh>(LoadedObj);if (SM){AStaticMeshActor* MeshActor = GetWorld()->SpawnActor<AStaticMeshActor>(AStaticMeshActor::StaticClass(), FVector(0,0,460), FRotator(0,0,0) );MeshActor->SetMobility(EComponentMobility::Movable);MeshActor->GetStaticMeshComponent()->SetStaticMesh(SM);break;}}}}}FPlatformFileManager::Get().SetPlatformFile(*OldPlatform);}
世界设置要选择GameMode
运行Play,按下~按键,输入命令testLoadPak I:\DLCtest.pak
【虚幻引擎】UE4/UE5 pak挂载相关推荐
- 虚幻引擎UE4中的Tick事件
虚幻引擎UE4中的Tick事件是程序运行中每一帧刷新一次,例如在通常每秒60帧的游戏运行中,Tick事件就每秒执行了60次.这个事件相当于Unity中的Update和LateUpdate函数一样的性质 ...
- 虚幻引擎UE4.25版本使用Android打包出错提示:ERROR: cmd.exe failed with args /c 和 :app:assembleDebug的解决方法
虚幻引擎 UE4.25版本使用Android打包出错提示:ERROR: cmd.exe failed with args /c 和 :app:assembleDebug的解决方法: 在虚幻引擎的jdk ...
- [虚幻引擎][UE][UE5]像素流送(Pixel Streaming),像素流去掉黑边和按钮[UE5.1.0],鼠标控制
[虚幻引擎][UE][UE5]像素流送Pixel Streaming,像素流去掉黑边和按钮[UE5.1.0] 1.写在前面 01.作者碎碎念 02.结果 演示截图 视频教程 2.需要准备的软件 3.U ...
- [虚幻引擎][UE][UE5]简单的游戏读档存档
[虚幻引擎][UE][UE5]简单的游戏读档存档
- [虚幻引擎][UE][UE5]在UE中画一个线框球,网格连接画球,高阶画球并操控
[虚幻引擎][UE][UE5]在UE中画一个线框球,网格连接画球,高阶画球并操控 1.材质法 2.绘制调试球体 3.网格连接 蓝图项目链接: 4.高阶画球并操控 蓝图项目链接: 1.材质法 缺点:是实 ...
- 虚幻引擎/UE4离线安装
虚幻引擎官网:https://www.unrealengine.com/zh-CN/ 虚幻引擎4官方文档:https://docs.unrealengine.com/zh-CN/index.html ...
- 虚幻引擎5 (UE5):开发你的前两个游戏
MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确) |大小解压后:10.0 GB |时长:11h 26m 从头到尾创作两个 ...
- Online Subsystem Steam 在线子系统Steam (虚幻引擎UE4 联网)
在本页: 满足阀门的要求 正在下载Steamworks 设置Steamworks SDK Steam App ID 配置您的应用程序的设置 补充笔记 该在线子系统蒸汽API使您能够出货虚幻引擎4(UE ...
- 虚幻引擎(UE4) 日志、打印运行时信息
概述 日志用于引擎及时反馈给我们运行时刻数据和信息.强大的用途不限于如下: 函数是否被调用 算法使用的什么数据 上报错误给开发组或者用户 特定时刻强制运行致命错误(如断言错误)以停止执行程序. 本章将 ...
最新文章
- Android有返回值的Activity
- MANIFEST.MF文件全面解析
- 海豚浏览器发布双核版本 支持html5
- qt 最小化到托盘linux,Qt窗口最小化到托盘,托盘菜单控制
- python之禅星号_Python基础1
- ElasticSearch 中的中文分词器该怎么玩?_03
- Windows Maven环境变量配置
- 成功的捷径,学会这一点,赚钱很容易
- wifi协议_图解 802.11wifi协议
- .net 基础知识大杂烩(2) ——条件语句
- 使用docker compose 测试集群网络连接性
- win98 支持html5,win98支持1G以上内存的解决办法
- zbbz加载成功用不了_cad怎么加载zbbz插件(CAD坐标插件ZBBZ自定义怎么用?)
- 可能是史上最详细攻略的广州人才引进入户
- java调用浏览器_Java调用浏览器打开网页实例完整版
- H5如何实现图文一行分布且图片在左侧而文字在右侧
- c语言设计由数组,C语言程序设计_07数组.ppt
- 《极简学习法》读书笔记
- 基于Cellar的交互式单细胞数据分析
- 薄冰-英语语法[1]-名词的格 (易混知识)
热门文章
- JavaScript trim() 方法
- C++洛谷题解(36)——P1035
- 亲子游小程序开发,助力商家掌握亲子流量
- 《战双帕弥什》战斗系统解析:适合手机的动作游戏
- 社会工程管理-记账报税
- linux复制整个内容快捷键,linux复制快捷键_Linux系统快捷键最全合集
- BZOJ5217: [Lydsy2017省队十连测]航海舰队 FFT
- 教你1分钟学会贴iPhone XS钢化膜
- 冲量在线亮相英特尔隐私计算研讨会,基于可信执行环境技术构建更安全的数据流通方案
- 3D数学 自定义三维向量类进行运算