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

2024-04-07 14:52

本文主要是介绍怎么在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。

这篇关于怎么在UE过场动画中加入振动效果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/882903

相关文章

电脑开机提示krpt.dll丢失怎么解决? krpt.dll文件缺失的多种解决办法

《电脑开机提示krpt.dll丢失怎么解决?krpt.dll文件缺失的多种解决办法》krpt.dll是Windows操作系统中的一个动态链接库文件,它对于系统的正常运行起着重要的作用,本文将详细介绍... 在使用 Windows 操作系统的过程中,用户有时会遇到各种错误提示,其中“找不到 krpt.dll”

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

Rsnapshot怎么用? 基于Rsync的强大Linux备份工具使用指南

《Rsnapshot怎么用?基于Rsync的强大Linux备份工具使用指南》Rsnapshot不仅可以备份本地文件,还能通过SSH备份远程文件,接下来详细介绍如何安装、配置和使用Rsnaps... Rsnapshot 是一款开源的文件系统快照工具。它结合了 Rsync 和 SSH 的能力,可以帮助你在 li

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

Window Server2016加入AD域的方法步骤

《WindowServer2016加入AD域的方法步骤》:本文主要介绍WindowServer2016加入AD域的方法步骤,包括配置DNS、检测ping通、更改计算机域、输入账号密码、重启服务... 目录一、 准备条件二、配置ServerB加入ServerA的AD域(test.ly)三、查看加入AD域后的变

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对