首页 > 其他分享 >Cinemachine系列——Cinemachine Collider

Cinemachine系列——Cinemachine Collider

时间:2024-10-23 14:50:19浏览次数:1  
标签:障碍物 Collider 目标 相机 设置 Cinemachine 系列

image

Cinemachine Collider 是Cinemachine虚拟相机的一个扩展,它对虚拟相机的最终位置进行后处理,旨在保持与虚拟相机的“关注目标”(Look At target)之间的视线。它通过远离阻碍视线的游戏对象来实现这一点。

添加Cinemachine Collider扩展到Cinemachine虚拟相机,可以完成以下任务:

将相机推离场景中阻碍视线的障碍物:当有物体阻挡视线时,相机会自动移动,以确保视线畅通。

将相机放置在障碍物前面:如果有障碍物位于虚拟相机与其关注目标之间,相机会调整位置,确保关注目标可见。

评估镜头质量:镜头质量是衡量虚拟相机与理想位置之间距离、虚拟相机与目标之间距离以及阻碍视线的物体的指标。其他模块(如Clear Shot)也会使用镜头质量。

Cinemachine Collider使用物理射线检测(Physics Raycaster)。因此,Cinemachine Collider要求潜在障碍物具有碰撞体(collider)体积。这个要求会带来一定的性能开销。如果这个开销在你的游戏中过于高昂,可以考虑以其他方式实现相同的功能。

Collide Against

Cinemachine Collider 会将这些层中的游戏对象视为潜在的障碍物。它会忽略那些不在选定层中的游戏对象。

简单来说,Cinemachine Collider 只会检测并处理在指定层中的物体,认为它们可能会阻碍相机的视线。对于不在这些层中的物体,相机会视而不见,不会考虑它们作为障碍物。这样可以提高性能,并确保相机的调整只针对实际需要处理的对象。

Ignore Tag

简单来说,如果一个障碍物被赋予了特定的标签,那么Cinemachine Collider将不会考虑这些障碍物为阻碍视线的对象。为了确保目标在视野中能够清晰可见,建议将这个设置的标签与目标的标签相同,这样可以有效避免相机因目标本身而受到干扰。

Transparent Layers

在这些层上的物体将永远不会阻碍目标的视线。

简单来说,任何位于这些指定层的物体都不会被视为视线的障碍,因此相机在调整位置时会忽略它们。这意味着这些层中的物体不会影响到目标的可见性,确保目标始终能够清晰地显示在画面中。
(比如给透明的物体添加这一层?)

Minimum Distance From Target

忽略距离目标的支点(pivot point)小于这个距离的障碍物。

简单来说,设置一个距离阈值,任何距离目标支点小于这个值的障碍物将不会被考虑为阻碍视线的对象。这可以帮助相机在目标非常接近其他物体时,避免不必要的调整,从而保持画面的稳定性和流畅性。

Avoid Obstacles

勾选此选项以允许Collider在目标被障碍物遮挡时移动相机。可以使用距离限制、相机半径和策略属性来调整避开障碍物的方法。如果不勾选,Cinemachine Collider会评估虚拟相机与其理想位置之间的距离、虚拟相机与目标之间的距离,以及有多少障碍物阻碍了目标的视线,从而给出一个镜头质量的评分,但不会尝试移动相机以改善镜头效果。

简单来说,当这个选项被勾选时,相机会在目标被挡住时自动调整位置,以确保目标可见。你可以通过相关设置来控制相机如何避开这些障碍物。如果不勾选,相机将不会主动移动,只会报告当前的镜头质量,意味着可能会出现目标被遮挡而无法清晰显示的情况。

Distance Limit

在检查到这个相机的目标的视线是否清晰时,最大的射线检测距离。输入0将使用当前到目标的实际距离。此选项在勾选“避免障碍物”(Avoid Obstacles)时可用。

简单来说,当启用“避免障碍物”选项后,你可以设置一个最大距离来检测相机与目标之间的视线是否被阻挡。如果设置为0,相机会自动使用当前实际到目标的距离进行检测。这一设置可以帮助开发者控制相机在遮挡情况下的行为,从而确保目标在画面中可见。

Minimum Occlusion Time

除非遮挡持续时间至少达到这个设置的时间,否则不采取任何行动。

简单来说,这意味着相机在判断目标被遮挡时,不会立即做出反应,只有当遮挡情况持续了一定的时间后,才会采取相应的措施。这种设置可以避免由于短暂的遮挡(例如,某个物体快速经过)而导致相机频繁调整,从而保持画面的稳定性。

Camera Radius

相机会尽量保持与任何障碍物之间的这个距离。建议将这个值设置得小一些。如果由于相机的视野(FOV)过大而导致相机看到障碍物内部,可以增加这个值。

简单来说,这个设置控制相机与障碍物之间的最小距离。保持这个值较小可以让相机更贴近目标,但如果视野过大,可能会使相机穿透障碍物,从而造成不自然的视角。在这种情况下,可以适当增加这个值,以确保相机不会进入障碍物内部,保持更自然的拍摄效果。

Strategy

Collider保持目标可见的方式。当“避免障碍物”(Avoid Obstacles)选项被勾选时,此设置可用。

简单来说,当目标被障碍物遮挡时,Cinemachine Collider会通过不同的方法来调整相机的位置,确保目标能够尽量保持在视野中。这个设置允许你选择相机如何处理视线被遮挡的情况,比如相机是向后推开、改变角度,还是采取其他策略来确保目标可见。

  • Pull Camera Forward:沿着相机的Z轴向前移动相机,直到它位于离目标最近的障碍物前面。简单来说,这个设置让相机自动向前移动,以确保它不被障碍物遮挡,而是保持在离目标最近的障碍物的前面。这样可以确保目标在画面中可见,同时避免障碍物对视线的干扰。
  • Preserve Camera Height:在尝试保持相机原始高度的同时,将相机移动到一个替代的视角。简单来说,这个设置允许相机在不改变高度的情况下,调整位置以获得不同的拍摄角度。这种方式可以帮助开发者在保证视角变化的同时,保持相机的高度不变,从而实现更灵活的画面构图。
  • Preserve Camera Distance:在尽量保持相机与目标之间原始距离的同时,将相机移动到一个替代的视角。简单来说,这个设置允许相机在不改变与目标距离的情况下,调整位置以获得不同的拍摄角度。这种方式可以帮助开发者在保持与目标相对距离不变的情况下,探索多样化的视角,确保画面构图的灵活性和多样性。

Maximum Effort

处理障碍物碰撞的上限数量。较高的数字可能会影响性能。在大多数环境中,4个就足够了。

简单来说,这个设置限制了相机在检查视线时,能够处理的障碍物数量。如果设置的值过高,可能会导致游戏性能下降,因此建议在大多数情况下,将这个值设置为4,这通常足以确保相机正确识别和处理障碍物,而不会造成过多的性能负担。

Smoothing Time

在距离目标最近的点上保持相机的最小时间(以秒为单位)。这个设置可以用来减少在障碍物较多的环境中相机的多余移动。当勾选“避免障碍物”(Avoid Obstacles)时,此选项可用。

简单来说,这个设置要求相机在靠近目标的最短时间内不进行频繁的调整,以减少在环境中障碍物较多时,相机因不断移动而造成的混乱。这有助于提高画面的稳定性和流畅性,确保目标在视线中的持续可见性。

Damping

遮挡消失后,相机返回到正常位置的速度。较小的数值会使相机反应更快,而较大的数值会使相机反应更慢。当勾选“避免障碍物”(Avoid Obstacles)时,此选项可用。

简单来说,这个设置控制了相机在视线被遮挡后恢复到原来位置的速度。如果设置较小,相机会快速调整到正常位置;如果设置较大,相机的调整会变得较慢。这种灵活的响应设置可以根据场景需求进行调整,以确保相机在遮挡消失后能平滑地恢复视角。

Damping When Occluded

相机避开障碍物的移动速度。较小的数值会使相机反应更快,而较大的数值会使相机反应更慢。当勾选“避免障碍物”(Avoid Obstacles)时,此选项可用。

简单来说,这个设置控制了相机在检测到障碍物时的反应速度。如果数值较小,相机会迅速移动以避开障碍物;如果数值较大,相机的移动反应会比较慢。根据场景需求,可以调整这个设置,以确保相机在遇到障碍物时能够灵活而顺畅地调整位置。

Optimal Target Distance

如果设置的值大于零,当目标距离此值更近时,镜头的评分会更高。将此属性设置为0可以禁用此功能。

简单来说,这个设置用于调整镜头质量评分的机制。如果目标离设定的距离越近,镜头的评分就会提高,意味着镜头质量更好。如果不希望根据目标距离影响评分,可以将这个值设置为0,从而关闭这一功能。

标签:障碍物,Collider,目标,相机,设置,Cinemachine,系列
From: https://www.cnblogs.com/chenxiayun/p/18496237

相关文章

  • 腿夹腿,带你用react撸后台,系列一(Vite篇)
    Github地址|文档地址|预览地址react-antd-console是一个后台管理系统的前端解决方案,封装了后台管理系统必要功能(如登录、鉴权、菜单、面包屑、标签页等),帮助开发人员专注于业务快速开发。项目基于React18、Antdesign5、Vite和TypeScript等新版本。对于使......
  • 物流行业研究系列报告
    物流云:构建全球化供应链的数字引擎2024中国自动驾驶物流货运产业洞察研究报告交运行业2024年10月投资策略:把握顺周期物流板块的投资机会,关注财政政策对油散的需求影响物流行业:多空交织影响油价波动较大,动力煤市场偏强运行交通运输行业专题研究:顺周期航空/物流/航运凸显盈利弹......
  • nerual network系列--3b1b视频记录
    3b1b部分视频汉化B站作品页:3Blue1Brown投稿视频-3Blue1Brown视频分享-哔哩哔哩视频neuralnetworksseries:https://www.youtube.com/watch?v=aircAruvnKk&list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi内容+问题(只是部分思考,可能暂无答案),以视频记录和思考顺序记录,可能较乱,不做整......
  • 【React系列三】—React学习历程的分享
    一、组件实例核心—Refs通过定义ref属性可以给标签添加标识字符串形式的Refs这种形式已经不再推荐使用,官方不建议使用https://zh-hans.legacy.reactjs.org/docs/refs-and-the-dom.html#legacy-api-string-refs回调形式的Refs<scripttype="text/babel">classDemoe......
  • 【SpringBoot系列】实现跨域的几种方式
    一、什么是跨域跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,或者涉及到两个不同域名的资源之间的交互。由于同源策略(SameOriginPolicy)的限制,浏览器不允许跨域请求。同源策略规定,A网页设置的Cookie、LocalStorage和IndexDB无法被同源以外的网页读取。跨域请......
  • R语言机器学习系列教程大纲
    R语言机器学习算法实战系列(一)XGBoost算法+SHAP值(eXtremeGradientBoosting)R语言机器学习算法实战系列(二)SVM算法+重要性得分(SupportVectorMachine)R语言机器学习算法实战系列(三)lightGBM算法+SHAP值(LightGradientBoostingMachine)R语言机器学习算法实战系列(四)随机森林算法......
  • 100+SCI科研绘图系列教程(R和python)
    科研绘图系列:箱线图加百分比点图展示组间差异-CSDN博客科研绘图系列:箱线图加蜜蜂图展示组间数据分布-CSDN博客科研绘图系列:小提琴图和双侧小提琴图展示组间差异-CSDN博客科研绘图系列:组间差异的STAMP图的ggplot2实现-CSDN博客科研绘图系列:组间差异误差棒展示-CSDN博客科研绘......
  • [ 钓鱼实战系列-基础篇-4 ] 一篇文章教会你用红队思维收集目标邮箱信息-2(附邮箱收集自
    ......
  • Yolo系列 V1和V2的对比
    在计算机视觉领域中,目标检测是一个核心问题,旨在识别图像中所有感兴趣的目标,并给出它们的类别和位置。近年来,随着深度学习技术的发展,目标检测领域取得了巨大的进步。Yolo(YouOnlyLookOnce)系列算法以其出色的速度和合理的精度,在实时目标检测任务中占据了重要的地位。本文将详细......
  • 生产数据误删恢复系列之学习使用FY_Recover_Data进行恢复
    一、安装FY_Recover_Data下载地址:https://hellodba.com/reader.php?ID=191&lang=CN[root@myoracle~]#unzipFY_Recover_Data.zip[root@myoracle~]#mvFY_Recover_Data.pck/home/oracle/[root@myoracleoracle]#chown-Roracle.oinstallFY_Recover_Data.pckS......