虚幻 · 新知

Hello,Unreal.
2023-07-27 lipengzha

UE5.3 Preview1发布!

Epic发布了UE5.3的首个预览版本,继续完善了其核心功能的工作流程,例如 Lumen、Nanite、路径追踪等。在此版本中,这些渲染功能提供了对性能的更多控制并产生更好看的结果。 以及一些新的实验性特性,支持多进程COOK,用于降低构建耗时。

UE5.3的roadmap也已更新:UNREAL ENGINE 5.3 (IN PROGRESS)

2023-07-06 lipengzha

UE4.27 Plus分支更新

在Github仓库中,UE4目前还在更新的唯一分支是4.27-plus,以SDK更新与新开发环境的适配为主。

近期,Epic为4.27-plus增加了多项SDK支持,并适配了XCode14.3+的支持。

如果你的项目还在UE4版本,升级到4.27-plus分支的版本是个不错的选择。

2023-06-23 lipengzha

Metadata目录的作用

打包或Cook完成后,在Cooked/PLATFORM/PROJECT_NAME下会产生一个Metadata目录。

它存储的是打包时产生的元数据:

  1. Shader相关信息、ShaderLibrary/shader stable info,生成PSO需要
  2. DevelopmentAssetRegistry,可以用于资产审计
  3. 打包的加密配置Crypto.json
  4. 参与Cook资源的Chunk信息
  5. 本次Cook的引擎环境(ini的配置信息)

备份它能实现PSO生成、资产审计、迭代cook等等。

2023-06-23 lipengzha

导出Module依赖信息

引擎里UBT提供了一种模式,可以只导出工程中的模块依赖、头文件、宏定义等信息。以及工程依赖的每一个DLL的信息。

Engine\Build\BatchFiles\Build.bat XXXXEditor Development Win64 G:\Client\XXXX.uproject -mode=jsonexport
Engine\Build\BatchFiles\Build.bat XXXX Development Win64 G:\Client\XXXX.uproject -mode=jsonexport
Engine\Build\BatchFiles\Build.bat XXXX Development Android G:\Client\XXXX.uproject -mode=jsonexport

会在Binaries/PLATFORM下生成一个XXXXEditor.json文件。

注意XXXXEditor是Target,区分编辑器与运行时。

2023-06-19 lipengzha

adb执行console命令

adb shell "am broadcast -a android.intent.action.RUN -e cmd 'stat fps'"

引擎中的Device Log界面中对设备执行Console指令就是通过该命令的封装实现的,实现代码为:AndroidTargetDevice.inl#L102

2023-06-19 lipengzha

UFUNCTION(Exec)

在UFUNCTION元标记中添加Exec指示符,可以在Console中执行函数。 但它也有一些限制,文档中说的含糊不清:

Exec: The function can be executed from the in-game console. Exec commands only function when declared within certain Classes.

但具体是在哪些类中有效果却没说。调试后发现:

  1. UWorld
  2. APlayerController
  3. APawn
  4. AHUD
  5. AGameMode
  6. UCheatManager
  7. AGameState
  8. APlayerCameraManager

具体代码为:Runtime/Engine/Private/Player.cpp#L94

bool UPlayer::Exec( UWorld* InWorld, const TCHAR* Cmd,FOutputDevice& Ar)

调用栈: