Cinemachine系列——CinemachineSmoothPath&Body Tracked Dolly
今天来看下我感觉比较有意思的功能,将摄像机像电影一样固定在一条轨道上进行拍摄。通过Package Manager导入Cinemachine插件,在导入Cinemachine Sample后,我们可以在Assets文件夹下Cinemachine/2.6.17(这个是你下载的cinemachine版本号)/Cinemachine Example Scenes/Scenes/Tracked Dolly/Dolly Auto中看具体的Demo。
关键仅用到一个组件——CinemachineSmoothPath
CinemachineSmoothPath
Cinemachine平滑路径是一个组件,用于定义一个世界空间中的路径,由一系列航点(waypoints)组成。每个航点都有位置和滚转设置。Cinemachine使用贝塞尔插值法来计算航点之间的位置,从而获得一个平滑连续的路径。路径将通过所有航点。
主要要点:
航点设置:每个航点的设置包括位置和滚转,这样可以在路径上精确控制摄像机的移动和朝向。
贝塞尔插值:通过贝塞尔插值,Cinemachine能够在航点之间生成平滑的运动轨迹,避免突兀的转变。
平滑和连续性:与Cinemachine路径不同,平滑路径保证了一阶和二阶的连续性,这意味着沿着路径移动的对象不仅位置变化平滑,其角速度(转向变化速度)也会是连续的。
应用场景:这种平滑的路径设置适合于需要流畅移动的摄像机动画,特别是在复杂场景中,可以提升视觉体验。
通过使用Cinemachine平滑路径,用户能够创建更自然和流畅的摄像机移动效果,增强整体的视觉表现。
Resolution
每个航点的路径采样数”是指Cinemachine在计算路径距离时使用的一个值。
主要要点:
路径采样:该值决定了在每个航点之间进行多少次采样,以生成更精确的路径。这意味着摄像机在移动时可以更细致地控制其轨迹。
距离计算:Cinemachine使用这个采样数来计算航点之间的距离,从而确保摄像机沿路径平滑移动。采样次数越多,路径的平滑度和精确度就越高。
影响性能:较高的采样数可能会增加计算量,因此在设置时需要权衡路径的平滑性和性能消耗。
通过合理设置每个航点的路径采样数,用户可以实现更流畅的摄像机移动,同时保持性能的平衡。
Appearance
- Path Color:被选中时的颜色
- Inactive Path Color:未被选中时的颜色
- Width:轨道宽度
Looped
如果选中此选项,则路径的起点和终点将连接在一起,形成一个连续的循环。
主要要点:
路径连接:启用这一选项后,路径的末端将与起始点相连,摄像机在沿路径移动时会不断循环。
循环效果:这种设置适用于需要重复运动的场景,例如环形轨道或需要持续循环的动画,能够确保摄像机平滑无缝地回到起始位置。
应用场景:在一些游戏或动画中,连续循环的路径可以提供更流畅的视觉体验,尤其是在需要不断跟随某个对象或场景时。
通过使用这一选项,用户可以创建更具连贯性的摄像机移动效果,使得视觉表现更加自然和流畅。
Waypoints
这是定义路径的航点列表,这些航点通过贝塞尔曲线进行插值。
- positon:位置
- roll:这指定了在该航点处路径的滚转角度。其他方向轴的方向是通过切线和世界坐标系的“上”方向推导出来的。
Body Tracked Dolly
VirtualCamera中的Body功能同样也要改成Tracked Dolly,以下是Tracked Dolly的介绍。
这个虚拟摄像机主体算法限制虚拟摄像机沿预定义路径移动。使用“路径位置”属性可以指定虚拟摄像机在路径上的位置。
主要要点:
路径限制:该算法确保虚拟摄像机只能在设定的路径上移动,增加了摄像机运动的可控性和一致性。
自动滑动模式:启用自动滑动模式后,虚拟摄像机会自动调整其在路径上的位置,以靠近“跟随”目标。这一功能可以使摄像机在跟随目标时更加灵活。
路径形状的选择:在使用自动滑动模式时,要谨慎选择路径形状。特别是在形成弧形的路径上,可能会导致问题。例如,在一个完美的圆形路径上,如果“跟随”目标位于中心,路径上的每个点与目标的距离相同,这会导致摄像机的位置变得不稳定。此时,即使“跟随”目标移动很小的距离,摄像机在轨道上的移动也可能很大。
通过合理设置路径和使用自动滑动模式,用户可以获得更流畅的摄像机跟随效果,同时需注意路径形状可能带来的不稳定性。
Path
引用CinemachineSmoothPath组件。
Path Position
这是指在路径上放置摄像机的位置。用户可以直接对该属性进行动画设置,也可以启用自动滑动模式。该值以“位置单位”指定的单位为基础。
主要要点:
路径位置:这个属性确定了摄像机在路径上的具体位置,用户可以通过设置不同的值来控制摄像机的移动。
动画设置:用户可以直接对这个属性进行动画处理,以实现摄像机沿路径平滑移动的效果。
自动滑动模式:启用自动滑动后,摄像机会根据“跟随”目标的位置自动调整其在路径上的位置,提供更灵活的跟随效果。
位置单位:该属性的值使用由“位置单位”指定的单位进行计算,可以是米、厘米等,确保用户在设置位置时的准确性。
通过合理设置这个属性,用户可以实现更自然的摄像机移动效果,提升整体视觉体验。
Position Units
路径位置的测量单位。
Path Units
在路径上使用航点。值0代表路径上的第一个航点,值1代表第二个航点,以此类推。
主要要点:
航点编号:通过指定不同的数值,用户可以选择在路径上对应的航点。例如,设置为0时,摄像机会定位在第一个航点,设置为1时则为第二个航点。
路径控制:使用航点编号可以精确控制摄像机在路径上的位置,帮助实现更复杂的运动效果。
简单易用:这种编号方式使得用户在设置路径时更加直观,便于快速定位和调整摄像机的位置。
通过合理使用航点编号,用户可以灵活地控制摄像机沿路径的运动,提升整体的动画表现。
Distance
使用路径上的距离进行设置。路径的采样根据路径的“分辨率”属性进行。Cinemachine创建一个距离查找表,并将其存储在内部缓存中。
主要要点:
距离测量:通过该设置,用户可以指定在路径上摄像机的具体位置,这个位置是根据路径的实际距离来计算的,而不是仅仅依赖航点编号。
分辨率属性:路径的“分辨率”属性决定了在路径上进行采样的频率,分辨率越高,查找表的精度越高,可以使得路径运动更加平滑。
距离查找表:Cinemachine在内部缓存中保存了距离查找表,这样可以快速获取路径上不同位置的相关信息,提高运行效率。
通过使用距离沿路径设置,用户可以实现更灵活和精确的摄像机运动控制,增强动画的流畅性和自然感。
Normalized
使用路径的起点和终点进行设置。值0代表路径的起点,值1代表路径的终点。
主要要点:
起点和终点:通过设置不同的值,用户可以快速指定摄像机在路径的起始位置或结束位置。设置为0时,摄像机会定位在路径的起始点;设置为1时,则会定位在终点。
简便性:这种设置方式使得用户能够方便地控制摄像机在路径上的位置,尤其在需要快速切换到路径的起止点时非常实用。
路径运动:结合其他设置,用户可以通过选择起点和终点,轻松实现摄像机的平滑移动和过渡效果。
通过使用起点和终点设置,用户可以灵活地控制摄像机的路径运动,提升动画的表现力和连贯性。
Path Offset
这是指摄像机相对于路径的位置设置。X轴与路径垂直,Y轴指向上方,Z轴与路径平行。用户可以使用这个属性将摄像机从路径本身偏移。
主要要点:
位置坐标:通过设置X、Y、Z三个方向的值,用户可以精确控制摄像机相对于路径的位置。
X轴:可以用于在路径的左右两侧偏移摄像机。
Y轴:可以用于调整摄像机的高度,使其更高或更低。
Z轴:用于控制摄像机在路径上前进或后退的位置。
路径偏移:这个属性允许用户灵活地调整摄像机的位置,使其不必直接位于路径上,从而可以获得不同的视角和效果。
增强视觉表现:通过合理的偏移设置,用户可以创造出更加多样化和富有创意的摄像机运动,使得动画效果更加生动。
使用这个属性,用户可以实现更灵活的摄像机控制,提升场景的视觉效果。
X/Y/Z Damping
这是指摄像机在方向上的位置时的响应速度。较小的数值使摄像机反应更灵敏,而较大的数值则使摄像机反应较慢。对每个轴使用不同的设置可以产生多样的摄像机行为。
Camera Up
设置虚拟摄像机的上向量。这会影响屏幕的构图,因为摄像机的瞄准算法会试图遵循这个上向方向。
Auto Dolly
控制自动滑动的方式。使用此功能时,必须有一个“跟随”目标。
主要要点:
自动滑动:这一设置决定了摄像机如何自动调整其在路径上的位置,以跟随指定的目标。当目标移动时,摄像机会自动滑动到与目标最近的位置。
跟随目标要求:为了使用自动滑动功能,必须指定一个“跟随”目标。这是因为摄像机的自动滑动依赖于目标的位置变化来进行调整。
灵活性:用户可以通过调整这一设置,控制摄像机在跟随目标时的反应方式和移动速度,以实现更流畅的视角变化。
通过合理设置自动滑动的方式,用户可以获得更自然的摄像机跟随效果,提高场景的动态表现。
Position Offset
这是指从路径上离“跟随”目标最近的点到摄像机的偏移量,单位为位置单位。
主要要点:
偏移量定义:这个设置允许用户指定摄像机与“跟随”目标最近的路径点之间的距离偏移。这意味着摄像机可以位于离目标最近的路径点之外的位置。
位置单位:偏移量的值使用指定的测量单位(如米或厘米),确保用户可以精确控制摄像机的位置。
灵活性:通过调整这个偏移量,用户可以获得不同的视角和效果,例如将摄像机稍微移开目标,从而创造更具动态感的画面。
合理使用这一设置,用户可以实现更灵活和个性化的摄像机运动,提高整体的视觉表现。
Search Radius
这是指当前路径段两侧的段数设置。可以使用0表示整个路径。当路径的形状相对于目标位置导致路径上最近点变得不稳定时,可以使用较小的数字。
主要要点:
段数设置:这个属性允许用户指定在当前路径段的两侧有多少个段。通过增加段数,可以更好地适应路径的形状和目标的位置。
使用0表示整个路径:将此值设置为0时,表示在考虑整个路径的情况下寻找最近点。这意味着摄像机会根据整个路径进行计算。
解决不稳定问题:当路径的形状使得最近点不稳定时(例如在圆形路径中),使用较小的数字可以减少不稳定性,从而确保摄像机的平滑跟随和更自然的运动。
通过合理设置这个参数,用户可以优化摄像机的运动表现,确保路径跟随的稳定性和流畅性。
Search Resolution
Cinemachine通过将一个段划分为多个直线片段来搜索该段。数值越高,结果越准确,但性能会随着数值的增加而相应变慢。
主要要点:
段划分:为了找到摄像机在路径上的准确位置,Cinemachine会将当前段分解为许多小的直线段进行计算。这种方法使得路径跟随的计算更加精确。
精度与性能:设置更高的数值可以提高计算的准确性,但也会导致性能下降。用户需要在精度和性能之间找到平衡,以确保应用的流畅运行。
优化选择:在实际应用中,可以根据具体需求调整这个参数。如果对精度要求不高,可以使用较小的数值以提高性能;反之,则可以选择较大的数值以获得更准确的结果。
通过合理设置这个参数,用户可以优化摄像机在路径上的表现,同时保持应用的运行效率。