当前位置: 首页 > news >正文

斯坦福UE4 C++课学习补充25:AI感知组件

文章目录

  • 一、引入感知组件并绑定委托
  • 二、优化角色旋转

一、引入感知组件并绑定委托

  1. PawnSensingComponent是UE中用于感知其他 Pawn(或 Actor)存在的一个组件,常用于 AI 角色的视觉、听觉等感知功能。它为 AI 提供了基础的感知能力,允许它们在游戏中做出智能反应,如检测玩家位置、追踪目标等。
  • 功能:视觉感知、听觉感知、视锥角度
  • 主要属性
    SightRadius(视觉半径):控制 Pawn 能看到的最大距离。
    SensingInterval(感知间隔):设置每次感知的时间间隔,减少感知的频率来优化性能。
    HearingThreshold(听觉阈值):AI 需要检测的最低噪音水平。
    PeripheralVisionAngle:定义视觉的视野角度。
//SAICharacter.h
void SetTargetActor(AActor* NewTarget);
UPROPERTY(VisibleAnywhere, Category = "Components")
UPawnSensingComponent* PawnSensingComp;UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Components")
USAttributeComponent* AttributeComp;UFUNCTION()
void OnPawnSeen(APawn* Pawn);
//SAICharacter.cpp
PawnSensingComp = CreateDefaultSubobject<UPawnSensingComponent>("PawnSensingComp");void ASAICharacter::OnPawnSeen(APawn* Pawn)
{SetTargetActor(Pawn);//DrawDebugString(GetWorld(), GetActorLocation(), "PLAYER SPOTTED", nullptr, FColor::White, 4.0f, true);}
void ASAICharacter::SetTargetActor(AActor* NewTarget)
{AAIController* AIC = Cast<AAIController>(GetController());if (AIC){AIC->GetBlackboardComponent()->SetValueAsObject("TargetActor", NewTarget);}
}
  1. 委托绑定初始化
void ASAICharacter::PostInitializeComponents()
{Super::PostInitializeComponents();PawnSensingComp->OnSeePawn.AddDynamic(this, &ASAICharacter::OnPawnSeen);AttributeComp->OnHealthChanged.AddDynamic(this, &ASAICharacter::OnHealthChanged);
}

二、优化角色旋转

  1. 在观察AI角色移动时,我们注意到AI角色在转向时是一下就转到就看到的角色方向,非常突兀。为了优化,可以在MovementComponent组件里勾选使用控制器所需的旋转。该选项将使角色按照旋转速率平滑地旋转到目标角度。
  • 想使上述选项生效,还需取消勾选自身细节面板里的使用控制器旋转Yaw,这样AI控制器不再强制设置角色当前的Yaw,实现Movement组件完全控制角色的旋转。*

相关文章:

斯坦福UE4 C++课学习补充25:AI感知组件

文章目录 一、引入感知组件并绑定委托二、优化角色旋转 一、引入感知组件并绑定委托 PawnSensingComponent是UE中用于感知其他 Pawn&#xff08;或 Actor&#xff09;存在的一个组件&#xff0c;常用于 AI 角色的视觉、听觉等感知功能。它为 AI 提供了基础的感知能力&#xff…...

大模型 memory 记忆 缓存的应用

在探讨大模型的“memory”&#xff08;记忆&#xff09;功能时&#xff0c;我们通常会涉及缓存、存储以及如何有效管理和利用这些记忆来增强模型的性能。以下是对大模型memory记忆、缓存及相关概念的详细分析&#xff1a; 一、大模型的记忆功能 大模型&#xff0c;特别是大型…...

perl 给特定文件加上特定内容

perl 给特定文件加上特定内容 给所有的输入文件&#xff0c;加上特定的内容 本例中&#xff0c;给所有的输入文件内加入## Copyright xxx 如果检测到已经有## Copyright字样的行&#xff0c;那么不添加&#xff0c;具体代码如下。 可以使用该脚本&#xff0c;给所有的verilog文…...

全面解析网络性能监控系统与网络故障排除技巧,助力IT运维高效管理

目录 一、什么是网络性能监控系统&#xff1f; 1.1 网络性能监控系统的定义与作用 二、网络性能监控的关键指标 三、网络故障排除的重要性 3.1 为什么网络故障排除至关重要&#xff1f; 3.2 网络故障的常见类型 四、如何高效进行网络故障排除&#xff1f; 4.1 系统化的…...

Centos7 搭建单机elasticsearch

以下是在 CentOS 7 上安装 Elasticsearch 7.17.7 的完整步骤&#xff1a;&#xff08;数据默认保存在/var/lib/elasticsearch下&#xff0c;自行更改&#xff09; 一、装 Java 环境 Elasticsearch 是用 Java 编写的&#xff0c;所以需要先安装 Java 运行环境。 检查系统中是…...

【前端】Bootstrap:JavaScript 组件与插件

Bootstrap 不仅提供了强大的 CSS 工具和组件&#xff0c;还内置了丰富的 JavaScript 组件和插件。这些 JavaScript 组件能够增强网页的交互性&#xff0c;让开发者在不编写大量 JavaScript 代码的情况下快速实现各种动态效果。Bootstrap 的 JavaScript 组件基于 jQuery&#xf…...

部署 Open WebUI

1. 安装docker 2.启动Hyper-v 3.下载 安装 WSL wsl --update wsl --install 4. 打开 DeskDocker 5. 打开 运行 ollama 参考 Windows 部署 ollama-CSDN博客 6. 部署 运行 open webui docker docker run -d -p 3000:8080 --add-hosthost.docker.internal:host-gateway -v o…...

HUAWEI_HCIA_实验指南_Lib2.1_交换机基础配置

1、原理概述 交换机之间通过以太网电接口对接时需要协商一些接口参数&#xff0c;比如速率、双工模式等。交换机的全双工是指交换机在发送数据的同时也能够接收数据&#xff0c;两者同时进行。就如平时打电话一样&#xff0c;说话的同时也能够听到对方的声音。而半双工指在同一…...

第4天:用户界面和布局补充材料——`activity_login.xml`解读

下面是对“第4天&#xff1a;用户界面和布局补充材料”该文学习的更深层次的补充材料&#xff0c;对 activity_login.xml 文件的理解。 下面对activity_login.xml’ 文件中每一行进行详细解释&#xff1a; <?xml version"1.0" encoding"utf-8"?>声…...

《深入浅出LLM基础篇》(五):Propmt工程优化

&#x1f389;AI学习星球推荐&#xff1a; GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学习资料&#xff0c;配有全面而有深度的专栏内容&#xff0c;包括不限于 前沿论文解读、…...

基于WebSocket实现简易即时通讯功能

代码实现 pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><groupId>org.springframework.boot</groupId><artifa…...

2012年国赛高教杯数学建模D题机器人避障问题解题全过程文档及程序

2012年国赛高教杯数学建模 D题 机器人避障问题 图1是一个800800的平面场景图&#xff0c;在原点O(0, 0)点处有一个机器人&#xff0c;它只能在该平面场景范围内活动。图中有12个不同形状的区域是机器人不能与之发生碰撞的障碍物&#xff0c;障碍物的数学描述如下表&#xff1a…...

Linux驱动开发——设备树

文章目录 1 什么是设备树&#xff1f;2 DTS、DTB和DTC3 DTS语法3.1 dtsi头文件3.2 设备节点3.3 标准属性3.4 根节点compatible属性3.5 向节点追加或修改内容 4 创建小型模板设备树5 设备树在系统中的体现6 绑定信息文档7 设备树常用OF操作函数7.1 查找节点的OF函数7.2 查找父/子…...

spring boot 2.7整合Elasticsearch Java client + ingest attachment实现文档解析

一、软件环境 软件版本号备注Spring boot2.7.23.x版本建议使用ElasticSearch8.xElasticSearch7.17.4ElasticSearch 7.x 可使用JDK 8 ElasticSearch 8.x 要求使用JDK 11 二、安装ElasticSearch 下载地址&#xff1a;https://artifacts.elastic.co/downloads/elasticsearch/el…...

一、PyCharm 基本快捷键总结

PyCharm 快捷键 前言一、编辑&#xff08;Editing&#xff09;二、查找/替换(Replace)三、运行(Running)四、重构(Refactoring)五、基本(General) 前言 下面我们将学习一些 Pycharm 中的快捷键来帮我们更好的使用工具。 一、编辑&#xff08;Editing&#xff09; 快捷键快捷键…...

Windows系统C盘爆满了,如何清理?

Windows系统C盘爆满了&#xff0c;如何清理&#xff1f; 大家好&#xff0c;我是秋意零。 相信使用过Windows系统的朋友&#xff0c;都见过C盘那道靓丽的 “红色风景线” &#xff01; 我自己的Win10系统&#xff0c;已经使用了4-5年时间了。最近频频出现"红色风景线&q…...

【C++】踏上C++学习之旅(一):初识C++和命名空间

文章目录 前言1. 初识C2. C的发展阶段2. 命名空间2.1 为什么要有命名空间&#xff1f;2.2 命名空间的语法2.3 命名空间的原理2.4 使用命名空间的三种方式2.4.1 加命名空间名称及作用域限定符( :: )2.4.2 使用using关键字将命名空间中某个成员 引入2.4.3 使用using namespace 命…...

tensorflow入门案例手写数字识别人工智能界的helloworld项目落地1

参考 https://tensorflow.google.cn/?hlzh-cn https://tensorflow.google.cn/tutorials/keras/classification?hlzh-cn 项目资源 https://download.csdn.net/download/AnalogElectronic/89872174 文章目录 一、案例学习1、导入测试和训练数据集&#xff0c;定义模型&#xff…...

深度学习——线性神经网络(三、线性回归的简洁实现)

目录 3.1 生成数据集3.2 读取数据集3.3 定义模型3.4 初始化模型参数3.5 定义损失函数3.6 定义优化算法3.7 训练 在上一节中&#xff0c;我们通过张量来自定义式地进行数据存储和线性代数运算&#xff0c;并通过自动微分来计算梯度。实际上&#xff0c;由于数据迭代器、损失函数…...

本地部署 Milvus

本地部署 Milvus 1. Install Milvus in Docker2. Install Attu, an open-source GUI tool 1. Install Milvus in Docker curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.shbash standalone_embed.sh …...

SpringBoot+Vue民宿管理系统源码+论文

代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 分享万套开题报告任务书答辩PPT模板 作者完整代码目录供你选择&#xff1a; 《SpringBoot网站项目》1800套 《SSM网站项目》1500套 《小程序项目》1600套 《APP项目》1500套 《Python网站项目》…...

自托管链接管理工具LinkPress:从技术栈到部署实战

1. 项目概述&#xff1a;从“LinkPress”看开源链接聚合工具的演进最近在折腾个人知识库和内容管理时&#xff0c;发现了一个挺有意思的开源项目——mindori/linkpress。乍一看这个名字&#xff0c;你可能会联想到WordPress&#xff0c;没错&#xff0c;它的灵感确实来源于此&a…...

数据库——(DB、DBMS、SQL)

数据库——&#xff08;DB、DBMS、SQL&#xff09; 前言数据库是存放数据的仓库。它的存储空间很大&#xff0c;可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放&#xff0c;是有一定的规则的&#xff0c;否则查询的效率会很低。当今世界是一个充满…...

零代码也能做游戏?用UE5蓝图系统10分钟做个会转的潜艇(附完整资产包)

零代码游戏开发&#xff1a;用UE5蓝图10分钟打造动态潜艇 当第一次打开虚幻引擎5时&#xff0c;许多初学者会被其庞大的功能体系所震撼——从影视级的光照系统到数百万面的高精度模型渲染&#xff0c;这款引擎几乎能实现任何你能想象到的视觉效果。但更令人惊喜的是&#xff0c…...

Perplexity企业版部署倒计时:仅剩3个关键License配额可申领,附2024Q3企业版SLA服务等级白皮书摘要

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity企业版核心价值与定位 Perplexity企业版并非通用问答工具的简单升级&#xff0c;而是面向现代数据驱动型组织构建的**可信AI协作者平台**。它深度融合企业知识图谱、权限感知检索与可审计推理…...

透视 Mission Control 源码:如何构建高性能的 Agent 实时监控架构?

在 AI Agent 爆火的当下&#xff0c;我们正从“对话式 AI”迈向“行为式 AI”。然而&#xff0c;当数十个 Agent 同时运行&#xff0c;处理复杂的链上交易或长程任务时&#xff0c;开发者面临的最大挑战往往是&#xff1a;观测性&#xff08;Observability&#xff09;。你无法…...

TinyGPT-V 和 MiniGPT-4 在架构设计上的主要区别

MiniGPT-4 是“大 LLM 冻结视觉编码器 单层线性投影”的经典桥接式 MLLM&#xff1b;TinyGPT-V 是“小 LLM 视觉模块 更复杂 mapping / norm / LoRA 训练策略”的轻量化 sVLM。1. 总体架构对比对比项MiniGPT-4TinyGPT-V设计目标验证强 LLM 接入视觉后可涌现 GPT-4V 类多模态…...

VSCode搭配MinGW-w64打造Windows下C++开发环境:从安装、配置到调试一条龙

VSCode搭配MinGW-w64打造Windows下C开发环境&#xff1a;从安装、配置到调试一条龙 在Windows平台上进行C开发&#xff0c;选择合适的工具链往往能事半功倍。虽然Visual Studio提供了完整的解决方案&#xff0c;但许多开发者更青睐轻量级、高度可定制的VSCode编辑器。本文将带你…...

别再猜了!手把手教你识别并解码家里那些“身份不明”的红外遥控器(NEC/RC5/RC6初步判断)

红外遥控器协议侦探指南&#xff1a;快速识别NEC/RC5/RC6编码 家里积攒的旧遥控器越来越多&#xff0c;每个按键背后究竟藏着什么秘密&#xff1f;当你试图用智能家居系统整合这些设备时&#xff0c;第一步往往不是学习信号&#xff0c;而是破解这些"黑盒子"的通信语…...

JoyCon-Driver:让Switch手柄在Windows上重获新生的完整方案

JoyCon-Driver&#xff1a;让Switch手柄在Windows上重获新生的完整方案 【免费下载链接】JoyCon-Driver A vJoy feeder for the Nintendo Switch JoyCons and Pro Controller 项目地址: https://gitcode.com/gh_mirrors/jo/JoyCon-Driver 你是否曾经想过&#xff0c;让闲…...