问题标签 [cinemachine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1416 浏览

unity3d - 动态控制 Unity Cinemachine vCams Blends:如何?

我找不到如何根据英雄的速率和高度不断地动态混合 3 个摄像机(我称它们为中、上和下)。

跟随英雄时,中间的 vCam 是主要/基础的,我想根据英雄的高度按比例混合上下 vCam。

玩家/英雄可以在不同高度之间快速移动,因此应该轻松地对混合进行加权。这是 Cinemachine 混合的自然组成部分。并且有效。但对我来说,这就像一个开关,以我目前对 Cinemachine 混合的理解,而不是基于高度的恒定动态混合。

0 投票
2 回答
3453 浏览

c# - 有没有办法让 Cinemachine 在被销毁并实例化为克隆后重新定位播放器?

我正在开发一个 2D 平台游戏,我正在使用 Cinemachine 跟随我的玩家。
当玩家在 -20 y 以下的平台下落时,玩家被摧毁并实例化为预期的生成点的克隆,但相机没有跟随,因为原始玩家被摧毁:它在“跟随”上说失踪插槽
有什么办法可以解决吗?我更喜欢使用 Destroy 和 Instantiate 作为重生,而不是将原始玩家传送到重生点。

这是重生脚本(GameMaster)

如果需要,这是播放器脚本

0 投票
1 回答
558 浏览

unity3d - unity3D 时间轴和电影机

由于我是统一的新手,我在时间线方面遇到困难,我使用它创建了一个空对象,我创建了一个摄像机并将其放置在时间轴中 Cinemachine 使用了一些对象和 VM 摄像机并创建了一个预告片,现在我希望该动画在什么时候播放玩家输入触发器,我的游戏是一个 3d 游戏,有 2 个摄像头第一人称摄像头和第三人称摄像头,当我开始我的游戏并激活该时间线对象时,它开始播放,但我只能听到它的声音,因为我的主摄像头在播放器上!谁能帮助我如何在触发器上使用时间线?那会有很大帮助。

0 投票
1 回答
792 浏览

unity3d - Cinemachine Virtual Camera 在保持死区的同时在对象之间转换

  • 3D游戏
  • 2 个游戏对象:A 和 B。(均在运行时生成)

我想要从对象 A 到 B 的平滑过渡,但前提是对象 B 在 vcam 的死区之外。Vcam 应该用静态旋转来观察物体。(只有相机位置应该改变)

我假设我必须使用:

我尝试使用 B 生成新的 vcam 并禁用第一个 vcam - 这可以在相机之间实现平滑过渡,但它总是这样做,即使 A 和 B 在第一个和第二个 vcam 的死区内。

仅当新对象位于先前 vcam 的死区之外时,如何才能在 2 个游戏对象之间实现平滑的相机转换?

我知道我可以通过将对象后跟 vcam 从 A 移动到 B 来做到这一点,这应该适用于死区,但如果可能的话,我正在寻找更清洁的解决方案

0 投票
0 回答
593 浏览

c# - 重生播放器后,Cinemachine 2D 没有跟随

我试图让 Cinemachine 即使在重生后也跟随我的玩家,但它不起作用,老实说我不知道​​还能做什么。我不想为相机制作新代码,因为 Cinemachine 有很多好的功能。

我在想我可以重置变量而不是破坏对象,这样 Cinemachine 仍然会跟随同一个对象,但是我对编码还很陌生,所以我不知道该怎么做。

这是播放器代码:

这是死亡密码:

这张图是重生后的截图。相机不会再动了。

0 投票
1 回答
1059 浏览

c# - 使用 Cinemachine 和 Timeline 在 3 个摄像机之间平滑过渡

我正在尝试使用 Cinemachine 并使用 Timeline 来实现简单但流畅的摄像机移动,因为它确实有助于我快速调整事物。

动画师很容易通过构建关键帧剪辑来实现运动,结果应该是这样的。

我尝试在没有动画师和剪辑的情况下使用 Cinemachine 和 Timelines 实现它的方法是放置 3 个 VirtualCameras,并让时间线进行混合,它看起来像这样,但正如你所见,在第二和第三位置之间,相机停止,只是一个帧,但它停止了,看起来很笨重。

这主要是因为混合只是在 2 个摄像头之间,而不是 3 个,看起来像这样,但我不知道如何只用 2 个摄像头来实现它,因为我已经尝试过,它看起来像这样

另一种方法是使用多莉相机,但更难(也更慢)将动作程序化。

知道我做错了什么吗?或者如何在不需要创建自定义动画剪辑的情况下实现这一点?谢谢!

0 投票
1 回答
3957 浏览

unity3d - unity Cinemachine 如何锁定 Y 轴?

我有一个球,我们可以在我的比赛中到处扔。我希望我的电影机 vcam 只在球的 x 方向上移动。当它在空中时,只需抬头看球。我不希望相机也沿着它在 y 方向上移动。

我只设置了看球和跟随球场。我只希望相机不跟随 y 中的球。(基本上,跟随x中的球,并一直在空中看着它)

我怎样才能做到这一点是最琐碎和美丽的方式呢?(对脚本开放,但代码越少越好)

0 投票
1 回答
1604 浏览

unity3d - Unity Cinemachine:如何将当前活动的虚拟摄像机存储到变量中?

基本上我想获取当前的实时虚拟摄像机并将其存储在 CinemachineVirtualCamera 变量中。

但它给了我一个错误,上面写着:“无法将 Cinemachine.ICinemachineCamera 类型转换为 Cinemachine.CinemachineVirtualCamera”

我已经尝试过强制转换,但它不起作用,变量仍然为空。

我也试过:

有人能帮助我吗?

0 投票
1 回答
1296 浏览

unity3d - 如何在不使用 Collision 的情况下关闭 Cinemachine Impulse 源?

如何通过 ImpulseSource 正确调用 GenerateImpulse() 来实现 Cinemachine 的相机 ImpulseListener(相机抖动)?如果我在播放器上放置一个 CollisionImpuleSource,我可以让它工作,但我不希望这样。我想使用脉冲源,然后用代码确定何时摇动。

我正在查看文档https://docs.unity3d.com/Packages/com.unity.cinemachine@2.3/manual/CinemachineImpulseSource.html但没有看到如何正确地关闭 ImpulseSource。

我设置了私人...

我可以调用 generateImpulse...

但我看不到如何获取组件

我得到一个错误..

“Cinemachine.CinemachineImpulseSource”类型必须可转换为“Cinemachine.CinemachineComponentBase”,以便在通用方法“T Cinemachine.CinemachineVirtualCamera.GetCinemachineComponent()”中将其用作参数“T”

但如果我也改变私人..

那没有帮助。需要一些关于如何引用它的指导。

0 投票
1 回答
2497 浏览

unity3d - 在电影机中锁定 Z 轴旋转

我在 z 轴上冻结旋转时遇到问题。有一架飞机,并附有一个电影机免费外观相机。当平面沿 Z 轴旋转时,相机随之旋转。是否有可能以某种方式仅阻止 cinimachine 相机中的一个旋转轴?

在此处输入图像描述 在此处输入图像描述