![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
unreal
文章平均质量分 57
卜若
love game,love life
展开
-
unreal-c++教程-第十一章:Unlua-SpawnActor并实现动态绑定
unlua 动态生成Actor并绑定lua脚本原创 2022-10-06 19:39:56 · 965 阅读 · 2 评论 -
unreal-c++教程-第十章:c++和Unlua的交互
c++和UnLua的交互原创 2022-07-08 21:54:34 · 1559 阅读 · 0 评论 -
unreal-c++教程-第九章:c++发送消息给蓝图
c++发送消息给蓝图原创 2022-07-08 19:51:05 · 653 阅读 · 0 评论 -
unreal-c++教程-第八章:TCP Socket
unreal socket原创 2022-06-23 21:18:50 · 1249 阅读 · 0 评论 -
unreal-c++教程-第七章:控制你角色的动画
控制你角色的动画原创 2022-06-21 23:59:35 · 432 阅读 · 0 评论 -
unreal-c++教程-第六章:控制你的角色
c++ unreal 控制你的角色!原创 2022-06-21 23:01:45 · 790 阅读 · 0 评论 -
unreal-c++教程-第五章:创建你的角色
创建角色原创 2022-06-15 23:51:11 · 1102 阅读 · 0 评论 -
unreal-c++教程-第四章:PlayerController
PlayerController 的获取和常见操作原创 2022-06-15 19:12:28 · 1456 阅读 · 0 评论 -
unreal-c++教程-第三章:用c++在场景中创建一个Cube与UWorld
c++ 创建 Cube 和UWorld原创 2022-06-14 22:34:59 · 920 阅读 · 0 评论 -
unreal-c++教程-第二章:Actor和Component
创建Actor和Component原创 2022-06-14 19:48:26 · 1597 阅读 · 1 评论 -
unreal-c++教程-第一章:第一个c++脚本
1.创建第一个Unreal c++ 脚本2.1 FirstActor.h和FirstActor.cpp2.2 Unreal宏(macros)2.2.1 宏UCLASS()和宏GENERATED_BODY()UCLASS()用于指示该c++类为Unreal 反射系统中的一部分。并且使用UCLASS(),你可以直接使用unreal提供的内存管理(垃圾回收),不需要自己去处理c++复杂的垃圾回收机制。unreal c++编译过程由两个阶段组成。第一个阶段,由UnrealHeadTool 读原创 2022-06-09 00:19:17 · 3038 阅读 · 1 评论 -
unreal-教程-第十八章:UI跟随的基本原理(c++)
UI跟随的基本原理1.世界坐标转屏幕坐标1.世界坐标转屏幕坐标可以使用函数:ProjectWorldLocationToScreen此时获得的是世界坐标对应屏幕坐标的二维坐标如果我们将屏幕转化为完全分别率的全屏模式,我们会发现结果是对的但是,如果我们将屏幕缩小我相信你应该能看出问题这个时候,ui的坐标就不对了这是因为,我们的视口坐标系和屏幕坐标系发生了缩放,我们需要将屏幕的绝对坐标转移到视口坐标可以使用函数:GetViewportWidgetGeometry此时我们再看这个效果原创 2022-05-26 19:30:11 · 693 阅读 · 0 评论 -
unreal-教程-第十七章:上半身动画和下半身动画的混合
半身动画混合演示效果1. 基本原理1.1 怎么创建动画缓存1.2 怎么实现基于骨骼的动画混合1.2.1 使用动画缓存1.2.2 动画缓存混合1.3 最终效果演示效果略.1. 基本原理1. 创建默认的运动混合树AnimSpace_12. 将AnimSpace+蒙太奇动画合并,此时,蒙太奇动画会覆盖掉AnimSpace,我们将这部分称为AnimSpace_23. 分别创建AnimSpace_1和AnimSpace_2的动画缓存:AnimSpace_1_Cache,AnimSpace_2_Cac原创 2022-05-26 09:18:03 · 1410 阅读 · 0 评论 -
unreal-教程-第十六章:行为树进阶(使用条件节点Decorator,怪物追踪)
条件节点Decorator,怪物追踪演示效果1. 完整的行为树截图1.1 参数介绍1.2 行为树逻辑介绍1.2.1 实时赋值PlayerPos和PreVec1.2.2 判断是否超过攻击范围1.2.3 怪物的追踪逻辑演示效果传送门1. 完整的行为树截图1.1 参数介绍首先,怪物拥有一个黑板,用于缓存一些数据用于条件比较。如图所示Pos:怪物前往的目标位置,我们通过选择玩家半径1000cm的距离随机取得SeePlayer:怪物是否看到玩家,当怪物离玩家距离<400cm时,则怪物看到玩家原创 2022-04-20 20:54:48 · 911 阅读 · 0 评论 -
unreal-教程-第十五章:近战武器碰撞检测
近战武器碰撞检测演示效果1. 创建AnimNotifyState2. 定义检测的两个Socket锚点3. 在AnimNotifyState中定义检测逻辑演示效果传送门1. 创建AnimNotifyState2. 定义检测的两个Socket锚点3. 在AnimNotifyState中定义检测逻辑函数的ReturnValue是当发生碰撞时,该值为True,并且碰撞信息会组成一个数组,然后通过Outhits传出来我们可以打印OutHits的所有信息此时的结果就和视频中的结果一样啦~~原创 2022-04-20 16:17:28 · 523 阅读 · 0 评论 -
unreal-教程-第十四章:行为树进阶(使用Task节点,角色跟随)
行为树进阶1. 使用TASK节点1.1. 创建task节点1.2. 编辑Task节点1.3. 使用Task节点2. 角色跟随1. 使用TASK节点1.1. 创建task节点我们现在的资源为:双击进入NPC_BT创建 NewTask1.2. 编辑Task节点1.3. 使用Task节点双击进入NPC_BT此时,行为树会更加的漂亮!2. 角色跟随重置下RandomPosition的函数...原创 2022-04-20 14:12:40 · 337 阅读 · 0 评论 -
unreal-教程-第十三章:AI进阶(行为树)
AI进阶1. 创建行为树2. 创建一个基本服务3. 编辑行为树3.1 行为树测试节点3.2 添加Service3.3 给行为树添加黑板3.4 给黑板创建变量3.5 行为树调用黑板的变量4. 编辑NPC_SETPOS5. 运行行为树6. 调试行为树1. 创建行为树2. 创建一个基本服务双击NPC_BT进入行为树编辑界面3. 编辑行为树3.1 行为树测试节点双击NPC_BT进入行为树编辑界面3.2 添加Service3.3 给行为树添加黑板3.4 给黑板创建变量双击黑板,进原创 2022-04-20 11:26:48 · 631 阅读 · 0 评论 -
unreal-教程-第十二章:AI初步(NPC随机移动)
AI演示效果1.建立NPC子类2. 创建AI蓝图2.1 绑定AI蓝图到NPC2.2 在NPC_AI中完成随机寻路的逻辑2.3 添加寻路范围3. 常见问题3.1 角色不移动3.2 角色动画不播放演示效果传送门1.建立NPC子类继承自Role这个类就是我们的NPC了。2. 创建AI蓝图2.1 绑定AI蓝图到NPC2.2 在NPC_AI中完成随机寻路的逻辑2.3 添加寻路范围3. 常见问题3.1 角色不移动此时你可能需要将NavMeshBoundsVolume的区域调的更大一些原创 2022-04-19 20:12:51 · 820 阅读 · 0 评论 -
unreal-教程-第十一章:蒙太奇操作:动作切换,连击
蒙太奇实现连击效果演示通道1.蒙太奇实现动作切换2.蒙太奇实现连击2.1 延迟连续操作2.2 完整的实现方案效果演示通道传送门1.蒙太奇实现动作切换准备两个攻击蒙太奇动画2.蒙太奇实现连击2.1 延迟连续操作我们希望在砍出atk1动作的同时,再次按下不是重复atk1的动作,而是进行二段动作,所以需要一个延迟操作2.2 完整的实现方案...原创 2022-04-19 16:46:54 · 536 阅读 · 0 评论 -
unreal-教程-第十章:蒙太奇实现拔剑动作
蒙太奇实现拔剑动作1. 制作蒙太奇动画2. 在骨骼中插入剑鞘Socket和手持Socket3. 添加剑的Mesh以及两个SceneNode3.1 SceneNode绑定Socket3.2 添加剑![的静态网格](https://img-blog.csdnimg.cn/06f5122f0bcf46ff8f0f97e4aa2de603.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y2c6Iul,siz原创 2022-04-19 12:46:47 · 736 阅读 · 0 评论 -
unreal-教程-第九章:动画状态机(触发动画)
动画状态机1. 问题分析2. 动画状态机的使用2.1 创建动画状态机2.2 添加节点2.3 编辑条件2.4 动态设置跳跃条件参数1. 问题分析现在,我们希望存在多个动画(挥砍,跳跃等触发动画),并且能够很好的控制,我们需要引入动画状态机2. 动画状态机的使用2.1 创建动画状态机2.2 添加节点2.3 编辑条件2.4 动态设置跳跃条件参数跳跃有个浮空时间,基本逻辑是我们按下Space键,然后,让跳跃时间为0.6s根据动画时长来,然后在tick中,让0.6-deltaTim原创 2022-04-17 20:30:35 · 1002 阅读 · 0 评论 -
unreal-教程-第八章:动画平滑
动画平稳衔接1.问题分析1.1 Veocity1.2 代码实现1.问题分析当我们直接用鼠标输入的信号作为混合树的输入,就会导致动画播放过程中没有任何斜街,也就是将混合平滑过程完美的忽视了。那么如果我们要手动去写这个平滑过程,也不是不行,逻辑页简单,就是代码有点多,尤其是使用蓝图之后,就比较复杂。如果有同学在Unity中实现过动画平滑,那么肯定深有体会。那么,我们是不是有更好的办法呢?我们可以直接利用Unreal中第三人称已经写好的角色运动的相关参数实现动画平滑。1.1 Veocity我们可以原创 2022-04-17 18:37:32 · 454 阅读 · 0 评论 -
unreal-教程-第七章:动画混合树
动画混合树1.资源网站介绍2. 混合树介绍2.1 资源的导入2.2 建立混合树2.3 编辑混合树2.3.1 混合树编辑界面介绍2.4 自定义第三人称的角色2.4.1 创建角色2.4.2 创建角色摄像机2.5 将混合树绑定给角色2.6输入控制混合树2.6.1 动画代理2.6.2 混合树绑定给代理2.6.3 角色绑定代理2.7 新的蓝图通信方式实现动画控制1.资源网站介绍现在,你们可以通过https://www.mixamo.com/获取一些动画和角色资源2. 混合树介绍现在,新建一个第三人称项目,并原创 2022-04-17 16:58:09 · 565 阅读 · 0 评论 -
unreal-教程-第六章:蓝图通信初步
蓝图通信初步1. 接口的使用1.1 创建接口1.2 定义接口函数1.3 实现接口函数1.4 调用函数接口1. 接口的使用蓝图接口是基于GameObject的接口。哎,希望你能理解吧。简单的来讲,接口是抽象一组方法的集合。在蓝图中,我们希望我们设置的任意对象能够拥有该函数,并使得该函数能够被其它对象调用。假设,我们有A对象,B对象,我们有接口C,有函数C.TestCall我们让B对象实现C,并定义C.TestCall:输出指定对象的位置,然后在A对象中调用,从而实现A和B的通信。1.1 创建原创 2022-04-13 20:22:11 · 775 阅读 · 0 评论 -
unreal-教程-第五章:GameMode初识与摄像机放置
摄像机跟随1. 创建摄像机1.1 创建摄像机蓝图1.2 放置摄像机1.2.1 配置GameMode1. 创建摄像机1.1 创建摄像机蓝图创建摄像机略微麻烦,在第三人称游戏里面,摄像机默认为主要的玩家视角,所以一般定义为Pawn类型。1.2 放置摄像机Unreal比较扯淡的就是多了一个GameMode现在,我们有一个摄像机,而原本TPC版本中也有一个自己的摄像机,那么我们应该以哪个摄像机为准呢?使用GameMode配置1.2.1 配置GameMode在TPC的默认资源中就已经存在原创 2022-04-13 20:03:39 · 3516 阅读 · 0 评论 -
unreal-教程-第四章:输入拦截与对象控制
输入拦截与对象控制1. 输入拦截1.1 拦截配置1.2 指定对象拦截输入1.3 实现W,S键控制Cube沿Y轴的运动2. 问题与分析2.1 两个蓝图分别调用InputAxis MoveForward,只有一个有效2.2 如何动态的(在蓝图)允许对象接受输入2.3 怎么将Vector转化成三个float数据1. 输入拦截来自键盘的信号会被计算机程序拦截。UE的底层逻辑自动完成了这一操作,我们可以直接获取到拦截的键盘输入。1.1 拦截配置Unreal的有些地方是挺扯淡的,它是配置文件+代码,也就是说原创 2022-04-13 15:41:16 · 1147 阅读 · 0 评论 -
unreal-教程-第三章:实现动态水平移动
unreal-教程-第三章:基本移动1. SetActorLocation函数1.1第一次使用蓝图实现位置变换2. Tick函数2.1 实现Move对象沿X轴移动2.1.1 定义变量2.1.2 基本累加策略2.1.3 实现水平移动1. SetActorLocation函数该函数可以设置输入Target对象的位置1.1第一次使用蓝图实现位置变换从(-1120,-30,190)->(-1120,250,190)运行结果2. Tick函数"Ticking" refers to ru原创 2022-04-12 17:09:51 · 509 阅读 · 0 评论 -
unreal-教程-第二章:Hello World
1.第一行代码使用蓝图输出一行Hello World1.1蓝图区1.2 Event BeginPlay介绍当游戏运行时,会依次回调整个场景中所有GameObject的BeginPlay事件1.3 屏幕输出函数原创 2022-04-12 15:49:03 · 2679 阅读 · 0 评论 -
unreal-教程-第一章:初见Unreal
第一章:初见Unreal创建第三人称项目运行游戏控制人物移动GameObject定义一个GameObject创建资源文件夹创建蓝图文件夹与蓝图Move修改Move对象的Mesh为Cube创建第三人称项目运行游戏控制人物移动GameObject我们称所有在场景中实例化出来的对象为GameObject比如下图中箭头指示的我们可以直接从左侧菜单栏拖拽GameObject到场景中定义一个GameObjectUE中定义GameObject的方式有两种:基于c++和基于蓝图(blue p原创 2022-04-12 00:15:03 · 4011 阅读 · 0 评论