首页 > 其他分享 >【Unity】利用MagicaCloth的ConnectionMode将骨骼链连接成网格

【Unity】利用MagicaCloth的ConnectionMode将骨骼链连接成网格

时间:2022-11-12 23:11:46浏览次数:64  
标签:骨骼 ConnectionMode 网格 连接成 头发 MagicaCloth Unity Mesh

最近想把小草神的模型从之前利刃于心大佬的版本换成官方发布的版本,不过用MagicaCloth弄好布料仿真以后发现头发的地方有点问题,可以看到两搓头发在来回摩擦:

仔细观察了游戏里面的表现,发现这两搓头发之间应该是没有这么明显的互相摩擦的,但是官方给的模型里,确实是由两条骨骼链分别控制着不同头发的运动:

如何解决这个问题呢?如果动手能力强的话可以直接去Blender里修改头发骨骼,比如删掉已有的部分骨骼,新建一条骨骼链控制头发运动。不过这里想探究一下如何在不修改原来模型的基础上,直接在Unity里实现

一种朴素的想法就是把这挫长头发用MagicaMeshCloth进行控制,不过另一种方法更加有效,直接将原来的MagicaBoneCloth组件的Connection Mode从Line设置为Mesh Automatic即可解决该问题:

根据MagicaCloth官方给出的文档,其原理是Line模式的话就是单独处理每条链的运动,骨骼链之间不会互相影响;设置为Mesh Automatic的话,就会简单地把相邻骨骼链自动连接成三角网格,维护它们间的相对位置关系;除此之外还有Mesh Sequential Loop模式和Mesh Sequential No Loop模式,分别表示按照Root List的顺序将骨骼链连接成网格,适合处理比较复杂的情况。这两个模式的区别就是前一种会把第一条和最后一条骨骼链连起来,后者不会。总之英文文档写得很详细,一看就明白。

只要选择除Line模式以外的模式,组件里就会解锁一个Triangle Bend选项,能够控制网格形变的程度。具体玩法也可以参考官方文档,也可以自己玩玩看。

根据我的理解,Bend Power越高网格运动越僵硬,Twist Correction勾上可以防止网格过度形变后无法还原到原来的样子,Twist Recovery Power越高摆动幅度越小。

这么弄完以后,感觉应该好看一点了吧:

这种方式也适合模拟那些带骨骼的裙子运动,想进一步了解可以看IGBeginner0116大佬的B站视频,讲得很详细。

标签:骨骼,ConnectionMode,网格,连接成,头发,MagicaCloth,Unity,Mesh
From: https://www.cnblogs.com/yaoling1997/p/16884974.html

相关文章

  • Unity之"诡异"的协程
    为什么说是诡异的协程呢?首先从一个案例说起吧,示例如下:游戏目标:让小车进入到对应颜色屋子里,即可获得一分。(转弯的道路可控) 为了让小车能够平滑转弯,小车的前进方向需要......
  • unity3d修改对象属性
    unity3d修改对象属性 #regionvoidloadWorkerModel(Vector3init_position,stringworker_name,stringBDID){GameObjectobj=(GameObject)......
  • Unity一键制作预制体Prefab一键修改Prefab属性
    1.适用于制作多个预制体(一个模型文件下面几百个子物体,都需要制作成预制体,这一个一个拖不是要炸裂)模型资源如下图 2.模型先放到Resources文件夹下面方便读取,制作......
  • Unity 判断UI对象是否在屏幕内,并且把对象移进屏幕
    publicstaticboolJudgmentUiInScreen(GameObjectobj){RectTransformrect=obj.GetComponent<RectTransform>();RectTransformuiRoot=r......
  • 菜鸡学Unity 之 Unity中对游戏物体的常用操作旋转移动放缩
    LZ-Says:愿时光依旧,美好前方~前言本小节,我们一起来看下Unity中对游戏物体的常用操作旋转移动放缩这些基本骚操作吧~基本骚操作全程都可以简单操纵鼠标完成,当然,直接有效是......
  • unity 获取scene整体的bound包围盒以及center
    如下:多场景的情况也适合参考: https://gamedev.stackexchange.com/questions/134675/unity-bounds-includes-the-center-of-the-scene1privateList<Bounds>......
  • unity 对rotation、 localPosition、 localScale 进行修改
    unity对 rotation、localPosition、localScale进行修改 rotation:1、xxx.transform.localEulerAngles=newVector3(0.0f,0.0f,0.0f); 2、xxx.transform.rotat......
  • Unity描边的几种方式
    参考:在shader中实现五种描边方法从描边方式上来讲,大体可分为两种,一种是对着原模型往外扩大挤出,然后通过某种方式裁剪掉与原模型重合的地方,来实现描边。另一种则是通过算法......
  • Unity版本使用情况统计(更新至2022年10月)
    本期UWA发布的内容是第11期Unity版本使用统计,周期为2022年5月至2022年10月,数据来源于UWA网站(www.uwa4d.com)提测的项目。希望给Unity开发者一个行业参考,了解近半年来哪些Uni......
  • MvvmLight的接班人CommunityToolkit.Mvvm包使用介绍
    前面在一家军工类企业上班,公司没有网。最近在需要使用MVVM框架的时候才发现MvvmLight作者宣布停止更新了,有点可惜。微软出了一个CommunityToolkit.Mvvm包来接MvvmLight的......