我的不需要选择,也是圆形盒体
我的不需要选择,也是圆形盒体
暂记,当时间是个位数时,并没有补0
小结-触发器:
1、无触发器时,**开始(started)→ 触发(Triggered)*N → 完成(Completed)**这样;
2、触发器下移时,0→1这个进度条一样的过程中可以设定阈值,达到阈值后,出现上述过程;可以说触发器下移,是无触发器的一个升级版,将其触发后保留,触发真假变为一个过程;
注意:
1、其中,键盘鼠标无力反馈,无法看出变化过程;
2、阈值为0时,无法触发,后续情况是可能出现其他问题;所以**阈值范围 (0, 1] **;
3、触发器已按下时,随着进度达到阈值,出现过程:
** 开始(started)→ 触发(Triggered) → 完成(Completed)**
4、触发器已松开时,阈值也是表达按下达到程度,可以触发开始,其后蓄力时间内则均为持续:
**开始(started)→ 触发(Triggered) → 持续(ongoing) * N → 完成(Completed)**
5、触发器弦操作时,相当于触发器这一前提条件下又加了一个前置条件;必须满足已有触发器触发时才可能触发当前触发器;
6、触发器点按时,当时间间隔小于阈值,被认为是点按,过程为:
**开始(started)→** **持续(ongoing) * N** **→ 触发(Triggered) →** **完成(Completed)**
间隔大于阈值,则被认为非是点按,则取消,过程为:
**开始(started)→** **持续(ongoing) * N** **→** **取消(Canceled)**
可进行时间膨胀系数设定;
7、触发器组合时,可组合多个触发器,当阈值时间内都触发时,进而触发组合的触发器,当有触发器未触发时,则取消操作;
8、触发器脉冲时,勾选开始触发,则过程如下:
**开始(started)→** **触发(Triggered) →** **持续(ongoing) * N** **→ 触发(Triggered)**** →** **持续(ongoing) * N** ** ** …… **→** **完成(Completed)**
未勾选时,则先持续后触发;
触发限制后,达到触发次数直接完成;
持续未达时间时,会以取消收尾,而非完成;
9、触发器长按,过程如下:
**开始(started)→** **持续(ongoing) * N** **→ ****触发(Triggered) **** * N** **→ ** **完成(Completed)**
未到触发阈值时间,则持续后直接取消;
勾选一次性,则触发只一次,后就完成;
10、触发器长按和松开时,当没到长按阈值就松开,过程如下:
**开始(started)→** **持续(ongoing) * N** **→ ****取消(Canceled)**
当超过阈值松开,过程如下:
**开始(started)→** **持续(ongoing) * N** **→ 触发(Triggered) → ** **完成(Completed)**
这里不需要Add与Reduce两个变量,只用一个就可以,比如true表示变化中,false表示不在变化中,变化前就设置为true,时间轴完成后,就设置回false,两者都遵循同一规则;与此同时,有这一变量作为开关,do once就可以去掉了,原本其就是起到一个开关的效果,两个开关都是以时间轴完成作为重置条件
GameplayCueNotifyPaths="/Game/Blueprints/Gameplay/Cues"
这个参数不要用\斜杠,要用/反斜杠。不然会报错闪退
数组与结构体
按下按键之后,超过一定的(保存时间阈值)秒数,才会进行相应的触发。
增强输入触发器
下移:对手柄等有力反馈的外设有作用;
已按下:添加该触发器,Triggered只执行一次 ,设置手柄时,驱动阈值应设置在大于0小于等于1之间(阈值对键盘无效,键盘只有0和1);
已松开:添加该触发器,Ongoing会触发,设置手柄时,驱动阈值应设置在大于0小于等于1之间(阈值对键盘无效,键盘只有0和1);
弦操作:绑定一个输入操作,绑定的操作是处于触发过程中,才能触发弦操作;
点按:需要在规定的时间(点按释放时间阈值)内,按下并且抬起器绑定的按键,输入操作才能触发
增强输入触发器
下移:对手柄等有力反馈的外设有作用
操作映射和轴映射输入系统
操作映射
主要处理按一下触发一下的事件
优点:适合处理简单的按键事件
缺点:不太适合处理连续输入的事件
轴映射
主要处理连续输入的事件
优点:比较灵活,可以处理连续输入的事件
缺点:配置比较复杂,不太容易处理简单的按键事件
增强输入系统
一个比较新的输入系统它可以提供更多的灵活性和控制能力
优点:高度定制,可以设置我们的输入的优先级和条件,可以控制更加复杂的游戏输入
缺点:学习成本高兼容性可能没有那么完善
其实连段最后一下也可以设置一个可以攻击的Notify。
因为超出Array index上限了反正也不会攻击。如果后续再添加连段也不需要再改这个了。
但是就是在设置"不可攻击"状态的时候得判断一下,如果已经达到combo上限了就不允许设为true。
可以根据角色模型添加对应的碰撞(可以附加到插槽!!!)
2D角色则在每个动画中添加插槽
overlap测试:
检测从情景生成的点是否与目标产生重叠
遇到不会的就去查询虚幻文档
Dot:
计算2个矢量之间的点积,主要测试情景是否面向其他
点积结果是标量
=1 方向一样
=-1方向相反
可用于躲猫猫AI
测试一般使用Provide ActorsSet开始
测试:
Distance:
计算距离到情景的权重,根据测试目的来决定最优项
情景:
自定义情景
生成器的搜索中心就是情景的用武之地
EQS(场景查询):从环境中收集数据
主要节点:
生成器:
基于场景生成后选项,后选项被用于后续查询
测试:
测试在指定情景下,从生成器产生的哪一个项目是最佳选项
情景 :
生成器的生成中心
让AI根据EQS查询结果,做出更智能的决策
需要在项目设置-AI系统-勾选EQS
生成器节点:
合成
自定义:EnvQueryNode
ActorOfClass:
在半径内搜索指定类,不受障碍物阻挡
使用EQS的意义:更精确地获取数据
刺激物数组就是你自己配置的感官
可以获取刺激物数组,来设置不同ai角色的感官参数!!!!!
使用枚举来设置ai的状态,以达成更复杂的判断
枚举键需要指定类型
行为树的任务执行逻辑很重要
在逻辑相似的任务中,请使用枚举进行额外判断(bool也可)
切换状态时,记得更新黑板键
注意观察器的中止!!!
loop装饰器可以循环执行制定次数分支
黑板的键值需要在控制器中初始化