Obi 官网
Obi 论坛
插件下载

插件原理:

绳索的实现是通过一些约束将粒子链接起来而构建的。由于粒子没有方向(只有位置),因此无法模拟扭转效果,并且绳索无法保持其静止形状。但是,可以将绳索撕裂/裂开,并且可以在运行时更改其长度。


一,创建绳索:

蓝图的创建及其参数设置

创建蓝图的两种方式

  • Assets-> Create-> Obi-> RopeBlueprint
  • 右键单击项目文件夹,Create-> Obi-> RopeBlueprint

蓝图参数

  • Thickness(厚度):用于生成绳索的粒子的半径。
  • Resolution(粒子解析度):每长度单位的颗粒密度。值为1会生成粒子,以便它们重叠。值为0.5时将以几乎彼此不接触的方式生成粒子。小于0.5的值将在粒子之间留下间隙,这可能对碰撞检测的不利,但对性能有利。

  • PooledParticles(合并粒子):分配额外的颗粒以用于撕裂或调整绳索尺寸。如果您不打算在运行时撕裂或调整绳索大小,则可以将此值设置为零,因为除了最初的粒子外,不需要其他粒子。(如需动态更改绳索尺寸,此项参数数值要足够大,否则分配粒子数值不够会不渲染绳索并可能造成unity闪退)

要编辑蓝图,请将其分配给 Obi Rope 组件中的 Blueprint 。然后,单击“Edit path”按钮进入路径编辑模式:


通过 路径编辑器 (Path editor) 生成绳索

控制点的组成

路径编辑模式,其中选择了一个控制点(小的白色球体),显示了其厚度控制柄(橙色圆盘)和两个切线控制柄(每边均为正方形)。

  • 蓝图中的粒子沿着一条路径生成,该路径是经过多个控制点的弯曲形状。
  • 在路径编辑器中,可以添加/删除控制点,移动/旋转/缩放现有控制点,以及设置将插入到绳索粒子的每个控制点属性。
  • 有时在编辑路径时使用ObiParticleRenderer组件很有用,以清楚地看到路径如何转换为粒子。

注意:编辑路径时,本质是修改绳索的蓝图。修改将应用于具有相同蓝图的所有绳索/杆。这样可以大大加快工作流程,也可能破坏以前的工作!如果要使用现有的蓝图作为创建新蓝图的基础,请对其进行复制。

路径编辑器的作用

通过按住“ Shift”一次选择多个控制点,也可以使用“ ctrl”拖动选择框。

开关 作用
添加控制点工具:绿色的虚线将出现在鼠标光标和样条曲线的最近点之间。单击将在该位置的曲线中插入一个新的控制点。
删除控制点工具:红色虚线将出现在鼠标光标和样条曲线的最近点之间。单击将删除曲线中最接近的控制点。
打开/关闭路径开关:路径可以是开放的(两端是独立的)或封闭的(曲线遵循封闭的路径,两端共享相同的位置和切线)。
切换切线控制柄的开/关。
切换厚度手柄的开/关。
控制点切线模式 作用
Aligened 对齐:两个半部将被迫位于控制点的切线处,但是它们的长度可以独立设置。
Mirrored 镜像:在方向和长度上,切线两半部分将被迫相同。
Free 自由:切线的每一半都可以自由移动。这样可以创建尖角或曲率突然变化。
控制点其他属性 作用
Thickness 绳索在该点的粗细。插值到粒子,用于碰撞检测和渲染。
Mass 粒子质量。确定与另一个粒子或刚体发生任何约束(碰撞,距离,弯曲…)时,粒子的行为。
Phase 粒子阶段,用于确定何时应与刚体和其他粒子发生碰撞。
Color 控制点的颜色,插值到粒子。使用 ObiRopeExtrudedRenderer 时,此颜色将传递给网格顶点颜色。
Name Obi将为每个控制点自动创建一个粒子组,其中包含最接近该控制点的粒子。您可以在此处设置组的名称。

二,绳索渲染

在每帧的末尾,执行了绳索模拟后,将进行渲染。有几种渲染组件可用,它们具有不同的外观和性能特征。他们中的大多数人并不直接使用基于原始粒子的绳索表示。相反,名为ObiPathSmoother的附加组件会生成渲染器将其作为输入的绳索的基于帧的中间表示形式(可选地进行抽取,平滑或扭曲)。

路径平滑器组件 ObiPathSmoother


Decimation

  • 抽取:基于Ramer-Douglas-Peucker抽取算法,根据其曲率自适应减少绳架数量的阈值。数值设置为0时不进行抽取,更平滑。数值设置越大,越趋近于折线,更加节省效率。

Smoother

  • 平滑处理:抽取后将平滑迭代应用于绳索几何形状。在内部,这使用了Chaikin的切角算法的封闭形式。将平滑设置为0将不会执行任何平滑操作。平滑设置的越高效果越好,越耗费性能。

    Twist
  • 截面扭曲:施加到每个绳索部分的度数扭曲。例如,如果要制作一条链,其中每个链节相对于前一个链节扭曲90º,则此值应为90。

绳索渲染器

路径平滑器组件生成绳索的基于帧的表示后,渲染器使用它来输出可见的几何体。

默认渲染器(后续更新)

通过挤压ObiRopeSection沿构成绳索的粒子生成平滑,连续的网格。不需要手动创建的网格或几何。全部自动生成。

链条渲染器

在粒子之间的空间中实例化定制的预制件。这导致链条由刚性链节制成。必须提供至少1个预制件才能用作链环。

(P.S.实际使用过程中可能会出现链条角度不正常问题,我这里的建议是连环模型添加父层级,调整好角度拖成预制。)

动态更改绳索长度

属性 作用
Cursor Mu 光标标准化位置,在此位置进行添加/删除粒子。0将其放置在绳索的开头,1将其放置在绳索的末尾。介于两者之间的任何值都会将其放置在最接近该值的粒子中。
Source Mu 起始点:添加新粒子时从最接近该值中的粒子复制粒子的标准化位置。0将其放置在绳索的开头,1将其放置在绳索的末尾。介于两者之间的任何值都会将其放置在最接近该值的粒子中。
Direction 方向:布尔值,控制光标的方向。启用它会使光标指向绳索的末端。禁用它会使它指向开始。

使用ObiRopeCursor增加绳索的长度将使用绳索的粒子池中的粒子。确保池(蓝图中的PooledParticles值)足够大,以达到所需的最大长度。当减小绳索的长度时,未使用的颗粒将返回到池中。

动态更改长度关键代码:

 ObiRope rope;ObiRopeCursor cursor;float speed=1;void Start(){cursor = GetComponent<ObiRopeCursor>();rope = GetComponent<ObiRope>();}void FixedUpdate(){if (Input.GetKey(KeyCode.Alpha9)){//关键代码cursor.ChangeLength(rope.restLength + speed* Time.deltaTime);}}

三,绳索效果

上述两点说得是,如何创建并渲染一条绳子,但此时的绳子可能存在弹力比较大,质量比较重,摩擦力不够等等问题,以至于并不能满足你的项目需要。文章开头我们说,这个插件实现绳索的原理是通过一些约束将粒子链接起来而构建的。所以想要这条绳子达到一个你满意的效果,我们可以去调节ObiSolver(解算器)中的约束参数。

博主在实际项目中绳索常需要调节的是

  • Gravity.y (重力)
  • Damping(阻尼)
  • SleepThreshold(停止模拟计算,数值越大停的越快)
  • 以及最重要的Constraints(约束)

约束子步骤特点:可以禁用不必要的约束子步骤来减少计算。

约束子步骤 作用
Distance 距离,Iterations(迭代)数值越大,绳子弹力越小
Bending 弯曲
Particle Collision 粒子间碰撞
Particle Friction 粒子间摩擦
Collision 与外界碰撞
Friction 与外界摩擦
Skin 皮肤
Volume 体积
Shape Matching 形状匹配
Tether 栓绳
Pin 固定
Stitch 缝合*
Density 密度
Stretch Shear 撕裂
Bend Twist 弯曲旋转
Chain 链条

Obi系列插件(绳子、布料、流体、柔体、弹簧)都用这个结算器。所以实际项目中不是所有子步骤都会用到,禁用不需要的子步骤可以减少计算提升效率,但需要的必须要勾选。(P.S. 博主就因为没勾选Stitch缝合子步骤,导致绳子连接问题研究方向跑偏了浪费了两周.)

未完待续… …

unity实现绳子效果(绳索插件Obi Rope)相关推荐

  1. 【Unity插件--Obi Rope】制作含有物理效果的3D柔性绳子

    最近在做的项目中需要实现创建一个柔性绳子,网上查询了一下,unity自带的ObiRope插件可以很好的实现这一功能,下面介绍一下Obi插件的简单实用. 首先下载与unity版本对应的obi插件(版本不 ...

  2. Unity绳子插件Obi Rope下载与简单使用方法

    下载地址:(若失效请留言) 链接1:https://pan.baidu.com/s/1gF_Dm36k89vzsiQbyz00XA 提取码:8oxp      (19.11.17更新) 链接2(有反应 ...

  3. 转 Unity绳子插件Obi+Rope下载与简单使用方法

    原文:https://blog.csdn.net/qq_42751377/article/details/89101210 版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载 ...

  4. Unity插件Obi.Rope详解

    前言 Obi.Rope插件的使用方法 绳子的创建 创建后的Obi Rope,Inspector面板如下所示,组件比较多,其中Obi Solver是绳子,布料,液体等的总处理器,也可以单独分出来此组件为 ...

  5. unity 查找所以物体_用Unity来实现一下绳子效果——Obi Rope插件介绍

    (本文作者 @对马骑马使用炎拳 ) 今年年中的时候,<最后生还者2>引发了业界非常热烈的大讨论. 有关剧情.人物描绘的争议自然是最为集火的一环.可参看这里: 如何评价游戏<最后生还者 ...

  6. 《搬砖日记》Obi Rope插件的简单使用

    今天介绍一个Unity绳子插件Obi Rope的简单使用 先分享一下插件: 链接:https://pan.baidu.com/s/1XQp3mYxTRfvXwsU_Z_9ILw 提取码:pw08 进入 ...

  7. Unity 绳子效果 插件(Obi Rope )

    插件下载地址 Obi Rope插件地址 Obi Rope插件地址 一.绳子解算类脚本控制 1.Max Particles :最大粒子数 2.Max Diffuse Particles://最大传播默认 ...

  8. Unity 物理效果插件OBI使用记录,包含OBI-Rope绳索,OBI-Fluid,OBI-Cloth

    做项目过程中需要用到一些物理效果,最终找到了OBI物理插架系列,在这里做一个使用记录. 一.OBI-Rope绳索插件(版本3.2) Rope插件提供了很强大的绳子物理模拟效果,具体的案例可以参考插件里 ...

  9. [Unity绳子插件]Obi - Advanced Rope Simulation的使用

    今天我们用一个插件来做一个拖动绳子的效果,首先导入插件: 如果是比较旧的版本文件路径要注意一下 注意文件夹路径放置,一定要放正确: 把这两个文件夹拖到Assets下,正确路径如下所示: 下面我用的是比 ...

最新文章

  1. Java多线程常见面试题及答案汇总1000道(春招+秋招+社招)
  2. gradle平级项目引用
  3. Expression Blend 4 激活码
  4. Yii ActiveRecord 的via和viaTable示例
  5. 表单form类型数据转换为数组array
  6. Simulating fire sales in a system of banks and asset managers(模拟银行和资产管理系统的折价销售)
  7. C++抽象基类和纯虚成员函数
  8. 荣耀10x 鸿蒙,荣耀10X PRO渲染图曝光 矩阵三摄+OLED魅眼屏
  9. Qt Linguist手册
  10. 【spfa】假期计划(jzoj 3936)
  11. laravel redis_thinkphp+redis实现秒杀,缓存等功能
  12. 理科状元4年博士0篇论文,发顶刊终逆袭
  13. WampServer的配置
  14. OpenLTE 基站相关头文件:PHY、MAC、RLC、RRC、PDCP、RB、MME、HSS、GW
  15. linux中检测用户信息的命令是,Linux中系统状态检测命令
  16. linux配置路径PATH问题
  17. Win11右建没有刷新怎么办?Win11右建没有刷新的解决方法
  18. go语言中文件的操作:
  19. IE下图片切换的时候,图片总是切换不成功---根本问题是IE缓存图片
  20. rand()函数实现原理:线性同余法

热门文章

  1. 使用GridView使用类似电影海报宣传页面
  2. 微服务等于 Spring Cloud?了解微服务架构和框架
  3. django+python搭建消息推送系统
  4. 工作中有可能用到的运维小知识《现查现用》
  5. 小程序页面如何直接调用云存储中的图片
  6. tensorflow正则化添加方法整理
  7. 伪造的指纹能鉴定出来吗_指纹鉴定能鉴定多久时间的指纹 一个月能鉴定出来吗 主要是一个包上有三四个人的指纹 可以鉴定出来吗...
  8. word文档表格后面的空白页怎么删除?
  9. 自己动手用Android和Xposed编写一个微信聊天机器人——《微信聊天精灵》实现关键词自动回复。
  10. MMORPG游戏的文案设计