在虚幻引擎的小组项目中,我们实现了简单的对话功能。

对话功能要求:

  • 在靠近可对话的物体时,出现提示显示按下E对话
  • 按下E可以进行对话
  • 对话内容可以随着任务流程推进而更改
  • 离开可对话物体时,对话中断;再靠近时对话重新开始

首先我们搭建一个简单的对话功能

在内容侧滑菜单中右键,创建一个控件蓝图。

为控件蓝图添加一个画布面板以及两个文本组件。
“TalkText”文本组件默认为空,用于显示对话文本。
"RemindText"文本组件用于显示提示文本。

这两个对话组件都需要在细节面板中勾选“是变量”,以保证能够改变其文本内容。

随后在内容侧滑菜单中新建一个蓝图接口,我将其命名为Dialog。

蓝图接口用于在蓝图间传递信息。

所有能够对话的物体或人物,都将实现这个蓝图接口中的函数。

这样通过检测人物周围的物体是否实现这个Dialog接口,可以判断这个物体能否进行对话。如果实现了这个接口,调用接口的函数就能实现对话。

Dialog 蓝图接口设置两个函数:Talk函数(开启对话)与DialogEnd函数(用于在人物离开物体附近时结束对话)。

首先在角色蓝图中进行更改。

添加几个相关的变量

随后创建一个自定义事件:

每帧需要执行:

如果按下E,就执行:

事件开始时,添加控件:

这样,角色蓝图的部分就完成了。


新建一个蓝图类,我将其命名为NPC_1,这是可以对话的NPC类。

首先点击类设置,在细节面板里面添加刚才创建的接口Dialog(如下图红线所示)。

随后,在NPC_1中添加几个变量。

  • Dialog变量是文本数组类型,用于存储当前的对话
  • Dialog_1_0变量是文本数组类型,用于存储这个NPC的第一段对话
  • Dialog_1_1变量是文本数组类型,用于存储这个NPC的第二段对话
  • TalkIndex是int类型,用于存储目前对话在Dialog数组中的数组下标。
  • UseDialog是int类型,用于存储目前使用的是这个NPC的第几段对话
    (即使用的是Dialog_1_0还是Dialog_1_1)

蓝图部分一页放不下,因此我截了两张图:

先实现蓝图接口中的事件Talk

再实现蓝图接口中的函数DialogEnd

这样,就实现了整个对话功能。

如果需要更新NPC的对话,只需要更改NPC的UseDialog变量即可。这样NPC就会说下一段话。

效果如下:

在虚幻引擎中使用蓝图实现简单的对话相关推荐

  1. 虚幻4 python_技术前瞻:虚幻引擎中的 Python

    原标题:技术前瞻:虚幻引擎中的 Python 在Autodesk University上,我们简单展示了最新的研究,它将解决CAD数据导入虚幻引擎这一复杂问题.这是Datasmith研发过程中的重大突 ...

  2. 元宇宙开发:你在虚幻引擎中的第一个虚拟现实游戏

    了解如何开发零编程背景的Oculus Quest游戏 你会学到什么 为Oculus Quest构建应用程序 设计和开发虚拟现实游戏 在虚幻引擎中工作 使用材料和纹理 优化内容,实现移动和虚拟现实游戏的 ...

  3. 在虚幻引擎中使用Python批处理3:批量修改属性

    Unreal Python API 文档: - https://docs.unrealengine.com/4.26/en-US/PythonAPI/ 在上一篇文章在虚幻引擎中使用Python批处理2 ...

  4. 虚幻引擎中的反射(译)

    原文链接:https://www.unrealengine.com/en-US/blog/unreal-property-system-reflection?sessionInvalidated=tr ...

  5. 教你学会虚幻引擎中的光线追踪功能使用,此教程必看

    在本教程中将展示虚幻引擎中的光线追踪功能.为了比较光线追踪引入的变化,我从头开始构建了一个独特的环境,其中包括各种材料和模块化资产.光线追踪是一个很棒的工具,可以让你更好地控制场景的视觉方面. 启用光 ...

  6. 《从C语言过渡到C++和虚幻引擎中的C++编程》教程①

    本系列文字教程的受众对象是刚刚经历完大一上的C语言期末考试的.仅具有一定C语言基础的新生. 如果您是上述对象,在看完本系列教程之后,您将收获C++编程入门和虚幻引擎中的C++编程入门知识以及一些游戏开 ...

  7. 如何改善虚幻引擎中的游戏线程CPU性能表现

    您游戏中的帧频率是不是太低? 您了解为什么会发生这种现象吗? 这是不是由于您同时生成了太多敌人?还是由于某个特定敌人过于消耗系统资源? 是由于您设置了过多的视觉特效,还是由于您所设计的战斗系统所造成的 ...

  8. 终极Git课程——在虚幻引擎中的应用 The Ultimate Git Course – with Applications in Unreal Engine

    了解Git和GitHub.虚幻引擎C++项目的版本控制等等! 你会学到: Git是如何工作的 如何从命令行使用Git 使用GitHub.GitHub桌面应用程序.Visual Studio中的Git工 ...

  9. 虚幻引擎中的节流与防抖

    最近研究虚幻引擎(Unreal Engine,UE),打算从Web开发转型成游戏开发.日后会不定期发布和游戏开发相关的经验总结,由浅入深. UE的学习主要三大块:GUI操作,蓝图,C++.虽然对于外行 ...

最新文章

  1. 不同php怎么传递参数,php – 将所有参数传递给另一个函数
  2. 2019王小的Java学习之路
  3. python如何下载pandas、时间延长_大pandas,python – 如何在时间表中选择具体时间
  4. SAP License:别在走SAP学习的误区
  5. 数据库截取字段 转换成int型函数
  6. Rpm另类用法加固Linux安全
  7. iOS 通过商品短链接跳转京东商品详情页
  8. 计算机组成原理课程设计:在复杂模型机上编写机器指令与微程序计算海伦公式
  9. 深度学习Ubuntu20.04+CUDA+Pytorch环境配置+无显示器远程控制(1)
  10. 【每日一读】Large Scale Network Embedding: A Separable Approach
  11. 大工14春 计算机文化基础 在线测试,大工14春《计算机文化基础》在线测试1
  12. C++.02: Visual Studio 2022 文件筛选器与虚拟目录
  13. linux备份文件到ftp上,Linux如何利用ssh传送文件至FTP空间进行备份
  14. jquery控制元素的隐藏和显示
  15. MySQL DML数据库操作
  16. 怎样取消红米k40pro拍照水印(教程分享)
  17. 服务器租用好还是托管好?
  18. 2022年69 个经典 Spring 面试题和答案,值得收藏
  19. Android--实现类似支付宝的功能拖拽、增删
  20. 《Feedback_Control_of_Dynamic_Systems_6th_Franklin_G》 (含有MATLAB仿真)

热门文章

  1. 计算机毕业设计springboot精准扶贫项目管理系统q0y06源码+系统+程序+lw文档+部署
  2. 【挑战】How to Get Highest Score in Garupa?
  3. 隐语 PSI benchmark 白皮书
  4. DSP开发随笔TMS320F28(一)
  5. gb28181 ps流文件解析
  6. 腾讯 Tars-Go 服务 Hello World——从 HTTP 开始
  7. unity六轴机器人自动移动路径
  8. linux自动挂载文件修复工具,Linux FSCK自动修复文件系统
  9. 2016年下半年信息系统项目管理师真题及答案_信息系统项目管理师历年真题及权威答案_信息系统项目管理师试题及模拟题_软考考试题库_希赛网...
  10. ubuntu bds