从 GitLab CI 到 Horde:一个 UE5 项目的构建系统迁移复盘 从 GitLab CI 到 Horde:一个 UE5 项目的构建系统迁移复盘 前言 我们项目是一款基于 Unreal Engine 5(UE5)的大型游戏。在使用 Horde 之前,项目的构建流程主要依赖 GitLab CI;更早也接触过 Jenkins,也了解了一下 TeamCity。真正使用 Horde 半年多之后,我们对它的优点、局限和落地成本有了更具体的认识。 这篇文章不是 Horde 2026-05-13 #Unreal Engine #Horde #CICD
UE5.7:StorageServerClient 接管机制导致的路径偏移与文件存在性误判 前言 在虚幻引擎项目中使用 Zen Store 进行数据存储与流送时,底层文件系统的行为模式会发生显著变化。当项目目录下存在特定标记文件时,引擎会激活 StorageServerClient 机制,重组Platform File Wrapper Chain。这种接管行为不仅会改变运行时的文件读写路径落点,还会影响文件存在性的判定逻辑。本文通过分析源码,记录该机制对 SandboxFile 挂载的 2026-01-31 #UE5
UE5 :Zen as Cook Storage 探究和实例测试 一、摘要 本文介绍官方的《使用 Zen Storage Server 作为虚幻引擎的烘焙输出存储》,利用Lyra项目,一并介绍BuildGraph中相关的ZenExportSnapshotTask、ZenImportOplogTask、ZenImportSnapshotTask三个节点 二、Zen Storage 文档总结 从上文的官方文档进行总结有下面几点 1、目的与优势: 解决性能瓶 2026-01-13 #UE5 #Cook #Zen
UE5.7 解析:Incremental Cooking决策逻辑 前言 在 Unreal Engine 的 Cook Pipeline 中,UCookOnTheFlyServer::LoadBeginCookIncrementalFlagsLocal 负责在 Cook 任务启动初期,依据命令行参数、配置文件以及当前平台的状态,决定本次构建应当执行 Incremental Cook(增量构建) 还是 Full Cook(全量构建)。 一、 参数解析 在进入具体 2026-01-12 #UE5 #Cook
UE5:基于Zen Server的Unreal Engine构建产物发布机制分析 基于Zen Server的Unreal Engine构建产物发布机制分析 摘要 本文试图理解nreal Engine自动化构建系统(BuildGraph)中与Zen Server集成的构建产物发布机制。通过对BuildGraph脚本的XML定义及其底层C#实现(ZenExportSnapshotTask)的分析,了解该机制的核心工作流程、技术优势,并明确了其在数据持久化方面的具体行为。 1. 2025-09-09 #Unreal Engine #Zen Server #BuildGraph
UE4:在编辑器下对材质函数展开的方法 需求背景 TA使用了大量的MaterialFunction,这次是需要在已经封装调用了MaterialFunction的地方当场临时展开方便查看一些问题,想要一个编辑器接口。 本次功能实现由小伙伴友情提供,这里学习一个。 函数概述 实现了一个ExpandingMaterialFunction函数,其主要功能是将材质中的指定材质函数展开,将材质函数的内部节点复制到材质中,并重新连接输入和输出。函 2024-05-28 #UE4 #Material
UE:Android文件服务 UnrealEngine:Android文件服务器 本文测试了UE5中提供的Android File Server 原因 随着Android SDK版本的升级(30以上,对应Android 10),原有的UE4Game文件夹无法再创建到Android根目录。即使Development版本使用外部公共目录,也无法直接通过连接手机或其他方式获取日志文件,除非修改源码并申请全部文件控制权(这个可以看 2024-03-06 #UE4 #Android #UE5
UE4:自定义iOS文本输入界面的补充说明 前言 之前修改了iOS端非嵌入式键盘的类型之后遇到了一些问题,这里做一个补充说明。 详细的修改方法可以参考UE4:自定义iOS文本输入界面。 问题1:iPad表现异常 在之前的版本中,发现在iPad设备上输入界面唤起之后不正常,看不到按钮和输入框 查找资料之后发现是modalPresentationStyle默认值在不同设备上的表现不一致的问题 官方文档 modalPresentationSt 2023-11-15 #UE4 #iOS
UE4:4.27升级安卓SDK到30后的文件保存问题 问题: 4.27将targetSDK版本改为30之后,打包之后的dev版本无法在设备写入文件 SDK升级相关修改 1private string GetSdkApiLevel(AndroidToolChain ToolChain) 在UEDeployAndroid.cs文件中,这个函数会根据TargetSDKVersion来返回对应的SDK版本,如果你的本地环境有多个UE版本或者有通过Andr 2023-11-10 #Android
UE4:C++直接获取STATS相关值的方式 前言 本文基于4.27版本 UE本身提供了很多STAT命令来帮助实时查看游戏运行时的一些数据: 【Stat命令表】 在游戏运行时通过控制台输入对应指令即可 不过直接使用命令,只会在屏幕上实时看到数据,如果使用Insights或者Frondend等工具,则会同时获取到大量的信息,不方便对数据的整理 比如,需要对游戏内所有的蒙太奇资源进行检查,来排查某些蒙太奇是否在某个性能指标上存在问题,希望可以快 2023-09-01 #UE4