Godot 4 插件 - Utility AI 研究

godot调用AI大模型(科大讯飞) 在使用godot进行游戏开发中集成大模型的功能,可以实现NPC对话、剧情生成等许多功能,提高游戏的可玩性与不确定性,使得每一局游戏都是独一无二的。目前,调用大模型最主流的就是使用python实现,但是可惜godot并不支持python,因此只能通过其他方法进行调用,通常需要通过 HTTP 请求与模型的 API 接口交互,或着是使用本地部署的模型,本文以使用HTTP 请求调用科大讯飞大模型为例,其他大模型也是一样的。本文所用godot版本为4.3,编程语言为GDscript. 阅读详情

今天看到一个视频教学

Godot4 | 实现简单AI | Utility AI 插件_哔哩哔哩_bilibili

就看了一下。吸引我的不是插件,是AI这两个字母。这AI与Godot怎么结合?感觉还是离线使用,值得一看。

视频时间不长,15分钟左右,看得我云山雾罩,不过演示项目能直接下载(AI Demo.zip官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘)

下载下来,能运行,是个小游戏,不过逻辑没大看明白,可能以后看明白后会觉得很简单,但初接触,里面的弯弯绕那么多,一时不好理。

看介绍里还有一个插件自带Demo(godot-utility-ai-examples.zip官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘),感觉会简单一些。下载打开一看,果然简单很多。

插件自带Demo

因为Demo就一个场景AgentExample,且子节点就两个,这样就清爽了。

 不过运行一下,感觉没啥吸引力,就几个数字在那里变来变去。怎么能与AI挂上钩?

肯定是我理解的问题,再看一下

主场景的脚本很简单

func _ready():
	var needs: AgentNeeds = $Agent.needs
	needs.food_changed.connect(%FoodBar._on_needs_changed)
	needs.fun_changed.connect(%FunBar._on_needs_changed)
	needs.energy_changed.connect(%EnergyBar._on_needs_changed)

	$Agent.state_changed.connect(%StateLabel._on_state_changed)

就是把几个进度条的显示与needs的相应信号绑定到一起了,每个显示的处理逻辑都是一样的

func _on_needs_changed(p_value: float) -> void:
	value = p_value

这好象没啥,数据正常显示。

哦,数据怎么来的?这个needs变量是AgentNeeds类型,从agent_needs.gd来看,这是一个Resource。

# Copyright (c) 2023 John Pennycook
# SPDX-License-Identifier: 0BSD
class_name AgentNeeds
extends Resource


signal food_changed(value)
signal fun_changed(value)
signal energy_changed(value)


@export var food := 0.5 : set = _set_food
@export var fun := 0.5 : set = _set_fun
@export var energy := 0.5 : set = _set_energy


func _set_food(p_food: float) -> void:
	food = clamp(p_food, 0.0, 1.0)
	food_changed.emit(food)


func _set_fun(p_fun: float) -> void:
	fun = clamp(p_fun, 0.0, 1.0)
	fun_changed.emit(fun)


func _set_energy(p_energy: float) -> void:
	energy = clamp(p_energy, 0.0, 1.0)
	energy_changed.emit(energy)

Godot有点意思,在资源里还带有逻辑。这不闹嘛,还是脚本。在理解的领域,把资源与脚本画一个约等于符号。

这个资源有三个属性,对应三个写方法,然后会触发三个相应的信号。仅此而已。这还是没有看到数据的起源。

再看一下脚本情况,还剩下一个agent.gd,是绑定到Agent节点的脚本。难道这里还有入口?

哦,看到A

Godot 4 源码分析 - 增加管道通信 学习研究Godot 4,很爽,虽然很庞杂,但相对于自己的水平来说,很强大,尤其是vulkan这块直接打包可用,省得自己从头琢磨。一点一点地消化、优化与完善,最终才能成为自己的。这段时间就在Godot的基础上,增加管道通信,实现Godot与本机已有程序进行通信,以备后续的无缝集成整合。其实,Godot支持各种网络通信,支持UDP、TCP等。为什么非要实现管道通信,本质上还是想看看改造效果。最终目标是实现Godot软件与自己的DrGraph软件的管道通信。 阅读详情

相关推荐

谈一谈游戏AI - Utility

Utility AI 会根据当前所处的游戏环境对所有需要执行的 action 进行评分(确定 score),然后从中选取分数最高的一项任务执行。

afriedegg的博客 1019

Godot引擎构建可扩展回合制RPG框架:从核心架构到实战实现

在游戏开发领域,构建可扩展的游戏架构是确保项目长期可维护的关键。通过数据驱动设计,开发者可以将游戏逻辑与数据分离,实现策划与程序的高效协作。基于状态机的系统管理能够清晰控制复杂流程,如回合制战斗中的状态切换。这些技术不仅提升了代码的可读性,还便于后续功能迭代,例如添加元素克制或连携技等玩法。在Godot引擎中,其独特的节点场景架构与资源系统天然契合这种设计理念,特别适合用于开发2D回合制角色扮演游戏。本文以实战为导向,深入解析如何利用Godot的TileMap系统、信号通信机制与GDScript脚本,构建一

dianning8393的博客 366

游戏AI开发实战:基于行为树实现角色智能捉迷藏行为逻辑

在游戏开发与交互应用设计中,角色行为逻辑是赋予虚拟角色生命力的核心技术。其核心原理是通过算法模拟角色的感知、决策与执行过程,从而创造出符合逻辑且生动的交互体验。行为树作为一种模块化、可维护的AI架构,通过树形节点组合实现复杂决策,相比传统状态机或硬编码逻辑,能更优雅地管理多状态转换与优先级处理,显著提升开发效率与代码可读性。在游戏AI、教育应用、虚拟角色等应用场景中,合理的行为逻辑设计能极大增强用户体验与沉浸感。本文以“捉迷藏”这一经典交互场景为例,深入剖析如何综合运用行为树、状态机与寻路算法,构建一个从巡

weixin_34054931的博客 420

Godot4 你的第一个 3D 游戏 上集

Godot4 3D

watch361的博客 3810

Utility-AI-for-Video-Games:一个展示什么是Utility AI以及如何在Unity Engine中实现它的项目

用于视频游戏的State Machine Utility AI(坦克演示) 一个Tank Game项目,展示了什么是Utility AI以及如何使用Unity Engine和C#在视频游戏中实现它 适用于macOS的可下载演示: 链接到我和我的业务合作伙伴从事的商业iOS游戏,该游戏实现了Utility AI系统: 如果要查看所有C#脚本,则它们位于此GitHub存储库中的Assets/Scripts/位置。 截屏 什么是Utility AI? Utility AI系统是一种状态机AI,它根据诸如距离,健康状况,得分等因素来基于数学函数确定要执行的AI状态。 然后执行得分最高的AI状态。 为什么需要Utility AI? 人工智能是开发有趣且令人上瘾的视频游戏的最重要方面。 它可以成就或破坏您的游戏。 它必须是正确的融合。 制作视频游戏AI的最简单方法是使用if-else语句

长鑫存储面试真题解析:DRAM工程师的工程直觉与产线思维

DRAM作为现代计算系统的底层存储基石,其性能与可靠性高度依赖半导体物理基础、工艺窗口控制和电路-系统协同设计。理解电荷保持机制、位线电容耦合效应、信号完整性约束等核心原理,是突破传统数字IC思维、构建真实产线语感的关键。在晶圆厂级工程实践中,TEM缺陷识别、BIST空间聚类分析、Retention失效定位等能力,直接关联良率爬坡与客户系统稳定性。本文聚焦长鑫存储一线技术面试中高频出现的工艺-电路-测试三维问题,融合‘电荷保持’‘信号完整性’等热词,还原DRAM工程师必备的系统性建模能力与闭环验证思维,覆盖

weixin_34293246的博客 336

loadStop的原因导致的SSUSP

Total内存值是可用来调度的可用内存,当前可用内存为 0M。 loadSched和loadStop的阈值是根据 Total 内存和节点内存来做限制的。 loadStop 50G,现在有大量作业SSUSP,说明之前某个时间点该节点内存可能有低于50G的时候,导致作业SSUSP,具体是否是这个原因引起的需要用 bjobs -l JobID 看下作业的详细信息。 如果是loadStop的原因导致的 SSUSP,根据loadStop设置的阈值,Total 值高于loadStop值后,将逐步恢复挂起的作业

Blueberry521的博客 666

VSCode + Copilot下:配置并使用 DeepSeek

以下是关于在中,通过插件配置并使用系列模型 () 的完整汇总指南。

jerwey的博客 1万+

Cursor生成JAVA相关的关键词提示规则

你是 Java 编程、Spring Boot、Spring Framework、Maven、JUnit 及相关 Java 技术的专家。在项目根目录创建一个.curstorrules文件(注意有个小数点),之后在该文件内填入下面内容。始终遵循 SOLID 原则,保持高内聚低耦合的 Spring Boot 应用设计。Java 和 Spring Boot 使用规范。Spring Boot 具体规范。

kitonGao的博客 2115

从《视觉SLAM十四讲》到项目实战:一文读懂拓扑地图与语义地图为何是服务机器人的未来

本文探讨了服务机器人地图技术的演进,从传统几何地图到拓扑地图与语义地图的跨越。通过分析栅格地图的局限性和拓扑地图、语义地图的优势,揭示了它们在动态开放环境中的智能应用。文章还介绍了多模态语义融合架构和动态语义更新技术,为服务机器人的未来发展提供了技术路线图。

weixin_30292843的博客 478

【宠物识别系统】设计框架

能跑通的 Demo。收集 10,000 张同品种但不同个体的图片。训练ArcFace模型,验证准确率能否达到 99% 以上。搭建Milvus向量数据库。开发移动端 App/小程序。加入“图像质量检测”和“用户反馈纠错”功能。你是更偏向于做软件服务(如寻宠App、保险API),还是做软硬结合的产品(如智能喂食器)?这决定了我们下一步是深挖云端高并发架构,还是边缘端模型压缩。更偏向于软件,应用更广泛些,继续既然专注于纯软件/SaaS (Software as a Service) 方向。

百态·数智思维 | 聚焦大数据、量化与未来AI 1413

2024年11月架构设计师案例分析真题回顾,附参考答案、解析及所涉知识点(二)

软考高级系统架构设计师考试包含三个科目:信息系统综合知识、案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午第二科案例分析的题目,同时附带参考解答、解析和所涉知识点。

一几文的编程学习笔记。 1659

ESP32-S3模组上跑通esp32-camera(32)

ESP32-S3模组上跑通esp32-camera(32)

phmatthaus的专栏 770

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: Godot 4 源码分析 - 获取脚本
下一篇: Godot 4 源码分析 - 动态导入图片文件
DrGraph
博客等级 码龄14年 228粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值