unity3D 您所在的位置:网站首页 unity弹性关节 unity3D

unity3D

2023-09-26 07:19| 来源: 网络整理| 查看: 265

插件下载地址:链接:https://pan.baidu.com/s/1tHRqatJN8LNk4a3SK_Vrsg                提取码:2e9h

导入我们的工程,就可以直接开始使用啦!

 

一、Create->3DObject->obi->Obi Rope(fully set up),它会生成一个游戏物体,对于做绳子需要的组件他都自动添加好了。

这么多组件,一个一个说吧。

     前四个都已Constraints结尾,都是对绳子各种限制以达到你想要的效果,Obi Rope,用来生成绳子的主体,Obi Catmull Rom Curve是用来设定绳子的形状,关于形状有两个脚本,一个是这个,另一个是Obi Bezier Curve,两个选一个即可,Obi Solver用来产生模拟效果。ObiCollider Group 用来设定可以和哪些物体产生碰撞效果。

 

1、Obi Rope

                 

self collision:自身是否产生碰撞

pooled Particles:为绳索创建的额外粒子数,用于撕裂和延长操作。 当绳索的一部分被撕裂时,将使用来自该池的一个粒子。 同样,当使用ObiRopeCursor增加绳索的长度时,将使用此池中的粒子。 如果您的绳索不能被撕裂或拉长,您可以将此值设置为零,因为除了初始的绳索之外不需要额外的颗粒。

Resolution:解析度:

确定用于生成绳索的粒子数量。 值为1将创建间距等于“厚度”值的粒子,允许它们重叠并创建绳索的紧密表示。 值0.5将使粒子之间的厚度值增加两倍,因此它们只是相互接触。 较低的值将在粒子之间留下更大的间隙。

请注意,低分辨率绳索的模拟速度更快,并且需要较少的约束迭代才能显得僵硬。 但是,他们更容易错过碰撞。

在较低分辨率的绳索中,弯曲和距离约束可以看作是微弱的紫色和绿色线条。 

在edit particles下,选中所有的粒子,然后选中Radius,我们可以看到绳子上的所有粒子,当resolution为0.5时,每个粒子刚好紧紧贴在一起,增大resolution会导致粒子之间的重叠现象,减少resolution会导致粒子之间的距离增大。

Tearable:启用此选项可使您的绳索可撕裂。

Thickness:厚度,即粒子的半径。

Section twist:每节扭度,扭曲度应用于每个绳索部分。 例如,如果要创建一个链,其中每个链接相对于前一个链接扭曲90°,则此值应为90。

Rendering下有三种模式可选择,Procedural Rope 绳子,Chain 链条,Line:线

Rendering下的thickness scale只是视觉上的,

smoothness:光滑度

2,Obi Solver

ObiSolver组件可以说是obi最重要的组成部分。 它负责模拟粒子物理和强制约束。 关于ObiSolver需要记住的三件重要事项:

此组件可以添加到场景中的任何GameObject(除非它已激活“simulate in local space” ),并且可以在同一场景中同时使用多个ObiSolver。每个ObiActor都需要包含在ObiSolver中以更新其模拟。 每个ObiActor都有一个Solver属性,您应该为其分配要包含的solver。每个ObiSolver完全独立于其他solver。 因此,由不同的ObiSolvers更新的actor不会相互交互/碰撞。 只有同一ObiSolver中的ObiActors才会相互反应。

max Particale:最大粒子数     ObiSolver为粒子池分配内存,ObiActors将在需要时借用粒子。 这是池的大小,因此是此solver模拟的最大粒子数。 因此,例如,如果池中有5000个粒子,并且您的actor每个消耗1000个粒子,则此解算器最多可以模拟5个角色。

Simulate When Invisible:隐藏时模拟,当所有相机都看不见时,这个求解器是否应该保持模拟? 如果您的模拟需要始终更新,请启用此选项,禁用它以在场景中存在多个解算器时提高性能,但它们始终不可见。

Simulate In Local Space:在本地空间模拟,如果取消激活,solver将在世界空间中执行模拟。 这是默认行为。 如果启用此选项,解算器将在局部空间中执行其模拟,并且每个actor将能够决定应将多少解算器的世界空间速度应用于其粒子。(如果选中,那么大多数情况下你都希望其下大多数actor都在本地空间下)

 

Interpolation:插值,用于渲染粒子的插值模式。 没有更快的计算速度,但Interpolate将提供更加视觉上有更好的是效果。

Damping:减震,粒子速度的速度阻尼,高阻尼可模拟在水中的情况。

sleep Threshold:睡眠阈值,任何动能低于此值的粒子都会冻结到位。 当您不希望速度或力量的微小变化扰乱主角时,这很有用,使其看起来像是抖动或移动得非常慢。 如果您希望粒子的位置受到作用于它们的任何力的影响,则将其设置为零,无论它多么小。

 

后面就是各种约束啦,可以为solver管理的所有actor全局启用/禁用每种约束类型。 以这种方式禁用约束(与禁用单个actor的约束组件相反)将允许solver完全跳过任何相关的计算。 这允许您自定义在幕后完成的工作并消除不必要的开销。

每个约束有四个公开参数

enabled:默认所有约束都已经启用了,对于不需要的约束,应该禁用。

Evaluation Order :评估顺序,一种是顺序模式,根据下面拍好的顺序。

                                              第二种是并行模式,并行模式收敛较慢,因此尽可能使用顺序模式。

Iteration:每个子步骤应该评估这些约束多少次? 高迭代计数将使模拟更接近地面实况解决方案。 如果这些约束对于您的特定目的非常重要并且您希望获得更好的性能,请保持低水平。 默认值为3。

SOR Factor:SOR因子,SOR代表连续过度放松。 当试图满足约束时,改善收敛的一种方法是“过度放松”约束。 也就是说,如果向左移动粒子2个单位将满足现在的约束,为什么不将它移动3个单位呢? 这正是这个因素的用途。 1是默认值,根本不执行过度放松。 2是最大值,允许您在约束条件下执行两倍的松弛。 高值可用于帮助加速两种模式(顺序或并行)中的任何一种的收敛,但请记住,模拟稳定性可能会降低。

 

 

3,Obi Collider Group:

用来添加可以与粒子产生碰撞的物体,注意,粒子将会忽略与自己同一个layer的GameObject,所以给Rope改变一个layer,或者可参与碰撞的物体换个layer.

 

4,Obi Distance Constraints:

距离约束,

Stewtching Scale:它是每个约束的其余长度的比例因子。

Stiffness:控制其拉伸程度。

Slack:控制其收缩程度。

5,Obi Pin Constraints

在edit下选中相应的点,点击Add Pin Constraint,即可将一个点固定到某个物体上。Remove select,则可以取消固定。

6,Obi Bending Constraints

这个组件用于限制弯曲程度,

Max Bendind:在约束开始之前允许的弯曲量,以世界单位表示。 将此视为上图中虚线的最大允许长度,因此0表示约束将始终尽力使粒子保持直线。 使用相对较低的值,0到0.04给出了良好的结果。

7,Obi Tether Constraints

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有