UE4 C++和蓝图
文章平均质量分 64
本专栏包含UE4开发中c++、蓝图、关卡、材质相关蓝图节点的详解
呦呦鹿鸣.
资深游戏开发工程师,某大厂主程,擅长2d/3d游戏开发,博客内容定期分享更新
展开
-
UE4 C++的 GENERATED_BODY()和GENERATED_UCLASS_BODY() / GENERATED_USTRUCT_BODY()的区别
GENERATED_BODY标识的类的成员默认是private的,GENERATED_BODY标识的类需要声明无参数的构造函数,否则会报错。GENERATED_UCLASS_BODY可以不声明构造函数(如果要实现构造函数需要加上const FObjectInitializer& ObjectInitializer参数),可以参考UUserWidget类的构造函数,直接实现初始化虚函数函数(Initialize),该函数返回true才会继续继续向下执行。而不用去实现构造函数,这一点类似于cocos原创 2021-03-04 10:44:10 · 2789 阅读 · 1 评论 -
UE C++值得注意的坑
申明了FORCEINLINE关键字的内联函数,不能和void一起使用。不然就会报错。虚幻引擎中,基本数据类型包括,uint8、uint16、uint32、uint64、int8、 int16、int32、int64、float。但是在蓝图中只支持uint8和int32。其他类型在c++中是支持的,但是如果你一但你将这些变量暴露给蓝图,编辑就会报错。...原创 2021-02-25 20:47:54 · 2139 阅读 · 0 评论 -
虚幻引擎(UE4) 枚举(ENUM)的定义方法和需要注意的坑。
在C++中定义枚举:需要注意的是c++ 11增加了enum class类型,这和之前的enum类型有点差别。只供C++使用:UENUM()namespace ESpritePivotMode{ enum Type { Top_Left, Top_Center, Top_Right, Center_Left, Center_Center, Center_Right, Bottom_Left, Bottom_Center, Bottom_Right, ...原创 2021-02-11 14:39:16 · 15104 阅读 · 0 评论 -
UE4坐标系,U3D坐标系,COCOS坐标系,OPENGL坐标系,笛卡尔坐标系,D3D坐标系
待。。原创 2021-02-09 23:30:06 · 1776 阅读 · 0 评论 -
虚幻引擎(UE4) C++与蓝图之性能比较
当为游戏设计技术方案的时候,一个最主要的问题就是什么内容需要放在蓝图实现,什么内容要放在c++中实现。本文旨在讨论这些问题,并给出一个参考的建议。游戏逻辑和数据广义的说,游戏内容可以分为Logic(逻辑)和Data(数据)。Logic是游戏的指令和结构,Data被用于逻辑并描绘了游戏具体干了些什么。有时候这种区分是显而易见的,例如c++在屏幕上绘制一个角色是基于逻辑的,而角色的物理外观是基于数据的。但是在实际练习中,各种各样的Logic和Data混杂在一起是非常复杂的,理解这其中的区别和做出正确的选原创 2021-02-05 18:49:16 · 11202 阅读 · 1 评论 -
虚幻引擎(UE4) EventDispatcher应用
当一个Event Dispatcher被调用,所有绑定了这个该事件的蓝图将会执行这个事件逻辑。换句话说,一旦你调用了这个Event Dispatcher事件分发器,将会调用多个蓝图中的事件逻辑。这个例子让玩家按下一个键,生成一个粒子特效。这里使用第三人称模板人物来举例创建并打开ThirdPersonCharacter: 在角色蓝图中创建一个EventDisPatcher事件 在蓝图中创建一个键盘点击节点: 将创建的事件StartFire拖拽到蓝图中,并选择Call调用事件,即...原创 2021-02-05 12:40:03 · 1596 阅读 · 0 评论 -
虚幻引擎(UE4) 刚体(Rigid Body)
Rigid Body(刚体)本篇讲述刚体如何作为一种轻量级的物理属性在动画蓝图中的运用。Rigid Body骨骼控制节点(如下图)可以被用于高性能模拟轻量级的物理特性。Rigid Body可以被添加到Animation Blueprint(动画蓝图)中的AnimGraph(动画图表)。还可以和任意的Blend Nodes一起使用,使你从一种姿态切换到另一种模拟物理的状态。Characters使用这种模拟方式也会生成世界空间中的静态碰撞体。Rigid Body节点一种有用的情况是角色拥有类似于原创 2021-02-02 14:03:09 · 4300 阅读 · 0 评论 -
虚幻引擎(UE4) 环境问询系统EQS
本篇内容文档较少,不易理解,待更新.............原创 2021-02-02 11:40:21 · 3165 阅读 · 0 评论 -
虚幻引擎(UE4) Visual Logger 可视化调试器
Visual Logger捕获Actor的状态并在游戏或者编辑器中显示出来Visual Logger是一个强大的调试工具,可以创建和记录游戏状态,并可视化显示出来,提供可在编辑器中查看游戏数据的功能。开发者可以在游戏会话中看到调试数据,也可以在游戏会话结束后在编辑器中查看数据记录。这让开发者更加容易解决游戏中难以追踪定位的、仅仅依靠玩家报告的和游戏画面提供的缺陷(Bugs)。在游戏中经常遇到哪些概率低且很难复现的缺陷,记录游戏数据以供后期查看显得特别重要。举个例子,一个游戏状态变量可能在某一帧导致发原创 2021-02-01 19:21:48 · 3100 阅读 · 0 评论 -
虚幻引擎(UE4) Gameplay Debugger(调试器)
Gameplay Debugger(虚幻调试器)对于开发者查看运行时数据非常有用,甚至在利用网络复制的客户端上也是如此。他可以运行在编辑器,模拟器中,并且独立于游戏,所有的数据都显示在游戏窗口上,调试系统提供了一套可以扩展的调试框架。引擎实现可以显示:Pawn基础信息 AIController 基础信息 行为树和黑板信息 执行环境信息 触觉系统信息 玩家网格和选择的Pawn的所有细节通常有很多类别信息需要输出到屏幕上,通常用5个类别来显示:Navmesh Basic Behavi原创 2021-02-01 14:33:35 · 4686 阅读 · 1 评论 -
虚幻引擎(UE4) 字符串处理
目录FNameFTextPrintfConversions(相互转换)编码问题FName当你在资源浏览器中给资源命名时, 在材质实例中动态更改一个参数,或者获取骨骼文件中的骨骼节点,使用的收拾FName。FName提供了一种非常轻量级的系统,使字符串在内存中只储存一次,尽管字符串可能重复使用。Fname 是不区分大小写,他们是不变,不能被修改,类似于常量字符串。FNames内部系统提供了非常高效的K值查询功能。另一个有用的特性是它利用hash表实现快速从字符串到FName的转原创 2021-01-29 15:47:23 · 2927 阅读 · 0 评论 -
虚幻引擎(UE4) 日志、打印运行时信息
概述日志用于引擎及时反馈给我们运行时刻数据和信息。强大的用途不限于如下: 函数是否被调用 算法使用的什么数据 上报错误给开发组或者用户 特定时刻强制运行致命错误(如断言错误)以停止执行程序。本章将介绍如何在虚幻引擎中输出日志。目录获取日志使用方法日志详情级别设置自己的日志类别使用样例格式化打印打印字体的颜色快速打印提示其他打印方式日志关键字有用的控制台命令日志命令行环境变量配置文件获取日志 游戏中 为...原创 2021-01-29 12:40:20 · 14342 阅读 · 0 评论 -
虚幻引擎c++/蓝图 开发笔记
虚幻引擎(UE4) c++ 命名规范虚幻引擎(UE4)中重要的Class类虚幻引擎(UE4) 反射系统(Reflection)原创 2021-01-28 16:17:58 · 1473 阅读 · 0 评论 -
虚幻引擎(UE4) 反射系统(Reflection)
反射是程序在运行时检查自身的能力。这是非常有用的,并且是虚幻引擎的基础技术,可以为许多系统提供动力,例如编辑器中的详细信息面板,序列化,垃圾收集,网络复制以及Blueprint / C ++通信。但是,C ++本身不支持任何形式的反射,因此Unreal拥有自己的系统来收集,查询和操纵有关C ++类,结构,函数,成员变量和枚举的信息。我们通常将反射称为属性系统,因为反射也是图形术语。反射系统是可选的。您需要注释任何您希望在反射系统中可见的类型或属性,虚幻解析工具(UHT)会在编译项目时获取该信息。.原创 2021-01-28 16:02:25 · 3533 阅读 · 1 评论 -
虚幻引擎(UE4) c++ 命名规范
大小写:由一个或多个单词组成的变量或者函数,其中每个单词的首字母大写,单词之间没有下划线。 举个例子:Health 和UPrimitiveComponent就是正确的命名规则。但是lastMouseCoordinates或者delta_coordinates就是错误的命名法。 前缀:类名用一个额外的大写字母来区分变量名,例如:FSkin 是一个类名,Skin是FSkin的实例对象。 T:模板类 U:继承自UObject(虚幻引擎所有类的基类) A:继承自AActor S:继承自SWidget原创 2021-01-28 14:17:52 · 3146 阅读 · 0 评论 -
虚幻引擎(UE4)中重要的Class类
虚幻引擎4(简称UE4)的GamePlay框架提供了一套强大的类来构建游戏。你的游戏可以是一个射击游戏,农场模拟器游戏,一个深度的RPG游戏,GamePlay框架可以帮助你实现这些复杂的工作。理解这个框架对于成功和高效是至关重要的。适用群体对UE4感兴趣,特别是那些正在学习UE4C++,并想了解更多关于虚幻的游戏框架的开发者。这篇文章介绍了您将在游戏框架中使用的核心类,并解释了它们的用法、引擎如何实例化它们以及如何从游戏代码的其他部分访问这些类。提供的大多数信息也适用于蓝图。GamePlay框架原创 2021-01-21 19:20:35 · 3001 阅读 · 1 评论