最终效果
文章目录
- 最终效果
- 前言
- 模型获取
- 一、animation rigging 和 cloth布料模拟
- 二、Unity-Chan!Model
- 三、Dynamic Bone
- 四、Magica Cloth 1
- 五、Magica Cloth 2
- 1、介绍
- 2、下载
- 3、官方文档
- 4、安装插件
- 5、使用Animation Rigging插件可视化骨骼
- 6、Magica Cloth介绍
- 7、BoneCloth的使用
- BoneCloth使用设置
- Transform 设置
- 顶点绘制
- Parameters参数设置
- 效果
- 8、如何使用MeshCloth
- 设置模型网格的读/写
- 其他条件
- 添加网格布
- 渲染网格和代理网格
- 注册渲染网格
- Reduction 减少代理网格设置
- 顶点绘制
- Parameter settings 参数设置
- 运行效果
- 9、如何使用BoneSpring实现胸部抖动
- 添加Bone Spring的MagicaCloth
- 注册转换Transform
- Parameter settings 参数设置
- 效果
- 10、设置碰撞检测(防穿模)
- 1.Collider collision detection
- 原理
- 碰撞器类型
- 碰撞模式
- 使用
- 注册碰撞器
- 设置碰撞顶点半径和摩擦力
- 最终效果
- 2.Backstop 逆止器
- 介绍
- 使用
- 刘海摆动
- 头发法线都指向头部之外
- `第一个限制`:Use Max Distance
- `第二个限制`:Use Backstop
- 裙子设置示例
- 动画姿势的重要性
- 自定义蒙皮
- 绘制有效顶点
- BACKSTOP SETTING 逆止器设置
- 3.Self Collision and Mutual Collision自我碰撞与相互碰撞
- 11、BoneCloth高级设置 骨网连接 实现BoneCloth完美的防穿模
- AUTOMATIC MESH 网格自动
- SEQUENTIAL LOOP MESH 顺序循环网格
- SEQUENTIAL NON LOOP MESH 顺序非循环网格
- 12、Wind Setting 风力设置
- Global Direction 全局方向
- Sphere Direction 球体方向
- Box Direction 框方向
- Sphere Radial 球体径向
- Wind zone priority 风区优先级
- MagicaCloth settings MagicaCloth设置
- Sine wave and noise wave正弦波和噪声波
- Moving wind 移动风
- 最终效果
- 完结
前言
要实现Unity中的人物布料系统并使其具备动态效果,可以探索多种技术方法。这些方法不仅可以使衣服、裙子、头发等元素自然飘动,还可以实现胸部抖动、骨骼模拟、配件摆动和尾巴摆动等细致效果。本文将深入探讨五种实现这些动态效果的技术方案,从基础的物理模拟到高级的动画控制,帮助你打造逼真的人物表现。
本文主要探究Magica Cloth 2的使用,因为我想探究最好的实现方法,而不是探究最多的实现方法。Magica Cloth 使用Unity Job系统+ Burst编译器操作的高速布料模拟,可以用于骨骼模拟,以及顶点模拟,最关键的是,性能以及效果都很好的。
模型获取
参考:使用VRoid Studio二次元建模,创建专属于自己的二次元卡通人物模型,创建完全免费开源且属于自己VRM模型
至于如何在unity中使用这种VRM模型,可以参考我这两篇文章:
【推荐100个unity插件之25】在unity中直接使用VRM模型——URPUniVrm插件的使用
【blender小技巧】使用Blender将VRM或者其他模型转化为FBX模型,并在unity使用,导出带贴图的FBX模型,贴图材质问题修复
一、animation rigging 和 cloth布料模拟
如果你角色的衣服和头发都已经被绑上了骨骼,那么animation rigging应该是一个不错的选择,但是这里就不过多介绍了,后面我会专门写使用animation rigging的文章
如果你角色的衣服和身体使用的是不同的网格,同时,她的衣服又是没有有厚度的,那么就适合使用unity自带的coth系统来处理衣服
使用介绍参考:【unity小技巧】Unity人物衣服布料系统的探究 —— Cloth组件
二、Unity-Chan!Model
插件地址:https://assetstore.unity.com/packages/3d/characters/unity-chan-model-18705
使用介绍参考:https://www.bilibili.com/video/BV1G34y127e6/
三、Dynamic Bone
插件地址:https://assetstore.unity.com/packages/tools/animation/dynamic-bone-16743
使用介绍参考:https://www.bilibili.com/video/BV165411o78h/
四、Magica Cloth 1
地址:https://assetstore.unity.com/packages/tools/physics/magica-cloth-160144
使用介绍参考:https://www.bilibili.com/video/BV1m3411L75p/
五、Magica Cloth 2
1、介绍
magica cloth对比前面的方式支持更多的物理模拟方式,使用Unity Job系统+ Burst编译器操作的高速布料模拟,可以用于骨骼模拟,以及顶点模拟,最关键的是,性能以及效果都很好的。
MagicaCloth 2是一个与Unity DOTS配合使用的布料模拟。可用于“变换”和“网格”。它将是先前MagicaCloth的后续版本。MagicaCloth 2完全不受渲染管道的影响。也适用于任何着色器。它是magica cloth 1的升级版,系统优化将所有组件集成为一个,无需进行繁琐的预构建(创建按钮)。还添加了新的碰撞功能,如边缘碰撞、后挡和自碰撞。
适用于除WebGL以外的所有平台
2、下载
地址:https://assetstore.unity.com/packages/tools/physics/magica-cloth-2-242307
3、官方文档
官方文档写的挺好的,如果有不懂的可以选择随时去查看
https://magicasoft.jp/en/magica-cloth-2-2/
4、安装插件
MagicaCloth 2需要Unity 2021.3.16(LTS)或更高版本才能运行。
从编辑器菜单中打开窗口/PackageManager,从MyAssets中选择MagicaCloth 2并导入。操作需要两个软件包(Burst和Collections),但它们会在导入MagicaCloth时自动安装。与之1不同,我们不需要单独手动安装这两个软件包。
如果在安装过程中出现以下对话框,请在安装完成后重新启动Unity编辑器。
导入完成后,可以运行demo例子检查一下导入是否成功。
运行场景,如果角色的袖子、头发、裙子等在物理上抖动,则安装完成。
当然如果您不需要这些示例,则可以删除它们。
5、使用Animation Rigging插件可视化骨骼
将需要飘动的根节点拖入Root Bones。如果找不到节点,可以使用Animation Rigging插件。选中角色,点击插件的Bone Renderer Setup,可以可视化骨骼。
效果
6、Magica Cloth介绍
首先在角色下面新建一个Magica Cloth,这个是模拟布料的插件。对于放置MagicaCloth组件的位置没有特别的限制,因此可以随意放置它们。
这将生成一个MagicaCloth游戏对象。
MagicaCloth的检查器由以下四个块组成
红色:信息窗口
蓝色:设置模拟目标
绿色:运行参数设置
黄色:SceneView的Gizmo显示设置
虽然有很多,但只有蓝色和绿色部分与设置相关。蓝色部分设置模拟目标,绿色部分设置抖动运动。
7、BoneCloth的使用
BoneCloth是一种基于Unity的变换结构执行布料模拟的机制。完美的摆动头发和配件与骨骼内置到网格。通过操纵“Transform”来表达抖动,它可以大量使用,因为加工负荷低。
和此前版本类似,布料有2种模拟方法,本文研究的是有骨骼的模型,即Bone Cloth,这种方法性能消耗较小。对于没有骨骼的模型可以使用Mesh Cloth。
BoneCloth使用设置
首先要做的是将组件类型更改为BoneCloth。将布料类型更改为[BoneCloth],如下所示。这将为BoneCloth切换检查器。
Transform 设置
需要在BoneCloth中的Root Bones注册要模拟的Transform 。我这里修改模型的尾巴摆动为例
将尾巴根骨骼添加到Root Bones列表中。
此时,尾巴结构在场景视图中显示为红色和白色球体,如下所示。
顶点绘制
在MagicaCloth中,模拟顶点分为三个行为属性。小球有三种颜色。根节点必须设置为红色,节点只能旋转。白色或绿色节点是正常飘动的节点。黑色或灰色节点是不受影响的节点。(谨慎使用灰色节点,它不受碰撞影响,可能会反向拉扯白色节点)
类型 | 颜色 | 解释 |
---|---|---|
Fixed | 红色 | 不可动顶点,需要连接移动顶点 |
Move | 白色或绿色 | 自由移动顶点,在绘制时以绿色表示以提高可见性 |
Invalid | 黑色或灰色 | 从模拟中完全忽略的顶点 |
BoneCloth将添加到根骨骼的变换设置为固定属性,并自动将其他变换设置为移动属性。如果要更改此设置,可以手动重写顶点属性,在这种情况下,按如下所示单击钢笔标记以启动顶点绘制模式。
一个绘制窗口将出现在场景视图中,您可以更改顶点属性。切换模式后可以刷这三种节点。一般情况下我们不需要更改节点的颜色,默认的一个红拖一串白就行。
Parameters参数设置
在设置了变换和顶点属性之后,你所要做的就是设置控制移动的参数。此参数是实现理想运动的基本项目。但是,正如你从检查员那里看到的,有很多参数,需要一定的经验和熟悉度才能理解整个事情。因此,最好先使用官方事先准备好的预设,以便轻松设置。可以从检查器的预设菜单中选择。
预设 | 解释 |
---|---|
Accessory | 配件;装饰品,配饰 |
Cape | 披肩,斗篷 |
FrontHair | 前面的头发 |
LongHair | 长头发 |
ShortHair | 短头发 |
Skirt | 裙子 |
SoftSkirt | 柔软的裙 |
Tail | 尾巴 |
这里我们直接选择使用[Tail]预设。Parameter就会使用tail的预置内容的参数。
效果
按下Unity编辑器中的播放按钮就可以查看效果
8、如何使用MeshCloth
MeshCloth是一种布料模拟网格顶点的方法。可以表达比BoneCloth更真实的抖动。但是,负载会更高。
- 通过操纵网格顶点表达抖动
- 即使网格不包含骨骼也可以使用
- 由于处理负载很高,因此在大量使用时要注意性能
设置模型网格的读/写
在使用MeshCloth之前,需要检查目标模型的导入设置。MeshCloth需要网格的读/写属性来操纵顶点。由于这通常为OFF,因此在Project视图中选择目标模型,如下所示,并将模型导入器的ReadWrite
检查设置为ON。
此外,Rig
中的Optimize Game Objects
(优化游戏对象)必须关闭。
其他条件
对于蒙皮网格,每个顶点的最大权重数必须小于或等于4。
添加网格布
在这里,我将以模型的衣服为例解释设置。首先,在模型右键菜单中添加Magica Cloth组件,和前面的BoneCloth一样。然后将布料类型更改为[Mesh Cloth]。
MeshCloth的检查器与BoneCloth的不同之处仅在于主设置,如下所示。其他部件与BoneCloth相同。
渲染网格和代理网格
使用MeshCloth时的一个重要概念是代理网格。MeshCloth不使用渲染网格(即显示网格),因为它是用于模拟的。
这主要是因为:
- 如果直接使用渲染网格,顶点数将太大,模拟负载将非常大。(即使对于外观简单的网格,顶点数超过10000也并不罕见。)
- 三角形连接结构在很大程度上不适合模拟
- 有许多情况下,网格被划分为便于表达(例如:分割以分离裙子后面和前面的材料等)
下面是原始渲染网格(顶部)和简化的代理网格(底部)之间的关系。
可以看到,下部代理网格的顶点较少,形状较简单。MeshCloth在此代理网格上运行所有模拟。并将结果反馈到原始渲染网格并显示在屏幕上。记住这一点,因为这是一个非常重要的概念。
注册渲染网格
让我们注册渲染网格,它将成为代理网格的源。SkinnedMeshRenderer和MeshRenderer可以注册。我这里模型被分配了一个SkinnedMeshRenderer,如下所示。
在Source Renderers“网格布料源渲染器”列表中注册此SkinnedMeshRenderer。
可以注册多个渲染网格。在这种情况下,所有渲染网格都将合并到一个代理网格中。比如我这里大衣就是由两个渲染网格构成
注意原始网格必须不超过65,535个顶点。不然会报错
代理网格现在将显示在场景视图中。
此代理网格在简化之前,因此它仍具有与渲染网格相同的结构。
Reduction 减少代理网格设置
注册渲染网格时的代理网格具有与渲染网格相同的结构。可以按原样开始模拟,但如前所述,使用更简单的代理网格在性能和稳定模拟方面具有优势。Reduction 可以实现这种简化的工作。
通过组合两个滑动条来进行简化。
解释 | |
---|---|
Simple Distance | 它只是连接附近的顶点。不考虑网格的结构。 |
Shape Distance | 根据网格的形状连接附近的顶点。未连接为表面的折点即使在附近也不会合并 |
尝试移动滑动条。移动滑动条将在真实的时间内简化代理网格并将其显示在场景视图中。让我们在查看场景视图时简化代理网格。
那么我们应该简化为多简单呢?
这取决于网格的形状和长度以及您想要执行的模拟类型,因此很难设置通用标准。
以下指标仅用作指导。
- 代理网格越简单,性能越好
- 它应该被简化到渲染网格中没有精细突起的程度
- 如果你简化得太多,碰撞检测就会很弱。
- 此外,渲染网格和代理网格之间的差异可能增加,并且显示可能变得不稳定。
我简化它,使代理网格的表面几乎是平贴。
顶点绘制
简化代理网格后,我们需要对每个顶点的行为做出决定。顶点绘制可以做到这一点。与BoneCloth不同,MeshCloth的顶点绘制非常重要
。这是因为MeshCloth默认将所有顶点属性设置为无效。因此,MeshCloth始终需要顶点绘制来确定每个顶点的属性。
这里要做的一个重要任务是明确区分非移动顶点和移动顶点。理想情况下,如果是裙子,腰部附近的顶点不应移动,其余顶点可以自由移动。不移动的顶点称为fixed
固定属性,移动的顶点称为move
移动属性。
“顶点绘制”由以下笔标记按钮激活。启动后,场景视图将切换到绘制模式。
使用“绘制”面板设置绘制属性。
解释 | |
---|---|
Point Size | 显示的顶点球体的大小 |
Brush Size | 画笔尺寸 |
Shape | 启用此选项后,将使用Gizmo显示代理网格的结构。 |
Culling | 启用后,如果代理网格的顶点法线与场景摄影机的方向相反,则不会显示顶点球体。 |
Z-Test | 启用后,将显示顶点球体和深度测试的结果。 |
Through | 启用此选项后,可以忽略深度并填充光标内的点。笔刷大小也会更改为专用笔刷。 |
Paint Attribute | 选择要绘制的顶点属性 |
顶点属性分为三类。
颜色 | 解释 | |
---|---|---|
Move | 绿色 | 运动属性,将其设置为可以自由移动的顶点 |
Fixed | 红色 | 固化属性,设置为不移动的顶点 |
Invalid | 灰色 | 无效属性,设置要从模拟中排除的顶点。例如,如果腰部以上的部分与模拟完全无关(如连衣裙),则将其设置为无效属性将提高性能。 |
现在让我们来画画。选择要绘制的属性,将鼠标光标放置在代理网格上,然后单击或拖动以进行绘制。这次我画的衣服如下。完成绘制后,按退出按钮退出绘制模式。
Parameter settings 参数设置
最后,我们将设置控制移动的参数。在这里,让我们轻松地设置它从预设以及如何使用骨布。从预设菜单中选择[Cape],如下所示
预算参数和前面BoneCloth是一样的
预设 | 解释 |
---|---|
Accessory | 配件;装饰品,配饰 |
Cape | 披肩,斗篷 |
FrontHair | 前面的头发 |
LongHair | 长头发 |
ShortHair | 短头发 |
Skirt | 裙子 |
SoftSkirt | 柔软的裙 |
Tail | 尾巴 |
运行效果
可以看到穿模问题严重,我们后面再单独解决
9、如何使用BoneSpring实现胸部抖动
BoneSpring为Transforms提供了弹簧摇摆功能。这对于角色胸部颤抖之类的事情来说非常好。另一个优点是处理负荷低,因为功能简单。
添加Bone Spring的MagicaCloth
首先,与BoneCloth类似,从“层次”右键单击菜单中添加MagicaCloth组件。
然后将ClothType更改为[Bone Spring]。现在你已经准备好使用BoneSpring了。
注册转换Transform
首先,您需要注册要模拟的Transform。在KAGURA中,胸部变换的左右两侧有成对的起点和终点。BoneSpring需要注册作为层次结构起点的Transform。将这两个变换添加到RootBones。
当您注册起始变换时,它的所有子变换也会自动注册。此时,Gizmo将在场景视图中可视化,如下所示。
与BoneCloth类似,在RootBones中注册的变换会自动指定给红色固定属性,而其他变换会自动指定给白色移动属性。
也可以通过顶点绘制更改此设置。
顶点绘制可从绿色笔标记中获得。
Parameter settings 参数设置
最后,我们将设置控制移动的参数。在这里,让我们轻松地设置它从预设以及如何使用骨布。从预设菜单中选择[HardSpring],如下所示
MagicaCloth其实只为为BoneSpring提供了三个选项。
预设 | 解释 |
---|---|
HardSpring | 硬弹簧 |
MiddleSpring | 中等强度弹簧 |
SoftSpring | 软弹 |
效果
10、设置碰撞检测(防穿模)
在这里,我们将解释与人体的碰撞检测,这在模拟角色服装时是必不可少的。碰撞检测设置对于BoneCloth和MeshCloth是通用的。MagicaCloth有四种碰撞控制机制。
解释 | |
---|---|
Collider collision detection | 碰撞检测与碰撞器,如球体,胶囊和平面。这是最常用的方法。 |
Backstop | 一种通过设置顶点法线方向上可进入的距离和半径来防止布料进入人体的方法。 |
Self-collision | 自我碰碰撞。 防止布料自己陷进去。 |
mutual collision | 相互碰撞。防止布料咬合其他布料。 |
1.Collider collision detection
原理
碰撞器碰撞检测的原理很简单,它会挤出,以便顶点不会侵入碰撞器形状(如球体和胶囊)。
通过根据人体的形状布置这种碰撞器,它是一种防止布料进入的机制。
碰撞器类型
球体碰撞器
胶囊碰撞器
平面碰撞器
碰撞模式
(1)VERTEX SPHERE MODE顶点球体模式
将代理网格的顶点视为球体,并使用碰撞器执行碰撞检测。球体的大小可以调整。
有一个优点,你可以使用它而不用担心它,因为处理负载很轻。
但是,如果对撞机很小,如下图所示,则存在一个问题,即它将通过球体之间,因此要小心。
(2)EDGE MODE 切口模式
此模式在代理网格边和碰撞器之间执行碰撞检测。边缘厚度可以调整。边缘模式的巨大优势是不存在vertex sphere mode(顶点球体模式)的滑脱问题。
但是,应谨慎使用,因为处理负载高于球体模式。只有在顶点球体模式有问题时才应该考虑使用它。
使用
让我们以模型的外套穿模为例,来建立一个碰撞器。
我们需要一个腿部碰撞器和一个腰部碰撞器。首先,选择左腿骨骼。然后打开右键单击菜单并选择创建其他/Magica Cloth 2/Magica Capsule
胶囊碰撞器组件已添加如下:
使用胶囊对撞机检查器调整位置和大小。
如果您想将胶囊碰撞器的起点和终点设置为不同的大小,请按检查器中的[S]按钮,如下所示。这允许您独立设置起始半径和终止半径。
也可以使用ReverseDirection反转方向,或通过禁用AlignedOnCenter将中心与起点对齐。使用这些属性调整碰撞器以适合您的腿。
调整时,将场景视图更改为线框模式以获得更好的可见性。
让我们以同样的方式在臀部添加一个球体碰撞器。最后放置四个碰撞器,如图所示。
注册碰撞器
请注意,目前碰撞器的还无法工作。因为系统还不知道你的这些碰撞器是为哪一块的cloth组件服务。所以我们还需要在进行绑定
这时防穿模功能其实就已经生效了
设置碰撞顶点半径和摩擦力
我们还可以在Collider List设置碰撞模式、其厚度(半径)和摩擦力(摩擦力)。
尝试操作半径滑杆。您在场景视图中设置的半径应该以真实的时间反映出来。请调整大小的顶点球体适合放置碰撞器,而在这个场景视图看。
摩擦力是碰撞器和顶点接触时滑动的困难程度。增加该值会使其不那么光滑。
最终效果
2.Backstop 逆止器
介绍
逆止器是一种碰撞检测类型,它根据顶点的法线方向限制可以输入的距离。通过使用这个,你可以很容易地防止刘海等侵入你的头部。它还可以防止T恤和其他物品进入人体。机构简单,处理负荷低,是能够强力防止侵入人体的系统。
逆止器由[Movement Limit]面板设置。
支持原则很简单。限制代理网格的每个顶点可以相对于法线方向移动的范围。
上图显示了配置属性及其限制。代理网格的顶点和法线显示动画姿态或原点,而不是当前的平移位置。
第一个限制
:顶点只能在以原点为中心、半径为“最大距离”(Max Distance)的球体内移动。
第二个限制
:顶点只能在与原点法线相距Backstop Distance的距离处移动到半径为Backstop Radius的Backstop Collision球体之外
。
这两个限制意味着顶点只能在“最大距离”(Max Distance)内和“后退碰撞”(Backstop Collision)外移动。您可以同时使用这两个限制或仅使用其中一个限制。
使用
刘海摆动
让我们以刘海为例。我们将使用Backstop 来防止刘海进入头部。我们事先用BoneCloth为刘海添加预置,以便它摆动。
头发法线都指向头部之外
首先,让我们检查当前代理网格的法线方向。这将通过将Gizmo面板中的轴设置为Normal
法线来显示。
绿色线是法线方向。取消勾选位置,顶点球体将隐藏以便更好的检查,确保可见性。
BoneCloth只是使用了变换的Y轴,所以这个模型的方向很混乱。在此状态下,Backstop 不可用。
让我们调整法线方向。理想情况下,所有法线都指向头部之外。
使用Normal Axis“法线轴”和Normal Alignment“法线对齐”属性进行调整。
将“Normal Alignment”设置为“Transform”。
拖入一个头部中心点,如果你的头部中央没有一个Transform ,最好创建一个新的游戏对象并注册它。
在“Transform ”模式中,法线从指定的“Transform ”坐标径向更改。此更改是对代理网格进行的,不会影响原始Transfrom或网格。
结果如下
现在我们已经准备好设置所有法线都指向头部的后挡板了。
第一个限制
:Use Max Distance
顶点只能在以原点为中心、半径为“最大距离”(Max Distance)的球体内移动。
效果
第二个限制
:Use Backstop
顶点只能在与原点法线相距Backstop Distance的距离处移动到半径为Backstop Radius的Backstop Collision球体之外
。
完成效果
裙子设置示例
在这里,我们将以裙子为例解释高级backstop 逆止器设置。后挡主要防止顶点穿透人体。然而,人体总是充满活力的,它的姿势以各种方式变化。正因为如此,它不会像上面提到的刘海那么简单。
不过同样我们先加上摆动效果
动画姿势的重要性
动画姿势在这里很重要。这是“变换”或“网格”在不使用MagicaCloth的情况下为动画变形的姿势。例如,以下角色的裙子蒙皮到左腿和右腿。因此,裙子会跟随腿部并设置动画。这是理想的,在这种情况下,你可以设置一个backstop。
但是,下面的角色没有将裙子贴在腿上。因此,当执行动画时,腿将穿过裙子。在此状态下无法设置
Backstop 。
想要backstop 对动画姿势施加限制。为了使backstop工作,Transform 或网格跟随动画是很重要的。
自定义蒙皮
可以使用Gizmo显示当前动画姿态的状态。
您可以按如下所示打开动画姿态检查来检查它。
例如,样品中包含的UnityChanKAGURA的裙子没有贴着腿的皮肤。
如果由于某种原因艺术家校正是不可能的,有一个自定义蒙皮功能作为替代。这是一项自动为指定骨骼的代理网格蒙皮的功能。如果已正确设置动画姿势,则不需要。
在“自定义蒙皮”面板中启用该检查,并在“蒙皮骨骼”中注册蒙皮所需的骨骼。对于Kagura裙子,我注册了从胸部到双腿的骨骼,如下所示。
该配准骨骼在Gizmo中可视为黄色球体。
效果,自定义蒙皮使代理网格跟随腿部。
也可在BoneCloth中使用。但请记住,自定义蒙皮只是一个替代功能。因此,它不是很准确。
绘制有效顶点
每个顶点可以设置有或没有功能的Backstop 。这是通过从面板中的蓝色笔标记启动顶点绘制来完成的。
例如,当您不希望止回器在网格的特定部分上工作时,可以使用它。
BACKSTOP SETTING 逆止器设置
在此之后,你所要做的就是像刘海例子中那样设置挡块。这一次,我们将为KAGURA的裙子设置自定义蒙皮。
完成
这是一个backstop的控件,不使用任何碰撞器碰撞。可以看到,后挡板限制了腿的移动,并防止顶点进入腿。还请注意,腰部周围没有顶点。通过添加碰撞器并在此状态下对其进行加强,您可以控制裙子无论如何移动都不会穿透腿部。
3.Self Collision and Mutual Collision自我碰撞与相互碰撞
这里,我们将解释两个碰撞检测功能,自碰撞和相互碰撞。两者相似,但有不同的用途。这两个碰撞功能非常强大,但使用它们时有一些警告。自碰撞功能目前处于测试阶段。
比如我们不希望尾巴和衣服穿模,配置尾巴的Magica Cloth和衣服不可相互碰撞即可
效果
11、BoneCloth高级设置 骨网连接 实现BoneCloth完美的防穿模
BoneCloth进行衣服皇帝防穿模,正常衣服骨骼直接存在间隙,可能防穿模效果没那么好。
好在BoneCloth具有从注册的变换自动构建网格的功能。通过使用此功能,变换之间的连接变得更强,形状维护和碰撞检测变得更强。此外,由于边缘是水平连接的,您可以通过将其与边缘碰撞一起使用来进一步加强碰撞检测。
从BoneCloth的[连接模式]进行设置。
目前,有三种连接方式可用。
作为一个例子,我们将解释由10根骨形成的裙部的连接方法的特征如下。
AUTOMATIC MESH 网格自动
自动连接附近的变换。但是,根据“变换”的位置,形状可能会不自然。
SEQUENTIAL LOOP MESH 顺序循环网格
根据根骨骼的顺序水平连接。因此,注册根骨骼的顺序很重要。根骨骼的起点和终点连接在一个循环中。
SEQUENTIAL NON LOOP MESH 顺序非循环网格
根据根骨骼的顺序水平连接。因此,注册根骨骼的顺序很重要。根骨骼的开始和结束不连接。
12、Wind Setting 风力设置
通过使用风生成功能,您可以将风添加到布料模拟中并更逼真地绘制它。这是通过在场景中放置一个MagicaWindZone组件来控制的,该组件指定在其中生成风的区域。您还可以通过调整[Wind]面板上的设置来更改风在MagicaCloth组件上的效果。
Wind zone settings 风区设置
要生成风,需要在场景中指定其范围。我们将为此使用MagicaWindZone组件。请注意,Unity也有一个WindZone组件,但它不影响MagicaCloth。需要一个专用的MagicaWindZone组件来为MagicaCloth提供风。
可以从右键单击菜单中添加组件,如下所示:
风区根据[模式]分为几种类型。由于每个模式的设置项目不同,我们将在下面解释这些类型。
Global Direction 全局方向
影响整个场景的定向风。
No range. 没有范围。
Sphere Direction 球体方向
影响球形区域的定向风。
Box Direction 框方向
影响四方形区域的定向风。
Sphere Radial 球体径向
影响球形区域的径向风。辐射风是从区域中心向外产生的。因此,没有方向规范。也可以使用[Attenuation]指定风力从中心向外的衰减曲线。
Wind zone priority 风区优先级
如果多个风区域在布料组件上重叠,则只有具有最低体积的风区域将处于活动状态。但是,唯一的例外是GlobalDirection区域,它被视为无限大,具有最低的优先级。如果后面描述的[IsAddition]标志打开,则排除此优先级。
MagicaCloth settings MagicaCloth设置
风的效果也可以通过调整每个布料组件。为此使用“风”面板。
Sine wave and noise wave正弦波和噪声波
两种波形,正弦波形和噪声波形,用于风波动。正弦波形具有恒定的周期,可用于从日本动画创建场景。然而,代价是随机性的损失。
噪波波形具有不规则的周期,可以创建更自然和逼真的运动。
这两个波形可以通过[Noise Blend]混合。
Moving wind 移动风
通过增加Moving wind[移动风]参数,您可以根据角色的移动自动生成风。移动风的力受惯性参数的影响。换句话说,如果运动的影响被惯性参数抑制,则运动风的影响将相应地减小。
最终效果
完结
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!
好了,我是向宇
,https://xiangyu.blog.csdn.net
一位在小公司默默奋斗的开发者,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~