当前位置:   article > 正文

【ue5】03 NPC对话交互part1_ue5 碰撞block all

ue5 碰撞block all

这一篇记录制作简单的对话界面和交互
下篇:

NPC actor蓝图组件

  1. 创建一个actor蓝图
  2. 添加一个骨骼网格体组件,设置为npc模型的骨骼网格体
  3. 添加一个胶囊碰撞体,调整大小为和模型差不多大,作为NPC的碰撞体
  4. 在胶囊碰撞体的细节面板中找到碰撞,碰撞预设改成BlockAll,角色可迈上去改成否
  5. 再添加一个胶囊碰撞体,范围大一些,这个区域作为玩家可以进行对话交互的范围
  6. 碰撞预设改成OverlapAllDynamic(默认)
    在这里插入图片描述

蓝图接口

创建两个蓝图接口,两个蓝图接口的内容都保持默认,只需要修改默认节点的命名

  1. dialogue,用于传递对话开始
  2. movement,用于传递对话结束

玩家character蓝图

  1. 打开玩家的角色蓝图,选择类设置,在细节面板中找到接口,添加movement接口蓝图
    在这里插入图片描述
  2. 选择事件图表,编写下图中的节点。
    当按下F键时,如果此时玩家和npc蓝图中设置的范围有重叠(filter指定了只判断npc的actor蓝图),并且该对象实现了dialogue接口的节点,那么将move设为false(禁止移动),然后调用dialogue接口触发对话。
    • Get Overlapping Actors: Class Filter选择NPC的蓝图
    • Does Implement Interface: Interface选择dialogue接口蓝图
    • Move: 新建一个bool变量(用于控制玩家是否能移动,在对话中禁止移动)
    • Event Movement: movement接口中的函数名
    • Talk: dialogue接口中的函数名
      在这里插入图片描述
  3. 在玩家有关移动和跳跃的节点中添加branch,当移动被允许时才会触发
    在这里插入图片描述

用户控件蓝图

创建两个用户控件蓝图(用户组件-控件蓝图)

  1. 对话框
    添加一个panel,在其中加入两个text作为名字和说话内容分,两个image作为黑色的背景和橙色的分割线。
    image的图像设置为材质,材质按下图方式创建,其中材质域设置为用户界面,混合模式为半透明。对于对话框背景,我使用从上到下逐渐透明的材质。
    两个text需要在细节面板中勾选isVariable选项。
    位置和大小通过锚点、偏移和尺寸进行调整。
    在这里插入图片描述
    在这里插入图片描述

  2. 对话提示
    按照相似的方法创建一个用户控件蓝图作为可对话提示,text勾选isVariable。
    在这里插入图片描述

NPC动画蓝图

  1. 添加一个状态机节点连接到output pose
  2. 状态机包括待机和对话两个动画
  3. 将待机和对话的动画分别连接到两个状态
  4. 添加一个bool变量IsInDialogue,用于状态切换,默认值为false
  5. 将变量和not处理的变量分别连接到两个状态切换条件上
    在这里插入图片描述

NPC actor蓝图

打开NPC的actor蓝图

  1. 类设置中添加dialogue接口
  2. 创建变量
  • name: string
  • talkIndex: int
  • dialogue: string数组
  1. 当玩家进入对话范围时在屏幕上显示对话提示
  • Create WBP Interact Widget: 在Return Value上右键点击提升为变量,将新的变量设置为对话提示的接口蓝图(对象引用)
  • prompt: 对话提示的接口蓝图(对象引用)变量
    在这里插入图片描述
  1. 对话部分
  • 当进入对话时切换角色动画
    Event talk: dialogue接口中的函数,触发对话
    IsInDialogue: 在NPC动画蓝图中定义的bool变量,用于动画切换
    在这里插入图片描述
  • 每次点击F键触发talk事件,切换到下一句对话,通过index和对话文本数组的长度判断对话是否结束
    在这里插入图片描述
  • branch的true分支连接
    如果对话界面没有显示则创建Widget并显示,同时移除对话提示界面的显示。
    将对话文本和名字显示到对应变量位置。
    在这里插入图片描述
  • branch的false分支连接
    对话结束后将对话文本的索引设置为初始值-1,重新显示对话提示界面,并且将用于切换NPC对话动画的bool变量设为false。
    在这里插入图片描述
    参考链接:
    https://www.youtube.com/watch?v=hbs0xaNOeA0
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/714386
推荐阅读
相关标签
  

闽ICP备14008679号