效果

[教程辅助视频]如何让带骨骼的角色实现捡东西(Pickup)

文章目录

  • 效果
  • 原理
  • 步骤
    • 1. 定义被捡物体类
    • 2. 定义BPI_Picker接口
    • 3. 在骨骼上添加插槽(Socket)
    • 4. 角色蓝图
      • 捡东西
      • 扔东西

原理

  • 在角色的骨骼上添加Socket作为被捡物的吸附位置
  • 被捡物发生Overlap事件以后判断另一个物体是否为角色对象,如果是则将自身以及要吸附的位置作为参数传给角色
  • 角色接收到参数以后把被捡物Attach到相应的Socket

步骤

本文依旧以第三人称模板为起点实现

1. 定义被捡物体类

组件结构:一个StaticMesh组件

注意:这个被捡物在Collision设置中要对Pawn开启Overlap并且开启产生Overlap事件


这个类有2个方法:OnPickupOnDrop,顾名思义它们分别是物件被捡起和扔下时要执行的逻辑。OnPickup不需要参数,OnDrop有一个Vector类型参数,它的作用是被扔下时的初始速度的方向。

BPI_Picker时是所有可以捡东西的类都要实现的接口(在下文中定义)

  • 检测到角色以后仅仅是把必要的参数传过去,并不调用OnPickup,因为到底捡不捡还需要在角色中判断一下

  • 被捡到以后就要关闭物理模拟和碰撞

  • 被扔下以后要开启物理模拟和碰撞,并且添加一个初始速度

注意:在Set Collision Enabled中之开启了Physics没有打开Query Collision,因为被检物离角色很近的话被抛弃时还可以和角色发生Overlap,这样没等落地就又被捡起来了。如果游戏设定中物体可以多次被捡可以根据需要以其它方式开启Query Collision

2. 定义BPI_Picker接口

BPI_Picker接口:所有可捡东西的角色都要实现这个接口,比如:主角啊,怪物啊等等。

它只有1个方法Pickup,该方法有2个参数:

  • Item:BP_Pickupable类型,被拾取的物体通过这个参数传进来。
  • SocketName:Name类型,这个自然就是物体要吸附的插槽了。

3. 在骨骼上添加插槽(Socket)

本例中我们想让物体吸附在角色的右手,所以在右手添加一个插槽,记住这个插槽的名字:“hand_rSocket”

4. 角色蓝图

Class Settings中添加BPI_Picker接口

实现这个接口

我在角色中添加了一个名为"RightHandItem"(BP_Pickupable类型)的成员变量,它的作用:

  • 作为角色右手当前是否已持有物体的标志
  • 保留被捡对象的引用

捡东西

接收到Pickup事件以后,角色要决定是否真的捡起这个物体,这个逻辑可以根据游戏设定来实现,本例中如果已经持有就不再捡新的了。

扔东西

本例中使用Q 键来扔东西。

虚幻引擎图文笔记:如何让带骨骼的角色捡东西(Pickup)和扔东西(Drop)相关推荐

  1. 虚幻引擎图文笔记:蒙太奇(Montage)+ 根运动(Root Motion),给我滚(Roll)!

    UE4.26 效果 按下自定义控制滚动的按键,角色滚动,并且可以穿过低矮的空间 文章目录 效果 前言 步骤 0. 准备Root Motion的角色滚动动画素材 1. 把这个动画序列转换为蒙太奇 2. ...

  2. 虚幻引擎图文笔记:用蓝图实现简单的碰撞以及碰撞响应

    现实世界中的碰撞现象大家都司空见惯,比如:一枚硬币掉到地板上(和地板发生碰撞),发出清脆的响声.但在虚拟世界里,这个过程至少要分为两个步骤: 碰撞:硬币和地板发生碰撞 碰撞响应:系统获取碰撞事件,然后 ...

  3. 虚幻引擎图文笔记:使用MixamoConverter对Mixamo动画重定向成UESkeleton匹配动画

    这个方法的好处在于不用导入到UE4再折腾了,因为导入的动画直接匹配UE Skeleton.最适用于各种洁癖和强迫症 效果图 Mixamo动画直接完美应用在UESkeleton,无需在UE4内部重定向! ...

  4. 虚幻引擎图文笔记:使用Rider的开发环境配置(5月22日 更新)

    Unreal Engine 4.25.0 Rider For Unreal Engine 2020.1.3 大名鼎鼎的IDE神器制造商Jetbrains的Rider听说过没?就是可以做Unity的C# ...

  5. 虚幻引擎图文笔记:用Two Bone IK实现手扶墙

    效果 文章目录 效果 原理 步骤 角色蓝图 动画蓝图 Event Graph Amin Graph 运行一下 原理 在<虚幻引擎插件:使用Power IK轻松愉快地实现脚底板位置矫正>一文 ...

  6. 虚幻引擎图文笔记:使用布料模拟(Cloth Simulation)系统制作一面可以随风飘动的旗帜(更新)

    本文使用引擎版本:UE4.26 UE4的布料系统真是强大,可以在游戏运行时实时解算布料出动画.本文以一面随风飘动的旗帜的制作为例,带大家了解一下UE4布料模拟(Cloth Simulation)系统的 ...

  7. 虚幻引擎图文笔记:彻底搞懂重定向(Retargeting)之 解释一下UE Skeleton骨架

    本文需要读者有一点骨骼绑定的基础 文章目录 为什么要了解UE Skeleton骨架 UE Skeleton骨架 小结 为什么要了解UE Skeleton骨架 理论上讲我们可以完全忘记UE Skelet ...

  8. 虚幻引擎图文笔记:使用VAT(Vertex Aniamtion Texture)制作破碎特效(Houdini,UE4/UE5)上 Houdini端

    免责声明: Houdini小白,现学现卖,纯笔记.如有误导不负任何责任.本文参考了Houdini官方的<Lightning Strike FX>教程 文章目录 效果演示(UE4/5) 什么 ...

  9. 虚幻引擎图文笔记:使用物理模拟(Physical Simulation)给角色添加一个马尾辫

    文章目录 步骤 1. 在Blender中制作马尾辫 2. 导入UE4 3. 编辑Physics Asset 4. 在骨架的头部添加一个Socket 5. 在角色蓝图中添加马尾辫 6. 在角色蓝图中添加 ...

最新文章

  1. atoi(),函数,将字符串转为整形数字
  2. Brocade 光纤交换机常用命令
  3. 恶意软件伪装“正规军”,撕开Booster Cleaner“画皮”下的真相
  4. 第四十八期:只因写了一段爬虫,公司200多人被抓!
  5. python后台返回cookie_Django框架设置cookies与获取cookies操作详解
  6. html5 函数大全,5 个强大的HTML5 API 函数推荐
  7. 霍金临终论文公开:揭秘沉入黑洞的信息去向
  8. bom 根据一阶 BOM 表整理多阶层 BOM 表
  9. react 实现展示公司层级,选择人员的功能
  10. LibreOJ - 10066 新的开始
  11. elasticsearch7.x Java High Level REST客户端封装工具
  12. 劝说语合理使用计算机,用一句名言来劝说家长让孩子接触计算机
  13. 赏析角度有哪些_几种分析的角度
  14. 在ubuntu中使用7z压缩命令分卷压缩超大文件
  15. 高考试题管理系统出题模块——C语言课程设计
  16. python安卓吾爱_【原创源码】 【无需第三方库】【支持签到 】 Python 吾爱挂机 无提示版...
  17. input框输入身份证时实现动态脱敏
  18. Opencv中waitKey()
  19. Win7下连远程桌面 窗口 全屏 切换
  20. Java-使用集合存储快递的信息

热门文章

  1. 实际业务中的数据分析流程和痛点
  2. VScode调用KEIL-MDK
  3. 隐藏滚动条css3实现滚动同时隐藏滚动条
  4. Percona Xtrabackup安装
  5. python在每个字符后加上逗号_Python将逗号添加到数字字符串中
  6. 【优化指派】基于matlab禁忌搜索算法求解指派优化问题(耗时最短)【含Matlab源码 2518期】
  7. C语言初阶作业题-数组
  8. AI正在把超声波装进你的智能手机 及时筛查人体健康问题
  9. 简述GPS,GSM,GPRS和GNSS的名称区别
  10. 矩阵快速幂(51nod)