动态骨骼|01 Magica Soft
也可以用Dynamic Bone,不过这个插件更新,而且已经用Jobs优化过了,DB的话得自己优化
安装
-
安装Burst,用于将C#编译成native code
-
安装Collections,几个必须的高效容器
-
安装Jobs
2021以下的Unity可以在Package Mangaer里找到
2021以上的需要通过Git Url添加 com.unity.jobs
- 安装Entites(可选,之后可以加入MAGICACLOTH_ECS宏,开启插件ECS)
- 导入插件
简单说明
MagicaPhysicsManager
相当于中心管理器,每个场景都需要,或者DontDestroy。这个插件用自己的物理引擎进行控制,与Unity的物理引擎完全分开。因此,它完全不会干扰Unity的物理系统,PhysicsManager管理整个系统和物理的计算时间。
MagicaBoneCloth
使用骨骼来模拟布料运动,这样的物理模型更加适用于模拟头发,绳子这些不同意拉伸但是容易形变的物体,运用在衣服时,则需要看衣物材质是否容易拉伸,开销低
MagicaBoneSpring
使用骨骼来模拟弹性形变,适合乳摇等,开销非常低
MagicaMeshCloth
通过改变顶点位置来模拟布料运动,开销高
MagicaMeshSpring
通过改变顶点位置来模拟乳摇,开销中
MagicaRenderDeformer
模型形变器,如果使用MeshCloth或者MeshSpring需要挂载,开销高
MagicaVirtualDeformer
虚拟形变器,可以将多个形变器融合成一个,减少顶点数,开销高
Collider
包括了:MagicaSphereCollider 、MagicaCapsuleCollider 、MagicaPlaneCollider
分别是球体,胶囊体,平面碰撞器,用来进行动态骨骼的碰撞检测,可以防止骨骼进入
BoneCloth
通过摇晃真实骨骼的transfrom来达到晃动的效果,一般用于辫子等甩动效果
1.添加脚本
2.将需要晃动的根骨骼加入列表中
3.设置骨骼
点击Start Point Selection
- Z Test : 勾选后只会选中摄像机能看到的节点
- Move Point : 代表插件可以晃动的节点
- Fixed Point : 代表这个节点作为固定节点
- Invalid Point : 不会进行计算,忽略了
设置完之后务必点击End Point Selection保存,不然没用啊
4.设置碰撞
在需要设置碰撞的骨骼上添加三种碰撞之一(根据需要),然后放到这个碰撞列表里
5.创建
在这里有很多参数可以调节,或者直接选择预设模板,然后点击Create创建
BoneSpring
和BoneCloth基本没差别,不过这个是用于乳摇等晃动效果的
MeshCloth
不同于骨骼晃动,此脚本采用真实的布料模拟,效果好很多,但是开销也比较大
模型导入设置
务必打开读取权限
渲染形变器
给需要形变的Mesh添加
会自动根据网格读取对应的数据,不需要手动Create
虚拟形变器
创建一个空节点,添加脚本
虚拟形变器可以将多个形变器合成为一个网格数据,减少顶点数量,增加布料模拟的性能
首先将形变器添加到虚拟形变器的列表中,点击Create创建数据
默认状态下,顶点数据基本没有变少,就是3个形变器的数据之和
点击Open Cloth Monitor可以观察顶点合并情况,可以发现默认情况顶点非常多,布料模拟会爆炸的…
- Merge Vertex Distance : 此距离内的顶点会被合并(单位米)
- Merge Triangle Distance : 此距离内的面片会被合并(单位米)
设置之后可以发现数据量明显下降了
添加布料模拟
创建一个空节点,添加脚本
与BoneCloth应用步骤类似,添加虚拟碰撞器,添加碰撞,最后Create
MeshSpring
和MeshCloth类似,先添加形变器,再添加虚拟形变器
然后添加脚本
拖入晃动的中心位置,设置朝向,transfrom的前方向要与这里设置的朝向一直,这里是Z,所以transfrom的z轴朝前
摄像机剔除
在摄像机外看不到的部分可以不进行模拟
对于骨骼动画来说,需要将所属的Mesh进行绑定,并设置剔除模式
- Reset : 剔除摄像机以外的模拟,如果再次出现,那么重置
- Pause : 暂停摄像机外的模拟,如果再次属性,那么回复
- Off : 关闭功能
如果是布料模拟,那么只需要开启剔除就好了,Mesh是自动选择的
注意,在编辑器模式下,如果模型也出现在的Scene视图,那么也是不会被剔除的!
开启剔除后,运行游戏,把摄像机移动到别的地方,可以发现脚本的状态是False
性能测试
同屏100个角色开启模拟,部分骨骼动画+布料模拟