UE5高薪就业班-1v1服务-就业无忧 扫二维码继续学习 二维码时效为半小时

(6评价)
价格: 13800.00元

ai感知组件:

让ai模拟人类的感官

一般放在单个pawn中

若是集群pawn,则放在控制器中

添加感官配置,相当于添加对应人体器官

注意!虚幻的单位是cm

视力配置:

次要视觉半径:余光范围角度

到上个已见位置的自:若被ai捕捉过,且在视觉范围内,则ai可视目标

视点向后偏移:可视范围偏移

最大年龄:可视目标有效期

若有多个感官,则需要设置主导感官

运行了ai行为树的控制器,在其控制的pawn中,可以获取黑板

[展开全文]
DUChicken · 07-29 · 0

要移动到实时的位置时,不能使用过程节点的引脚(例如移动完成时)

[展开全文]
DUChicken · 07-29 · 0

服务前缀:BTS

需要事件启动:

Event Receive Activation AI

不需要中止

将变量暴露,可以在服务中设置

[展开全文]
DUChicken · 07-29 · 0

黑板键值默认不赋值

黑板键可以被设置也可以被传递

传递时,需要将黑板键以目标类型传递

设置时,需要将黑板键以目标类型设置

以上需要指定黑板键,在任务内,黑板键需要设置为可编辑实例

[展开全文]
DUChicken · 07-29 · 0

ai行为树的第一个合成节点可以为Selector

可以使用FinishWithResult来返回结果配合Selector执行一系列操作(或者使用Sequence )

任务前缀:BTT

任务需要重载:

Event Receive Execute AI:事件接收执行AI

在执行末尾需要完成执行结束

若涉及键的更改,则需要新建黑板键选择器变量,设置对应的类型,该黑板键需要开启可编辑实例

[展开全文]
DUChicken · 07-29 · 0

行为树从根开始运行

根节点只能连接合成节点

合成节点:

Selector:

类似逻辑或(||),子节点任意一个成功,则返回成功,只有全部失败才返回失败

Sequence:

类似逻辑与(&&),子节点任意一个失败,则返回失败,只有全部成功才返回成功

SimpleParallel:

开始执行主任务时,次要任务会在后台执行,主任务执行完成之后,根据完成模式来决定次要任务的执行或终止

可添加装饰、服务节点

装饰器节点:

不会执行任何行为,根据特定条件影响其所在子节点的执行(类似子节点添加了执行条件)

观察者中止:

None:不进行中止

self:中止所在的节点

LowPriority:中止同级但执行顺序低于自己的节点

both:self和LowPriority

观察者通知:

OnResultChange:黑板装饰器条件改变时

OnValueChange:指定黑板键改变时

 

合成:

组合判断条件

黑板装饰器:

判断黑板条件或检测黑板键的改变

游戏标签检查器:

 

黑板条目比较装饰器

 

自定义装饰器

 

 

服务节点:

用于检查和更新黑板

SetDefaultFocus:

设置默认聚焦,AI角色的关注点(可以是任何键),在决策过程中起重要作用

RunEQS:

定期查询场景更新,也能更新黑板键,可设置执行间隔和EQS服务(黑板键或模板)

自定义服务

 

任务节点:

角色执行自定义的功能

自定义任务(重要)

 

根节点无法附加装饰器节点和服务节点,可以指定黑板

可以根据节点的数字明确执行顺序

[展开全文]
DUChicken · 07-29 · 0

行为树是人工智能更方便的工具,依赖于黑板资产

黑板的键类似于变量

行为树命名前缀:BT

黑板命名前缀:BB

[展开全文]
DUChicken · 07-29 · 0

获取随机移动点:

GetRandomReachablePointInRadius

[展开全文]
DUChicken · 07-29 · 0

要规范AI角色的移动范围,需要铺设AI导航网格体

AIMoveTo的目标优先级:

TargetActor-Destination

[展开全文]
DUChicken · 07-29 · 0

生成法球时注意传递的Scale的值

[展开全文]
ReimsW · 07-23 · 0

修复角色攻击时死亡会在躺下之后站起来的BUG。

 

来到ToAttack函数中,把setComboAttack节点放前面,把JumpToNode节点放后面。然后在jumpToNode节点前面增加一个branch判断角色是否死亡。

以上描述的方法可以保证comboIndex可以正常更新(虽然可能不需要了),但是在攻击动画结束时的Notify不会把动画引导回状态机判断逻辑中。

[展开全文]
ReimsW · 07-20 · 0

蓝图通信

1、直接蓝图通信:

1)使用获取类的actor(get class actor)节点,使用该节点时,当场景有多个实例,会返回第一个蓝图类(需要先在关卡中实例化相关的蓝图类)

2)获取类的所有的actor,获取到指定类的所有actor,返回的是actor的集合

3)重叠时事件

4)第三方通信,通过其他蓝图类,访问到目标蓝图类

5)使用生成actor(spawn actor)节点

6)获取玩家角色,直接获取到角色

7) 类型转换为(cast to),object获取到的是当前控制的角色

2、蓝图接口: 

3、事件分发器:

[展开全文]
风语远途 · 07-18 · 0

可以在蓝图类中预留变量,在生成或事件时进行传入,以达到优化的目的

传入可搭配接口使用!!!以达到双重优化的目的

进行传入可降低耦合性,传入建议使用基类存储

多使用接口!降低耦合性!

接口处理通用的逻辑效果明显!也能达到优化的目的

初始化要注意什么时候调用,有生成对象的话需要放在beginplay

[展开全文]
DUChicken · 07-16 · 0

摄像机管理器用于切换摄像机

可以在控制器中使用事件获得pawn来将玩家传递给摄像机管理类

一定要注意在控制器中指定摄像机管理类

蓝图更新摄像机需要在返回节点设置fov和勾选bool值

原理:

玩家控制器将受控制的类传给指定的CameraManger,CameraManger通过这个类生成摄像机并设置摄像机的变换

CameraManger本质上是个更好管理的相机类

获取的控制器只能是CameraManger拥有的,而不是玩家的控制器

CameraManger默认在原点旋转,想要定义旋转请到下一节课

[展开全文]
DUChicken · 07-15 · 0

蹲伏需要设置可蹲伏,蹲伏设置半高

跳跃和蹲伏使用内置方法即可

角色运动状态发生改变时,有对应的事件调用,去找找!

需要先调用父类的事件:

拥有事件开始/结束蹲伏

事件移动模式变化时

可用上述事件来动态更新状态,节省性能

[展开全文]
DUChicken · 07-15 · 0

状态切换条件建议直接使用bool值,设置bool值的逻辑放在tick中更新

[展开全文]
DUChicken · 07-15 · 0

时间轴使用的值需要以变量的形式输入

使用TimeLine改变摄像机的局部位置来控制摄像机的晃动

使用节点和CameraShake蓝图来配置摄像机晃动

[展开全文]
DUChicken · 07-14 · 0

缓存姿势可用于将动画资源进行缓存,方便调用和复用

缓存的姿势需要使用节点进行使用

[展开全文]
DUChicken · 07-13 · 0

姿势快照缓存单帧,一般在蓝图类中(非动画蓝图类)使用

需要获得动画实例来保存

[展开全文]
DUChicken · 07-13 · 0