怎么在UE过场动画中加入振动效果

我们已经学会了怎么在游戏中加入振动效果,比较典型的交互场景如:在开枪时让手柄同步振动,实现起来真的很简单,就是定义场景和事件,然后在游戏事件发生时播放特定的振动资源文件,跟播放音效是极其相似的!在UE中还有一种不需要与玩家交互的场景,比如过场动画,动画中可能也有角色和攻击/碰撞,这些地方加上振动效果会更出彩。那么,怎么在过场动画中加入振动效果呢?

我们继续在HapticFps工程上演示。咱先做个简单的动画。我是跟着B站这个视频来创建动画的,效果为:让一个立方体悬浮在空中,飞行一段距离,然后掉到地上。

  1. 在UE编辑器(v4.27)里,拖一个立方体进来,命名为MyCube,让它悬在半空中
  2. 在“内容浏览器”里,鼠标右键菜单选择:动画 | 关卡序列,命名为FlyingCube
  3. 双击FlyingCube图标进入动画编辑器,然后将MyCube从世界大纲视图拖入动画编辑器
  4. 需要打3个关键帧。在第0帧打一个关键帧;再将游标拖到第60帧,将MyCube沿Y轴右移一段距离,打上第二个关键帧;继续将游标拖到第120帧,将MyCube沿Z轴向下移动至地面,再打一个关键帧
  5. 在动画编辑器底部点击“播放“,可以预览立方体的运动轨迹。

一个简单的动画就做好了。接着,我们来实现在游戏一开始就播放这个动画。可以通过蓝图来实现(为了检索方便,编辑器界面语言设置为英文):

  1. 通过UE编辑器的顶部工具栏,打开关卡蓝图:Blueprints | Open Level Blueprint
  2. 在事件图表中,点击鼠标右键,输入BeginPlay,添加这个事件
  3. 在BeginPlay事件节点引脚拖一根线出来,在弹出框里输入Create Level… 选择插入一个叫Create Level Sequence Player的节点
  4. 在Level Sequence引脚下点击Select Asset,指定FlyingCube为我们想要播放的资源
  5. 鼠标右键点击Settings引脚,在弹出菜单里选择Split Struct Pin,然后将Settings Auto Play勾上
  6. 点击保存,并编译

动画播放框架搭好了!接着,我们就来实现在MyCube立方体碰到地面的一瞬间触发一次振动。原理也很简单:在立方体触地的时间点触发一个事件,然后在蓝图中响应这个事件,播放一个振动资源。

具体步骤如下:

  1. 双击FlyingCube图标进入动画编辑器
  2. 点击左上角的“+ Track”按钮,然后选择 Event Track | Trigger来添加一条事件轨道
  3. 将游标拖动到第120帧处,然后点击事件轨左侧的“+”来插入一个关键点
  4. 鼠标双击上述事件关键点,即可打开当前这个动画的导演蓝图,在这里可以添加对这个事件的响应(注:事件名称默认为SequenceEvent_0,在这里也可以将其重命名为CubeHitGround)
  5. 在导演蓝图里播放振动效果。分五步完成:(1)从CubeHitGround事件节点引脚拖一根线出来,在弹出框里输入Client Play Force Feedback(记得先把Context Sensitive勾选去除!),插入这个函数调用;(2)在事件图表中,点击鼠标右键,输入Get Player Controller,插入这个节点;(3)将Get Player Controller的Return Value引脚与Client Play Force Feedback的Target引脚连接起来;(4)Force Feedback Effect引脚下点击Select Asset,然后选择一个振动资源文件;(5)保存并编译。

大功告成!完整运行起来看看效果吧!源代码工程已经上传到GitHub。【广而告之】本文只是演示在UE动画中添加原生的振动效果。主要侧重于实现方法和步骤的讲解,对振动效果不必奢求。如果想要实现跨设备的高品质振动效果,还得看RichTap。欲知详情,请访问官网:richtap-haptics.com。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/597018.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件系统测试方案套用模板(原件)

1. 引言 1.1. 编写目的 1.2. 项目背景 1.3. 读者对象 1.4. 参考资料 1.5. 术语与缩略语 2. 测试策略 2.1. 测试完成标准 2.2. 测试类型 2.2.1. 功能测试 2.2.2. 性能测试 2.2.3. 安全性与访问控制测试 2.3. 测试工具 3. 测试技术 4. 测试资源 4.1. 人员安排 4.2. 测试环境 4.2.…

Python爬取公众号封面图(零基础也能看懂)

📚博客主页:knighthood2001 ✨公众号:认知up吧 (目前正在带领大家一起提升认知,感兴趣可以来围观一下) 🎃知识星球:【认知up吧|成长|副业】介绍 ❤️感谢大家点赞👍&…

【Android】图解View的工作流程原理

文章目录 入口DecorView如何加载到Window中MeasureSpec MeasureView的测量ViewGroup的测量 LayoutView的layout() Draw1、绘制背景3、绘制View内容4、绘制子View6、绘制装饰 入口 DecorView如何加载到Window中 MeasureSpec 该类是View的内部类,封装View的规格尺寸…

Netty NioEventLoop详解

文章目录 前言类图主要功能NioEventLoop如何实现事件循环NioEventLoop如何处理多路复用Netty如何管理Channel和Selector管理Channel管理Selector注意事项 前言 Netty通过事件循环机制(EventLoop)处理IO事件和异步任务,简单来说,就是通过一个死循环&…

洛谷 1126.机器人搬重物

思路:BFS 这道BFS可谓是细节爆炸,对于编程能力和判断条件的能力的考察非常之大。 对于这道题,我们还需要额外考虑一些因素,那就是对于障碍物的考虑和机器人方位的考虑。 首先我们看第一个问题,就是对于障碍物的考虑…

中颖51芯片学习2. IO端口操作

一、SH79F9476 I/O端口介绍 1. 特性 SH79F9476提供了30/26位可编程双向 I/O 端口;端口数据在寄存器Px中;端口控制寄存器PxCRy是控制端口作为输入还是输出;端口作为输入时,每个I/O端口均带有PxPCRy控制的内部上拉电阻。有些I/O引…

Java Spring IoCDI :探索Java Spring中控制反转和依赖注入的威力,增强灵活性和可维护性

💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录文章:Java Spring IoC&DI :探索Java Spring中控制反转和依赖注入的威力,增强灵活性和可维护性 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 前提小知识:高内…

一点点金融

一点点金融 价值投资 需求 > 有限 > 不可逆 > 优势 > 长期持有者多趋势分析 改进MACD策略,使用涨跌幅比值RSI计算MACD原始MACD计算改进思路:使用涨跌幅比值RSI计算MACD 价值投资 需求 > 有限 > 不可逆 > 优势 > 长期持有者多…

使用AI开源引擎构建:智能文档处理系统提升企业生产效率

企业面临着海量文档的处理和管理挑战。智能文档处理技术(Intelligent Document Processing, IDP)应运而生,旨在通过人工智能(AI)技术提高文档处理的效率和准确性。本文将探讨IDP技术的核心功能、应用场景以及对企业效率…

RGB三通道和灰度值的理解

本文都是来自于chatGPT的回答!!! 目录 Q1:像素具有什么属性?Q2:图像的色彩是怎么实现的?Q3:灰度值和颜色值是一个概念吗?Q4:是不是像素具有灰度值,也有三个颜色分量RGB?Q5:灰度图像是没有色彩的吗?Q6: 彩色图像是既具有灰度值也具有RGB三…

数据流图

数据字典 数据流图平衡原则 父图与子图之间的平衡子图内平衡

Java中利用BitMap位图实现海量级数据去重

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 前言 什么是BitMap?有什么用? 基本概念 位图的优势 …