车辆 – 可选部件
汉化标题:车辆 – 可选部件
原文标题:Cars – Optional parts
汉化更新时间:2026-01-14 12:59:49 +0800
英文原文最新更新时间:2025-11-08 12:39:08 -0300
多年来,为用户创建可切换的车辆可选部件的好方法是添加一个尾翼、一个设置项以及隐藏对象的关联动画。虽然现在你可以使用 Scene API 来切换几何体,但我认为尾翼仍然是更好的方法:例如,它们还可以改变空气动力学,这对于像可选车顶这样的部件来说非常有用。然而,存在一个问题:动画实际上无法真正隐藏几何体,因此所有内容仍然被绘制。为了解决这个问题,CSP 可以增强这种方法,实际上真正隐藏事物。
一般来说,你可能不需要做任何事情,CSP 应该已经能够解析大多数动画。检查 CSP 日志中的"Looking for optional parts",它应该打印出其处理过程。如果你看到"Found",这意味着它已经成功弄清楚并会自动显示和隐藏对象,从而节省绘制调用和其他开销。如果你的动画命名为"roof.ksanim",它甚至应该自动切换雨量遮挡。注意:对于 CSP 来认为条目是隐藏的,其缩放比例应为正常缩放的 5% 或更少,或者距离至少为 40 米。
(顺便说一句,如果你想知道隐藏几何体的最佳方法是什么,我认为是将缩放比例缩小到比如说正常缩放的 0.1% 或更少。当 AC 决定绘制一辆汽车时,它会绘制其中的所有内容,所以将物体移动到无穷远并不能为你节省绘制调用,但极小的缩放比例至少意味着 GPU 不需要花费时间绘制那些像素。)
(不过现在,你可以直接使用 CM/Tools/Creator 自动生成高效的动画。)
你仍然可以显式配置内容。方法如下:
[WING_BASED_SWITCH_…] ; 你知道你可以使用"..."或"…"来实现这个自动递增技巧吗?在 UTF8 中,它们都是三个字节,所以在代码中效果很好。
WING = 0 ; 从 0 开始的尾翼索引
POINT_0 = 0 ; 动画中的点,从 0.0 到 1.0(需要至少 0.05 的精度)
POINT_0_NODES = node0, node1, … ; 在动画的这个点显示的节点列表
POINT_1 = …
POINT_1_NODES = …
; 你可以根据需要添加任意数量的点,但在 0.05 的精度下,你实际上会被限制在大约 20 个点
ALTER_SHAPE = 0 ; 设置为 1 以将动画标记为改变形状,或设置为`RAIN_OCCLUSION`,动画将生成替代的雨量遮挡贴图再稍微啰嗦一下什么是"改变形状":CSP 从上方构建车辆的 2D 深度贴图,并将其用于各种用途。实际上,有两个贴图,一个在 GPU 上,用于隐藏汽车内部的火花和雨滴——然后一个频繁更新并响应诸如车门动画之类的东西——另一个在 CPU 上,用于确定摄像机是在汽车内部还是外部(改变音频、渲染和更多内容)。将 ALTER_SHAPE 设置为 1 将强制 CSP 更新其 CPU 车辆高度贴图,这是一个有点昂贵的过程,因此默认情况下不会这样做。当动画移动时,它无论如何都会自动更新其 GPU 贴图。