美文网首页
MagicaCloth使用指南

MagicaCloth使用指南

作者: 英仙之盾 | 来源:发表于2021-02-22 17:13 被阅读0次

前言:这是一款使用unity burst compiler和job system来进行实时布料演算的第三方插件。它使用自己的虚拟网格进行布料演算,不会对模型外观产生负面影响,同时也有不错的性能。其内容包含随动骨骼、实时布料演算、风力影响等实用的内容,打折的时候还是很建议入一个的。

完整版文档:https://magicasoft.jp

环境搭建

在使用之前,需要保证项目环境内有burst compiler与job system,project setting的player下Scripting Backend为IL2CPP,Api Compatibility为.NET 4.0,并且启用unsafe。

常驻物件

由于插件进行演算是由MagicaPhysicsManager进行控制,该核心prefab不论在哪个scene里都应该放一个(或者跟着dontdestroy物体一起走也行,反正每个场景中至少要有一个该组件)。

Mesh Cloth

先说一下这个最亮眼的实时布料。想使用它,就得先保证模型的ReadWrite Enable是打开的,之后为进行布料模拟的模型挂上MagicRenderDeformer,这只形变器在挂上模型的一瞬间便会自己产生网格数据,不需要我们手动create(注意模型顶点数不能超过65535,否则该组件将无法工作,也无法创建meshdata。实在需要如此高的面数的话,可以考虑把衣服部分单独分离出来。当然这里也推荐分离出来,因为不分离出来的话,你的项目会在分配权重时直接被一万多个UI球卡死)。

在模型的同级右键创建一个MagicVirtualDeformer,把带MRD的模型数据传入列表中,同时可以在这个物件内对虚拟网格进行减面操作以提高模拟的性能,之后需要我们手动点击此物件底下的create来生成虚拟网格。

在场景内/需要进行布料模拟的人物根物体下创建一个MagicMeshCloth,这是进行实时布料模拟的核心物件,把MVD的数据传入之后,我们需要手动点击start point selection来为模拟粒子分配固定点和活动点,分配完之后用End Point Selection来结束,调整模拟参数parameters(或使用预设)并点击底下的create。

这样,我们就完成了实时布料模拟框架的全流程,点击运行便可在拖动根物体时看到模拟队象的效果。

实时布料模拟的碰撞

有布料模拟,当然就有布料碰撞。以下讲的是非自碰撞的创建流程。

为了简化想象的过程,我们在之前的流程里把一块plane变成了布料,因此这里的碰撞用球体做栗子。

创建一个sphere,在它的子级下右键创建一个MagicaSphereCollider,这个碰撞体的大小既可以通过物件内的radius参数来调节,也可以通过缩放来调节。

之后,我们需要把这颗碰撞球的参数传入之前创建的MagicaMeshCloth的collider list内,并在下面的Parameters内将ColliderCollision打钩,再点一次底下的create刷新数据,便可在运行时看到指定布料对碰撞球做出反应,且性能稳定。

Wind

MagicaCloth有自己的风力系统,目前仅可使用方向风。

在hierarchy里右键从create other里创建预设好的MagicaDirectionWind即可一支得到对全场景cloth有影响的风,该组件可以调整风力main和噪声turbulence。

如果想对单独一件布料调整风影响,可以找到它的MagicaMeshCloth/BoneCloth,调整parameter内的external force。其中,Mass Influence可以调整布料从固定点到末段活动点的质量衰减,0为不对布料应用质量衰减效果;Wind Influence为风力对布料的影响权重;Wind Random Scale为布料对于风噪声反应的强弱。

施工中……

说实话剩下的bone功能和springbone差不多,不太想写了,也用不上它。各位有这方面需求还是去看文档吧。

相关文章

网友评论

      本文标题:MagicaCloth使用指南

      本文链接:https://www.haomeiwen.com/subject/iojcfltx.html