ObiRope的一些笔记
之前用ObiRope做的两个小功能,分别是绳子剪裁以及绳子拖拽。但是项目没做完,公司黄了,记录一下相关的笔记。
ObiRope下载
链接:https://pan.baidu.com/s/1D6330eonD4SALxTOJ2a_bg
提取码:hg2o
ObiRope
这个是控制绳子的生成器,需要挂在ObiSolver下进行。需要挂在目标蓝图,使用了相同蓝图,EditPath所有的ObiRope都会一起发生修改。
使用EditPath可以修改绳子的初始形状,并且这个修改不是针对单个ObiRope而是针对ObiRope使用的蓝图。
通过增加控制点,可以让绳子分成X个段落,并且控制点可以合其他组件进行联动,控制绳子样式。控制点除了控制绳子的粒子位置,还能控制粒子方向其中name是用来在Attachment下的Group的一个表示,Phase则是物理相关,相同的Phase的对象不会触发物理,而不相同的对象则会触发物理。
ThickNess控制粒子大小,表示于物理以及渲染
Resolution粒子间隔,1为0间隔。数值越小,间隔越大
PooledParticles为备用粒子,用延长绳子,而初始的粒子数则受限于你拉的控制点长度和Resolution
Obi Particle Attachment
这是一个控制绳子上粒子组固定对象的一个组件,Target为这个粒子组会放在这个Transform上,并且响应相关的效果。Static表示这个点是固定的,绳子并不会被这个东西拉动,反而会被这个东西固定起来。
如果是Dynamic的话则这个点会受到物理效果,物体的重力绳子会对这个挂在的Target产生物理效果,但是Target需要有刚体,并且刚体不是静止的。
只要一动绑上一段的的Transform就可以对绳子进行移动了
ObiCursor
这个组件可以控制绳子的伸长缩短,虽然不加的时候,拉取绳子两段的Attachment绑定的也会拉长绳子,但是这时候绳子只是被【拉伸】不是被【延长】,并且里面的粒子排布会变宽,就会造成穿透等现象。
使用Cursor,可以【延长】绳子,调用它自己的 cursor.ChangeLength(length);的方法,可以调整绳子的长短,并且这个延长,增加绳子的粒子。会在SourceMu调整粒子和CursorMu来调整绳子吐出来的地方和绳子收回去的地方。
但是这个Cursor新增的粒子会受到蓝图的PooledParticles的粒子总数控制,超过这个总数的粒子,就不会继续延长,而是变成【拉伸】
restLength = rope.restLength; //稳定下来的时候的长度length = rope.CalculateLength(); //现在绳子的长度element = rope.elements.Count; //element的个数partical = rope.particleCount; //这个绳子现在有多少个粒子绳子
通过上面参数可以获取到当前绳子的相关状况,RestLength实则为你绳子长度,除了使用cursor.ChangeLength(length)进行长度修改之外,普通的拉伸控制点距离是不会让这个数值改变的。
CalculateLength(); 这是会计算并返回现在绳子的实际长度,这个数会把你拉伸之后的长度给复制进去
element,实则是粒子组,为是一个数据结构,有这两个粒子在总一个池子里面的索引,以及他们之间的距离所组成的一个数据结构
切割
ObiRope实际上的粒子是在Solver上进行计算的,而并不是由ObiRope进行一个处理,而一般粒子都是通过Solver粒子组的所以所表示
[System.Serializable]public class ObiStructuralElement{public int particle1;public int particle2;public float restLength;public float constraintForce;public float tearResistance;}
是这样的一个数据结构。
可以通过这个段代码来遍历粒子的位置
foreach(var item in rope.elements){int p1 = item.particle1;int p2 = item.particle2;Vector3 pos1 = rope.GetParticlePosition(p1);Vector3 pos2 = rope.GetParticlePosition(p2);}
可以通过上面的这个方法,找到你要断开的一个靠近的一个电,并且获取到他对应的elements
使用这个代码让绳子在指定位置断裂
rope.Tear(element) //切割指定的element并断开
ObiRope的一些笔记相关推荐
- 【读书笔记】知易行难,多实践
前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...
- 【运维学习笔记】生命不息,搞事开始。。。
001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...
- SSAN 关系抽取 论文笔记
20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...
- pandas以前笔记
# -*- coding: utf-8 -*- """ Created on Sat Jul 21 20:06:20 2018@author: heimi "& ...
- PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call
您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...
- 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- 王道考研 计算机网络笔记 第六章:应用层
本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 第二章:王道考研 计算机网络笔记 第 ...
- 王道考研 计算机网络笔记 第五章:传输层
本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 第二章:王道考研 计算机网络笔记 第 ...
最新文章
- Struts2 验证规则配置文件
- 怎么在线安装php文件,PHP在线安装数据库
- python教学视频-Python入门视频课程
- 组件 插件 控件联系与区别
- BZOJ5089 最大连续子段和(分块)
- 能否向函数传递一个数组?
- 多特征值数据预处理_「人工智能」No.6 特征工程之数据预处理
- phpst安装memcache扩展_在 Ubuntu/Debian 下安装 PHP7.3 教程
- 构建用于测试的超大型内存InputStream
- 【LeetCode笔记】104. 二叉树的最大深度(Java、DFS、二叉树)
- oracle developer 连接 mysql
- 最新友盟6.1.1集成遇到的坑,自定义分享界面实现(跳转控制器做分享)
- WiFi音箱在国内普及需解决的三点
- 李志 逼哥 完整专辑网盘下载
- c语言程序书写时每行必须有行号,C语言阶段复习一.doc
- php 回车符替换,php怎么替换回车符
- Ubuntu安装nvm
- MySQL数据库引擎简介
- 深入理解 Linux 内核---访问文件
- Linux命令 - zip命令