Magica Cloth 使用方法笔记
效果展示:
参考资料:
1、官方使用文档链接:
インストールガイド – Magica Soft
2、鱼儿效果案例:
https://www.patreon.com/posts/69459293
3、插件工具链接:版本()
目录:
一、安装环境:
二、实现思路+操作:
1、 网格类型解算器 骨骼类型解算器 碰撞类型创建
2、布料更新器创建
网格解算类型+碰撞体 创建
骨骼解算类型+碰撞体 创建
3、设置不同布料软硬度
一、安装环境:
关于在Unity 2018.4.12版本 下 导入 Magic Cloth 之前,需要提前置入的包:
Ads
Burst
Collections
Jobs
Mathemmatics
二、操作指南
骨骼布料控制器
BoneCloth 是一种运行 Unity Transform 的布料模拟。
非常适合用预先内置于网格中的骨骼来摇动“头发”。
骨布简介
由于 Unity-Chan 模型中的后发有骨骼,因此请进行设置以使用 BoneCloth 移动它。
首先,从要移动的骨骼结构中检查基础变换。
将 BoneCloth 添加到您的角色中。
在层次结构窗口中右键单击,然后从菜单中选择“Magica Bone Cloth”,如下所示。
创建了一个 BoneCloth 对象。
BoneCloth 设置可以从检查器中进行。
信息中有一个红色图标,表示出现问题。
目前,由于未设置数据,因此发生错误。
首先,注册参考骨骼。
在 RootList 中注册您之前检查的头发的根骨骼 [J_L_HairTall_00] 和 [J_R_HairTall_00]。
自动读取根骨骼下方的分层骨骼。
接下来,从注册的根骨骼中编辑链接骨骼的固定骨骼和移动骨骼。
如图所示,按下[起点选择]按钮。
当您进入粒子编辑模式时,检查器会发生变化,并且正在编辑的骨骼会出现在场景视图中的小控件中。
* 此处显示的粒径用于编辑。并不是实际的命中判定大小。
在编辑模式下可以设置以下三种类型。
姓名 | 描述 |
移动点 | 移动粒子。 所有受物理引擎影响的粒子都必须标有此运动类型。 |
固定点 | 固定颗粒。 基本上,它被设置为移动粒子路线。 固定粒子不移动,但在与其一起移动的移动粒子的根源上起着重要作用。 因此,总是需要一个固定粒子作为运动粒子的起点。 |
无效点 | 完全排除在计算之外的粒子。 请务必将完全不需要计算的粒子设置为无效。 这减少了计算负荷。 |
对于 BoneCloth,首先指定的根骨骼被设置为“固定粒子”,另一个被自动设置为“移动粒子”。
如果您想手动设置,可以使用此面板选择粒子类型,并通过在场景视图中“左拖动”鼠标光标来更改它。
但请注意,移动粒子的起点始终需要固定粒子。
当所有编辑完成后,按[终点选择]按钮反映数据。
设置参数来控制运动。
不过,如上所述,参数设置需要一定的经验,所以我们先加载一个预设并轻松设置。
按[参数]右侧的[预设]按钮。
从列表中选择 [PonyHair] 进行加载。
Preset按钮从v1.8.4开始实现,所以如果你没有Preset按钮,请按右侧的[Load]按钮,从MagicaCloth/Preset文件夹中加载[BoneCloth_PonyHair.json]。
您现在已经设置了头发的常规参数。
(* 需要根据此处使用的模型的结构进行调整。)
现在一系列的设置已经完成,点击【创建】按钮即可创建数据。
如果没有问题,BoneCloth 的状态图标会变为“白色”,并显示布料的信息。
在这个状态下就可以启动了。
让我们运行并测试它。
如果 Unity-Chan 的头发与身体的运动(动画等)相结合进行物理控制,则成功。
设置碰撞判断(COLLIDER)
然而,如果没有命中判断的话,毛发就会穿透身体。
为了防止这种情况,您需要设置一个碰撞器来防止粒子进入。
请注意,MagicaCloth 碰撞器与 Unity 碰撞器不同。
碰撞器分为三种类型。
SphereCollider和CapsuleCollider主要用于这个人体。
姓名 | 描述 |
魔法球对撞机 | 球形对撞机。 简单且最轻。 |
Magica胶囊对撞机 | 胶囊型对撞机。 尖端和末端尺寸可以更改。 比球形对撞机负载更高。 |
魔法飞机对撞机 | 平面对撞机。 主要用于地面。 |
让我们在腰部、胸部和手臂上添加碰撞器。
为了防止长发刺入人体,从腰部到胸部、从肩膀到手臂放置碰撞器是必不可少的。
首先,将球体碰撞器添加到您的腰部。
选择Uniy-Chan模型的髋骨,然后从右键菜单中添加[Magica Sphere Collider],如图所示。
对象像图像一样自动生成。
从 SphereCollider 检查器调整半径,从 Transform 调整位置,并设置碰撞器,使腰部几乎隐藏。
(*在线框模式下设置时很容易看到)
接下来,将胶囊碰撞器添加到您的手臂上。
同时选择Unity-Chan手臂骨骼并添加[Magica Capsule Collider]。
胶囊碰撞检查器允许您调整胶囊的长度以及尖端和末端的尺寸。
以同样的方式调整大小,使手臂隐藏起来。
对腰部等进行了这样的工作,最后完成了如图所示的设置。
注册之前在 BoneCloth 中创建的碰撞器。
在BoneCloth检查器的[Collider List]中注册所有进行碰撞判断的碰撞器。
MagicaCloth 允许您选择要为每个布料团队进行判断的碰撞器。
设置碰撞面板。
首先,检查[碰撞]面板。
如果不勾选,则不进行碰撞判断。
最后,调整BoneCloth的颗粒大小。
当您在层次结构中选择 BoneCloth 对象时,交叉粒子在场景视图中显示为黄色(固定)和白色(移动)。
此时球体的大小将作为每个粒子的命中判断大小。
(* 后述的布料监视器上可显示各种指示。)
在此状态下,打开 BoneCloth 参数的【半径】面板,移动半径曲线的开始/结束滑块。
我认为场景视图中的粒子大小发生了变化。
所有参数设置中,start表示固定(根)粒子,end表示移动粒子的结束。
这样调整实际的碰撞颗粒大小。
单击[创建]按钮以反映数据中最后调整的碰撞器和参数。
在MagicaCloth中,您需要按[创建]按钮才能将调整后的参数反映在数据中。
这样就完成了碰撞器设置。
让我们运行Unity。
现在毛发颗粒应该已经与身体发生碰撞,不再穿透。
骨布的基本设置到此结束。
骨骼弹簧控制器
网格布料控制器
直接操作MESH的MESH CLOTH
MeshCloth 的一个特点是网格顶点可以按原样进行布料模拟。
这也适用于 SkinningMesh。
MeshCloth 非常适合模拟裙子和碰撞检测等复杂运动。
然而,由于会发生诸如控制网格的每个顶点以及将结果写回到蒙皮网格等处理,因此计算负荷相应地增加。
MeshCloth 还需要一种称为“变形器”的东西来使网格变形。
因此,在构造MeshCloth之前,需要先设置Deformer。
模型导入设置
设置之前,需要检查要使用的模型的导入设置。
必须启用以下设置:
物品 | 描述 |
读/写启用 | 允许读取和写入网格。 它必须处于开启状态。 |
渲染变形器设置
首先,您需要在要应用 MeshCloth 的渲染器中设置渲染变形器。
RenderDeformer 具有使附加到 Renderer 的网格自由变形的功能。
我们以Unity-Chan模型为例来设置变形器。
在本例中,我想摆动 Unity-Chan 的裙子,因此我从模型中选择要摆动的渲染器。(红色范围)
以下三个渲染器应用渲染变形器。
将 Magica Render Deformer 连接到这三个渲染器。
打开每个渲染器的检查器并按 [Add Comonent] 按钮。
输入 [magica] 作为搜索键。将显示 MagicaCloth 组件列表。从那里附加 Magica Render Deformer。
与其他组件不同,Render Deformer 在附加时会自动创建数据,因此无需单独按[创建]按钮。
对所有渲染器完成此操作后,渲染变形器设置就完成了。
虚拟变形器设置
接下来,设置虚拟变形器以将多个渲染变形器控制为一个虚拟网格。
虚拟变形器具有组合渲染变形器以减少顶点并将高多边形网格转换为低多边形的功能。
虚拟网格被视为仅内存网格,没有 Unity Mesh 组件。
并且,由于MeshCloth是通过控制该虚拟变形器的顶点来执行的,因此可以通过减少顶点数量的布料模拟来控制高多边形的网格。
虚拟网格仅用于布料模拟,因此实际网格并没有减少。
首先,创建一个虚拟变形器对象。
在层次结构窗口中右键单击,然后从菜单中选择“Magica Virtual Deformer”,如下所示。
创建虚拟变形器对象。
VirtualDeformer 可以从检查器中设置。
首先,注册要组合的RenderDeformer。
注册渲染变形器列表中附加的[按钮] [衬衫] [uwagi] 的渲染变形器。
接下来,设置减少量。首先,我们创建数据,按一下[创建]按钮进行确认。
[创建]完成后查看场景视图。
虚拟网格的多边形形状用紫色线绘制。
(※通过线框显示很容易确认)
在初始状态下,几乎没有减少,因此虚拟网格也是高多边形。
如果放任不管,负载会很高,颗粒会太细,模拟不稳定。
调整以下两个参数进行减少。
姓名 | 描述 |
合并顶点距离 | 合并此距离内的顶点,忽略网格连通性。 |
合并三角形距离 | 考虑到网格连接,合并设置为该距离的范围内的顶点。 当您不想过多改变网格的形状时,这非常有效。 |
需要根据情况调整该值,同时观察要处理的网格和模拟。
这次,将[合并顶点距离]设置为0.0273(米)并创建它。
结果是以下虚拟网格,其顶点显着减少。
即使虚拟网格是低多边形,实际网格顶点也是通过反向蒙皮平滑插值的,因此在外观上几乎没有不适感。
将 MeshCloth 应用于该虚拟网格的顶点。
建议以下几点作为调整指南。
- 负载随着多边形数量的减少而减少
- 多边形数量越少,布料模拟越稳定
网布设置
之后就和BoneCloth的设定没有太大区别了。
将 MeshCloth 添加到您的角色中。
在层次结构窗口中右键单击,然后从菜单中选择“Magica Mesh Cloth”,如下所示。
创建一个 MeshCloth 对象。
检查员与 BoneCloth 几乎相同。
刚刚添加了[Traignel Bend]。
首先,设置VirtualDeformer进行操作。
接下来,您需要编辑虚拟网格中的哪些顶点被移动以及哪些顶点被固定。
按[起点选择]按钮进入编辑模式。
(*编辑模式请参考《BoneCloth入门指南》)
通过鼠标“左拖动”设置场景视图中的固定和移动粒子。
请注意,移动粒子始终需要连接固定粒子。
但是,由于此连接是自动执行的,因此如果将不移动的粒子标记为“固定”,则没有问题。
并将布料模拟不需要的粒子标记为无效。
这会将其从粒子计算中删除并减少负载。
Unity-Chan裙子的最终设置如下:
设置控制布料模拟行为的参数。
首先,让我们加载预设并轻松设置它。
按[参数]右侧的[预设]按钮。
从列表中选择[裙子]进行加载。
Preset按钮从v1.8.4开始实现,所以如果你没有Preset按钮,请按右侧的[Load]按钮,从MagicaCloth/Preset文件夹中加载[MeshCloth_Skirt.json]。
您现在已经设置了裙子的大部分参数。
(* 需要根据使用的模型形状进行调整。)
现在一系列的设置已经完成,点击【创建】按钮即可创建数据。
如果没有问题,MeshCloth 的状态图标将变为“白色”并显示信息。
让我们实际运行 Unity 并进行测试。
如果Unity-Chan的裙子与主体的运动(动画等)相结合进行物理控制,那就是成功的。
设置碰撞判断(COLLIDER)
裙子已经移动,但还没有命中检测,所以裙子会穿过身体。
与 BoneCloth 一样,设置 Collider 可以防止粒子进入。
Collider 的设置与 BoneCloth 完全相同,设置方法请参考“ BoneCloth 入门指南”。
Unity-Chan 最终设置了 Collider,如下所示。
如果 Collider 与其他布料组件重复也没有问题。
调整每个粒子的碰撞判断半径。
当您在层次结构中选择 MeshCloth 对象时,粒子在场景视图中显示为黄色(固定)和白色(移动)。
此时球体的大小将作为每个粒子的命中判断大小。
移动参数【半径】面板中半径曲线的滑块,可以调整击中判定球的大小。
* 如果小工具很难看到,请使用布料监视器并隐藏不必要的小工具以使其更容易看到
最后,不要忘记检查碰撞面板。
最后,不要忘记按[创建]按钮来更新数据。
让我们运行 Unity 并检查一下。
这一次,裙子应该是碰撞到了,但没有穿透脚。
MeshCloth 设置现已完成。
网格弹簧控制器
风启动指南
网格裙子
防渗透设置
XXX、实现思路+操作:
1、网格类型 骨骼类型 解算器 对应关系
网格类型解算器
对应
网格解算,选中 网格模型,并 为其 添加 组件 Magic Render Deformer.
创建 布料解算设置器 Magica Virtual Deformer ,
将带布料组件的网格,放入 解算设置器 中 ,为网格布料设置碰撞精度。
单击 Open Cloth Monitor 按钮可以看到网格碰撞精度情况。
骨骼类型解算器
碰撞类型创建
2、布料更新器创建:
从资源文件中,找到 物理解算管理器,拖拽到场景中。
网格解算类型+碰撞体 创建
骨骼解算类型+碰撞体 创建