Unity中Camera Shake FX插件的使用(实现相机抖动)

Unity中Camera Shake FX插件的使用



前言

使用Camera Shake FX让你的爆炸栩栩如生!这个简单的C#脚本允许您根据命令轻松地将创伤应用于不同的对象,如相机,从而完全控制创伤效果。本文主要介绍了Unity中Camera Shake FX插件的使用。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Camera Shake FX是什么?

Camera Shake Fx是Unity商店的一款插件,该插件主要用于实现针对效果的抖动效果

二、使用步骤

1.从商店下载插件并导入

导入后,可以看到如下界面:
在这里插入图片描述
其中Particles为所给的实例粒子效果,Scripts为我们接下来的重点,脚本

2.Demo实例以及脚本配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2023-11-11 12-27-02



Demo中,给了我们一个实例,可以看到,在粒子效果爆炸时,
屏幕会跟着抖动,此抖动主要是基于相机的位置和旋转,而并非爆炸物体
如果其他地方改了这个位置的话  就可能覆盖震动:


有关Trauma Inducer:
将创伤应用于相机或任何游戏对象的脚本示例,即将该脚本放置于
需要产生效果的物体,如粒子系统,也可以是cube等静态物体

属性:
Delay 在触发爆炸粒子和创伤效应之前需要等待几秒钟
Maximum Stress 效应可能对物体造成的最大应力范围([0,1])
Range 物体受此创伤诱导器影响的最大距离,也就是说,如果物体是相机,
会对相机进行一定的偏移

有关StressReceiver:
压力接受者,即相机或者其他需要受到影响的物体

属性:
TraumaExponent 创伤指数,用于计算抖动因子的指数。用于创建不同效果
的淡出,该值最大为10,值越小可以创造更具震撼力的抖动
MaximumAngularShake 最大角度抖动,游戏对象可以摇动的最大角度,
以欧拉角
MaximumTranslationShake 最大平移抖动,应用抖动效果时游戏对象可以接
收的最大平移。

3.有关Cinemachine的补充

在Unity的Cinemachine中,虚拟相机是通过控制虚拟摄影机的位置、旋转和其他属性来实现视角的变化。虚拟相机的位置可以通过更改其绑定的游戏对象的位置来进行调整,由于该插件并没有实现绑定物体(如粒子效果)的位置变化,因此,在将该脚本移植到虚拟相机中时某些功能可能失效,但有关旋转可以正常实现,也可以实现画面震动的效果。
(可以看到,运行时只有Rotation发生了变化)

在这里插入图片描述


总结

以上就是今天要讲的内容,本文仅仅简单介绍了Camera Shake FX插件的使用,而Camera Shake FX插件提供了大量能使我们快速便捷地处理屏幕抖动的函数和方法。

### 如何在 Unity实现相机 Shake 抖动效果 #### 插件方法 为了简化开发流程,可利用 Camera Shake Fx 这款来自 Unity 商店的插件来快速集成抖动效果。此工具专为创建特定场景下的震动反馈而设计[^1]。 #### 编码自定义解决方案 对于希望深入理解机制或定制化需求更高的开发者而言,编写专属脚本也是一种有效途径: ```csharp using UnityEngine; public class SimpleCameraShake : MonoBehaviour { private float shakeDuration = 0f; private float shakeAmount = 0.7f; private float decreaseFactor = 1.0f; private Vector3 originalPosition; void OnEnable() { originalPosition = transform.localPosition; } void Update(){ if(shakeDuration > 0){ transform.localPosition = originalPosition + Random.insideUnitSphere * shakeAmount; shakeDuration -= Time.deltaTime * decreaseFactor; }else{ shakeDuration = 0f; transform.localPosition = originalPosition; } } public void TriggerShake(float duration, float magnitude){ shakeDuration = duration; shakeAmount = magnitude; } } ``` 上述代码展示了基础版本的摄像机摇晃逻辑,通过调整 `shakeDuration` 和 `shakeAmount` 参数控制持续时间和强度[^4]。 #### 复杂运动模式 当追求更为逼真的物理表现时,则需引入样条曲线(Spline)或者其他路径跟随算法构建更加自然流畅的动作轨迹。这类技术细节相对繁琐,建议查阅官方指南获取指导[^2]。 #### 使用现有库函数 某些情况下可以直接调用已封装好的 API 完成任务。例如下面这段摘录于第三方资源的例子就提供了丰富的参数选项用于微调最终呈现的效果[^5]: ```csharp instance.DoShake( numberOfShakes: 5, shakeAmount: .3f, rotationAmount: .7f, distance: 1.4f, speed: 14, decay: true, guiShakeModifier: false, multiplyByTimeScale: true); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值