前言

本文记录UE4获取硬件信息和地址等常用方法

Mac地址

GetMacAddressString()方法已经在4.15版本后被彻底废弃, 所以UE目前(4.26)版本无法获取Mac地址

我们之前UE4获取第三方库文章中有用到使用自己用原生cpp获取到mac地址, 然后导出成动态或者静态库到UE4再封装成插件的形式来获取mac地址, 此方法也是目前比较快捷的一个方法

阅读全文 »

前言

本文介绍一下UE4使用第三方库的简单用法, 即DLL动态库和Lib静态库的使用

我们用插件的形式封装起来, 便于以后移植到其他项目中去;

所以在开始之前先新建一个空或者蓝图库插件

阅读全文 »

前言

从遥远的2019年搬运而来, 仅作为记录,后续视情况补充

[官方文档][https://docs.unrealengine.com/zh-CN/Engine/Landscape/index.html]

地形的内存

  • 对于顶点数据,Landscape为每个顶点使用4个字节。静态网格体(Static Mesh)以12字节矢量的形式存储位置,每个切线X和Z矢量封装为4个字节,并为每个顶点的共24或28个字节存储16位或32位浮点UV。

  • 这意味着,对于相同的顶点密度,静态网格体(Static Mesh)将使用6或7倍于Landscape的内存。Landscape还将它们的数据存储为纹理,并且可以为遥远的区域流送未使用的LOD关卡,并在您接近它们时从后台的磁盘加载它们。Landscape使用一个常规的高度场,因此其碰撞数据也能够比静态网格体(Static Mesh)的碰撞数据更高效地存储。

地形存储方式

  • Landscape系统在GPU内存中以纹理的形式存储地形的渲染数据,允许在顶点着色器中查找数据。数据被打包成32位纹理,高度以R和G信道的形式占据16位X和Y偏移量以8位数值分别存储在B和A信道中
阅读全文 »

前言

AssetManager(下面简称AM)是一个全局单例类,用于管理各种primary assetsasset bundles

可以在运行时对Primary Assets进行加载和释放操作

补充官方文档对于AssetManager的介绍

虚幻引擎 4 自动处理 资源 加载与卸载,开发者无需编写系统代码告知引擎具体所需的资源。然而,某些情况下开发者可能需要更精确地掌控资源发现、加载与审核的时机与方法。在这些情况下,资源管理器(Asset Manager) 便能大显身手。资源管理器是存在于编辑器和打包游戏中的独特全局对象,可根据不同项目进行覆盖和自定义。它提供了一个管理资源的框架,可将内容划分为数据块,对应项目的上下文,而同时保证虚幻引擎 4 松散打包架构 的优势。它同时提供了一套工具,协助审核硬盘和内存使用,提供所需信息,以优化资源组织,在部署游戏时进行 烘焙和数据块划分

我们可以在项目设置中自定义AM

image-20201228110451282

或者修改DefaultEngine.ini文件

1
[/Script/Engine.Engine] AssetManagerClassName=/Script/Module.UClassName 其中"Module"代表项目的模块名,"UClassName"则代表希望使用的 UClass 名。
阅读全文 »

前言

上一篇讲述了GE的一些基本概念, 非常概念化没有实战部分, 很容易混淆和忘记, 本片我们结合实际项目再配合GA的使用来模拟几个技能效果

伤害计算

我们在前面测试GA的时候已经简单测试了伤害,不过那个伤害就固定的一个值, 下面我们用自定义的类GEEC来计算这个伤害

1
USRGEEC_Damage : public UGameplayEffectExecutionCalculation

image-20201218172355966

给上我们的GEEC

阅读全文 »

前言

GameplayCueNotify(GCN)用于非逻辑层的效果,如音效,特效,相机震动等

CGN有两个基类,如下图

GameplayCue Class Event GE类型 Description
GameplayCueNotify_Static Execute Instant or Periodic 一般处理一次性触发的效果如打击效果
GameplayCueNotify_Actor Add or Remove Duration or Infinite 此类GC是实例化的,它们可以随着时间进行操作,直到它们被“删除”。当支持的“Duration”或“Infinite”GE被移除或手动调用remove时,这些对于循环声音和粒子效果是很好的。它们还提供了一些选项来管理允许同时“添加”的数量,以便多个应用程序使用相同效果时只启动一次声音或粒子。

使用GameplayCueNotify_Actor时注意Auto Destroy on Remove选项,否则后续调用add可能不能正常工作

阅读全文 »