绳索 是通过使用距离和弯曲约束将粒子连接起来而形成的。由于规则粒子没有方向(只有位置),因此无法模拟扭转效应(维基百科),绳子也无法保持其静止形状。然而,与杆不同的是,绳索可以被撕裂/劈开,并且可以在运行时改变其长度。
杆 是通过使用拉伸/剪切和弯曲/扭转约束连接定向粒子而构建的。它们比绳索复杂得多,可以模拟扭转影响并保持其静止形状。然而,它们的长度不能在运行时改变,它们不能被撕裂/分裂。棒是理想的模型弹簧,粗杆,天线等。
杆能保持静止的形状,绳不能。
杆不能被撕裂或动态调整大小。这张表总结了绳索和杆的区别:
特性 | 基于Obi的绳 | 基于Obi的杆 |
---|---|---|
Rest shape | No | Yes |
抗扭强度 | No | Yes |
动态调整大小(ObiCursor) | Yes | No |
可撕裂 | Yes | No |
要生成基本的绳/杆的蓝图,请依次进入 Assets->Create->Obi->Rope/Rod blueprint,或者右键单击项目文件夹并选择 Create->Obi->Rope/Rod blueprint。绳杆设计图参数如下:
-
Thickness(厚度):生成绳/杆的粒子半径,以米表示。
-
Resolution(分辨率):每长度单位的粒子密度。值为1将生成重叠等于绳子厚度的粒子。0.5的值将产生粒子,使它们几乎不相互接触。低于0.5的值将在粒子之间留下间隙,这可能对碰撞检测的鲁棒性有害,但对性能有益。值为0时,每个控制点只产生一个粒子。
内部,基于分辨率计算rope中粒子数量的公式为:particleCount = ropeLength / ropeThickness * resolution。如果你在运行时创建绳索,你可以使用这个公式来计算所需的分辨率,以获得绳索中特定数量的粒子:resolution = particleCount / (ropeLength / ropeThickness)。
(在较低分辨率的绳索中,弯曲和距离限制可以看到微弱的紫色和绿色线条。) -
Pooled particles(池粒子):(仅绳索)。分配给撕裂或调整绳子大小时使用的额外颗粒。不打算在运行时撕裂或调整绳子的大小,可以将此值设置为零。
-
Keep initial shape(保持初始形状):(仅杆)。如果希望杆保持其初始形状作为其静止形状,启用此选项。禁用它导致杆假定一个完全笔直的静止形状。
若要编辑绳或杆的蓝图,先将蓝图分配给绳或杆脚本的蓝图槽。然后点击编辑路径按钮,进入路径编辑模式:
路径编辑器
路径编辑模式,选择一个控制点(白色小球体),显示其厚度手柄(橙色圆盘)和两个切线手柄(每边正方形)。
生成的绳子,使用 Extruded renderer(挤压渲染器)。
绳/杆蓝图中的粒子沿着路径生成,是经过几个控制点的弯曲形状。在路径编辑器中,你可以添加/删除控制点,移动/旋转/缩放现有的控制点,并设置控制点属性,这些属性将被插值到绳索粒子上。在编辑路径时,您将获得生成的绳/杆的即时反馈。有时在编辑路径时使用 ObiParticleRenderer组件 很有用,可以清楚地看到路径是如何转换为粒子的。
当编辑路径时,如果正在修改绳索的蓝图。修改将应用于所有共享相同蓝图的绳/杆。这能加速工作,也能毁掉工作,最好复制蓝图进行工作。
01 添加控制点工具
此开关使工具能够可视地向样条添加控制点。在鼠标光标和样条中最近的点之间将出现一条绿色虚线。单击将在该位置的曲线上插入一个新的控制点。
02 移除控制点工具
此开关使工具能够以可视方式从样条中删除控制点。在鼠标光标和样条中最近的点之间将出现一条红色虚线。点击将删除曲线中最近的控制点。
03 打开/关闭路径
路径可以是开放的(两端独立)或封闭的(曲线遵循封闭路径,两端共享相同的位置和切线)。
04 定向工具(仅限杆)
此工具允许定义每个控制点的方向。这允许指定杆的剩余捻度(扭度)。
05 切换切线手柄
切换切线手柄的开启/关闭。
06切换厚度手柄
切换厚度手柄的开启/关闭。
07 编辑控制点
你可以按住“shift”同时选择多个控制点,也可以使用“ctrl”拖动选择选框。平移、旋转和缩放小装置的工作方式与常规游戏对象相同,旋转和转换空间切换也是如此。
每个切线句柄有三种操作模式,可以按句柄设置:Free(自由)、Aligned(对齐)或Mirrored(镜像)。
- Free(自由):手柄的每一半都可以自由地独立移动。这允许创建尖锐的角落或曲率的突然变化。
- Aligned(对齐):两半将被迫位于与控制点的切线上,但是它们的长度可以独立设置。
- Mirrored(镜像):两半将被迫在方向和长度上都是相同的。
除了切线模式,每个控制点都有几个属性(通过插值)传递给粒子:
- Thickness(厚度):这一点处绳子的厚度。插值到粒子,用于碰撞检测和渲染。
- Mass:粒子质量。决定粒子在与另一个粒子或刚体发生任何约束(碰撞、距离、弯曲…)时的行为。
- Category:粒子碰撞类别,用于确定何时应该忽略与对撞机和其他粒子的碰撞。有关更深入的解释,请参见碰撞。
- Collides with:粒子碰撞遮罩,用于确定何时应该忽略与对撞机和其他粒子的碰撞。有关更深入的解释,请参见碰撞。
- Color:颜色的控制点,插值到粒子。当使用 ObiRopeExtrudedRenderer时,这个颜色传递给网格顶点颜色。
- Name:Obi将自动为每个控制点创建一个粒子组,其中包含最接近该控制点的粒子。您可以在这里设置组的名称。
参考地址:https://obi.virtualmethodstudio.com/manual/6.3/index.html