我是靠谱客的博主 无情唇彩,最近开发中收集的这篇文章主要介绍虚幻引擎图文笔记:用蓝图实现简单的碰撞以及碰撞响应,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

  1. 碰撞:硬币和地板发生碰撞
  2. 碰撞响应:系统获取碰撞事件,然后调用一些列方法来播放碰撞的声音

本文将使用虚幻引擎的蓝图实现一个碰撞并响应的过程

文章目录

      • 案例一: 基本碰撞检测
        • 效果演示
        • 搭建场景
        • 运行一下
        • 碰撞响应
        • 运行一下
      • 案例二:对碰撞对象进行过滤,然后响应
        • 效果演示
        • 搭建场景
        • 蓝图
        • 运行一下

本文中的碰撞响应效果以物体颜色变化为例,关于物体颜色变化的原理请见老王的另一篇博文《虚幻引擎图文笔记:游戏运行时如何在不更换材质的情况下修改物体材质的参数(比如:颜色)》。

案例一: 基本碰撞检测

效果演示

在这里插入图片描述

搭建场景

下面那个绿色的小球是今天的主角,当前我们使用的就是博文《虚幻引擎图文笔记:游戏运行时如何在不更换材质的情况下修改物体材质的参数(比如:颜色)》中的小球,我们稍稍把它抬高一点,以免它一上来就和地面发生碰撞。

在绿色球上方添加一个普通的球体(StaticMeshActor)并勾选它的Simulate Physics选项

在这里插入图片描述

运行一下

我们发现上面的小球落到绿色球上并弹走,说明碰撞发生了,接下来我们要对这个碰撞事件进行响应
在这里插入图片描述

碰撞响应

开启Simulation Generates Hit Events以告诉系统,我们需要检测并响应这个对象的碰撞事件了(为了避免不必要的效率损失,这个选项默认是未开启的)

在这里插入图片描述

然后我们修改一下绿色小球的蓝图

在这里插入图片描述

运行一下

在这里插入图片描述

案例二:对碰撞对象进行过滤,然后响应

效果演示

在这里插入图片描述

搭建场景

这回我们在绿球的上方添加两个小球,并分别为它们添加Tag为"A"和"B"

在这里插入图片描述

注意:这里添加的是ActorTag

在这里插入图片描述

在这里插入图片描述

蓝图

实现碰撞对象过滤的方式有很多,本文使用的是通过ActorTag。这个步骤最关键的就是从Event HitOther引脚获取和自己碰撞的另一个对象。

先获取到和绿球碰撞的Actor的第一个Tag,如果是"A"则让绿球变成红色,如果是"B"则让绿球变成蓝色。

在这里插入图片描述

运行一下

在这里插入图片描述

最后

以上就是无情唇彩为你收集整理的虚幻引擎图文笔记:用蓝图实现简单的碰撞以及碰撞响应的全部内容,希望文章能够帮你解决虚幻引擎图文笔记:用蓝图实现简单的碰撞以及碰撞响应所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部