介绍

从最近流行的VTuber和VRM机型来看,
对裙子和头发进行物理计算的布料模拟正受到关注。
在摆动系统系统中,处理质量特别高的系统发布在 Unity AssetStore魔法布是。

然而,奇塔并没有任何关于魔法布的文章。
(在撰写本文时)(真的吗?)
【Unity】Magica Cloth最速入門【揺れ物】

所以,
我决定为奇塔写第一篇自称“魔法布介绍”的文章。
谢谢你。

由于Magica Cloth的介绍文章很多,
我会把Magica Cloth本身的细节和更详细的解释留给你,
在这篇文章中,实现“我无论如何都想摇裙子”的梦想
我将只解释最快的工作流程。

工作环境

Magica Cloth(或者更确切地说,摆动的物体)特别容易受到环境问题的影响,
请注意资产本身的版本和 Unity 版本。
如果 Unity 的主要版本匹配,它通常应该可以正常工作。

这次,我们将解释版本结构如下。

版本
统一 2022.1.6f1
魔法布 1.12.9
爆裂 1.7.4
工作 版本 0.70.0-preview.7
VRM相关 v0.104.2

准备

导入魔法布后

Magica Cloth 不包含在 Unity 项目默认值中
爆裂什么时候工作每个包都是必需的。
仅仅导入Magica应该会导致很多红色错误,所以
让我们(不分先后)从 PackageManager 中导入 Burst 和 Jobs。

由于Burst包已经开始正式提供,
在 PackageManager 中的 Packages 中选择 Unity Registry 后出现的列表中
应该有Burst。
使用搜索窗口缩小搜索范围是个好主意。 【Unity】Magica Cloth最速入門【揺れ物】

Jobs 包尚未正式提供(实验性),
它不会出现在包列表中。
从左上角的 + 按钮
在标有Add package from git URL 的框中
输入com.unity.jobs并下载。

【Unity】Magica Cloth最速入門【揺れ物】

【Unity】Magica Cloth最速入門【揺れ物】

准备使用 VRM

这次作为测试模型Nico Ni 固体陈采纳。
让我们导入各种 VRM 包来加载 VRM 模型。
如果您使用的是 FBX 等非 VRM 模型,则可以跳过此步骤。
从发布页面底部的 UPM 链接导入四个包。

【Unity】Magica Cloth最速入門【揺れ物】

导入 VRM 包后,
Nico Ni 固体陈进口

如果正确导入了 VRM 包
应生成带有AliciaSolid 的预制件。

【Unity】Magica Cloth最速入門【揺れ物】

主要工作

1.拆除现有的振动系统

VRM 模型有一个名为VRM Spring Bone 的摇摆函数作为默认函数,
这次它将被 MagicaCloth 替换,因此请移除所有内容。

要删除的组件是:
VRMSpringBone VRMSpringBoneColliderGroup ← 复制粘贴字符串进行场景搜索

最好在场景中使用搜索,这样您就不会忘记擦除组件。
【Unity】Magica Cloth最速入門【揺れ物】

2. 在场景中放置 MagicaPhysicsManager

将执行 Magica 的全局计算的 MagicaPhysicsManager 放置在场景中。
由于它已经在 Magica 侧转换为 Prefab,
MagicaPhysicsManager 位于Assets/MagicaCloth/Res/Prefab
把它留在场景中。

【Unity】Magica Cloth最速入門【揺れ物】

另外,由于与Magica官方文档中描述的资产路径不同,
(可能随着更新而改变)
我认为在项目视图中搜索MagicaPhysicsManager 会更快。

顺便MagicaPhysicsManager可以设置各种参数,
基本上,我认为默认状态很好。
如果您已经遇到性能问题,
来自官方文档物理管理器请参考页面
调整每个参数是个好主意。

【Unity】Magica Cloth最速入門【揺れ物】

3.布料设置

用 3d 模型表现摇摆的衣服和头发时,
摇晃已经有骨头的物体的案例什么时候
没有骨骼或网格顶点本身直接摇动的情况有。

在 MagicaCloth,
前者是骨布功能,后者是网布功能作为
两种模式都受支持。
还有其他功能如 BoneSpring 和 MeshSpring,
我会通过这个时间,因为它是一个高级内容。

3a.骨布

如上所述,BoneCloth 是一个用于摇动已经内置骨骼的网格的函数。
头发和一些裙子在造型的时候往往是用骨头搭建的,所以
让我们用这个。

设置摆动的根骨

首先,设置要摇晃的骨头。
这次要处理的 Niconi Solid-chan 的情况,大致可以分为
我想摇动 3 把锁 hair1_L hair1_R mituami1

【Unity】Magica Cloth最速入門【揺れ物】

一、从CreateOther到角色模型Root
添加Magica Bone Cloth 对象。

【Unity】Magica Cloth最速入門【揺れ物】

当我查看检查器时,我看到一个红色错误,
这是因为 Cloth 数据尚未构建,稍后将解析。

【Unity】Magica Cloth最速入門【揺れ物】

接下来,将要摇动的骨骼的根的引用传递给MagicaBoneCloth 组件的根列表。
要传递的对象将是前面确认的三个hair1_Lhair1_Rmituami1

【Unity】Magica Cloth最速入門【揺れ物】

摇哪根骨头

通过骨骼参考后,从下面的蓝色按钮Start Point Selection
将要固定的头发骨头设置为根部,将摆动的头发骨头设置为尖端。

如果您按下Start Point Selection,场景视图将更改为用于设置要摇动的骨骼的小工具显示。
红色和绿色球体显示在骨骼坐标中,您可以对其进行编辑。
但是,在默认状态下,有些情况下这些磅值显示得很小,所以
在检查器中从 PointSize 调整 Gizmo 显示的大小是个好主意。
【Unity】Magica Cloth最速入門【揺れ物】
【Unity】Magica Cloth最速入門【揺れ物】

在此模式下,显示的点分为 3 种类型,
目的是设置物理计算的行为。

红点固定根(毛囊),
绿点可移动刷毛,
灰点从物理计算中排除的完全无效点将会

上图中,与根骨骼对应的部分用红色标记,
跟随它的骨骼是绿色的,并且设置为可移动的。

Niconi Solid-chan这样比较简单的头发,
在 MagicaCloth 侧自动设置的默认类型设置没有问题。
相反,如果你有一个复杂的发型,比如半身,
您需要自己绘制要摇动或修复的骨骼。

从默认状态更改时,通过单击每个点
您可以更改该点的类型。
显示在检查器中
点击后Move PointFixed PointInvalid Point
单击场景上的每个点以绘制选定的类型。
详细操作请看下方视频。

用于嵌入 Qiita 文章皮c。山雀河这个 m/n X937jk

— Gonbee ? (@GONBEEE_project)2022 年 10 月 6 日

设置点类型后,从inspector
让我们按End Point Selection 保存并反映设置。

如何摇晃

设置点后,设置如何摇动这些骨骼的参数。
由于设置项目太多,每个参数都很复杂,
基本上,使用 Magica 提供的抖动预设是一个好主意。

根据官方文档,这个Preset按钮好像是从v1.8.4开始实现的,
视环境而定,可能不显示。
在这种情况下,您应该在右侧的Save/LoadMagicaCloth/Preset 文件夹中加载各种 Json 文件。

【Unity】Magica Cloth最速入門【揺れ物】

还有很多预设参数。
这一次,设置倒数第三个PonyHair

【Unity】Magica Cloth最速入門【揺れ物】

当各种参数发生变化时,使用检查器底部的Create按钮,
让我们创建并反映布料数据。
反射完成后,在最先显示红色错误的部分
Cloth 数据应出现并变为白色气球。
现在头发会根据物理计算摆动。

【Unity】Magica Cloth最速入門【揺れ物】

为 Niconi Solid-chan 指定任何 AnimatorController,
让我们运行 Unity 并检查头发的行为。

用于嵌入 Qiita 文章 2皮c。山雀河。这个 m/lR1Mj 是 90k

— Gonbee ? (@GONBEEE_project)2022 年 10 月 6 日

由于这次使用的是MagicaCloth提供的预设,
头发摇摆的样子没有“niconi solid-chan-likeness”之类的,
暂时,如果只是摇一摇,就可以通过这些步骤来实现。

3b. 网眼布

MeshCloth 与 BoneCloth 的不同之处在于它没有设置骨骼。
它是一种通过直接使网格变形来进行摇动的功能。
由于有些情况下没有为裙子等衣服设置骨头,
他们将使用 MeshCloth。
(至于尼康尼Solid-chan,裙子也是有骨头的,
这次我们使用MeshCloth进行说明)

官方文件根据 BoneCloth 的说法,不像
因为反映结果的物理计算计算和处理发生在网格的每个顶点
似乎计算负载往往高于 BoneCloth。
如果模型有骨骼,使用 BoneCloth 似乎可以减少负载。

变形器设置

首先,一个名为 RenderDeformer 的组件,用于使网格变形
你必须设置它。
选择要摇晃的网格物体(这次是裙子部分),
Add Component 添加到MagicaRenderDeformer

MagicaRenderDeformer 也有 Create 按钮,
由于数据在附加的同时自动获取和更新,
无需按单独的按钮。

【Unity】Magica Cloth最速入門【揺れ物】

虚拟变形器设置

用于将上述项目中设置的 RenderDeformer 计算为一个大网格
您需要设置虚拟变形器。
右键单击模型的根并从创建其他添加MagicaVitualDeformer
【Unity】Magica Cloth最速入門【揺れ物】

Render Deformer List 添加MagicaVitualDeformer
注册前面附加的MagicaRenderDeformer 的引用。
自动发现组件中相关的 RenderDeformer
有一个All Select 按钮,所以你应该使用它。

【Unity】Magica Cloth最速入門【揺れ物】

通过引用后,从组件底部的Create按钮
让我们创建网格数据进行计算。

虚拟变形器减少

默认状态下,计算网格的顶点数很大,计算负荷很高,所以
Reduction Setting 减少计算网格。
点击组件顶部的Open Cloth Monitor
计算网格在场景视图中显示为紫色。
让我们操作Reduction Setting,同时查看这个紫色网格的密度和顶点数。

做归约时要篡改的参数是
Merge Vertex DistanceMerge Triangle Distance
反复更改这些值→Create按钮,
让我们探索一下正确的参数设置。
这一次,Niconi Solid-chan 有以下设置。
您可以看到网格密度相当轻。

【Unity】Magica Cloth最速入門【揺れ物】

网格布设置

从这里开始,操作几乎与上面提到的 BoneCloth 相同。
首先,从角色模型 Root 中添加一个对象
添加Magica Mesh Cloth
【Unity】Magica Cloth最速入門【揺れ物】

MagicaMeshCloth 组件的顶部有一个框来传递Virtual Deformer 引用,所以
让我们传递我们之前创建的MagicaVirtualDeformer 引用。
点击Start Point Selection
切换到与设置 BoneCloth 时相同的显示,
您将能够键入要摇动或修复的顶点。
但是,与 BoneCloth 不同的是,类型不会自动选择
我希望所有点都显示为无效状态。

这很难,但让我们稳步绘制每个点。

【Unity】Magica Cloth最速入門【揺れ物】

由于您可以通过拖动一次绘制跟踪的部分,
使用场景视图的平面投影进行绘制是个好主意。

【Unity】Magica Cloth最速入門【揺れ物】

点画完之后
在组件底部设置Parameters,但是
在这里,我们也将像以前一样使用Magica官方提供的预设。
这次我们将使用预设Skirt 用于裙子部分。

【Unity】Magica Cloth最速入門【揺れ物】

设置好参数后,点击组件底部的Create按钮。
让我们保存并反映布料信息。

【Unity】Magica Cloth最速入門【揺れ物】

运行 Unity 时,根据物理计算可以看到裙子在晃动。
但是,与 BoneCloth 一样,没有“niconi solid-chan”之类的东西,所以
如果要追求角色的属性和人性,就不得不摆弄各种参数的设置。
另外,如果你仔细看视频,你会发现
由于有大腿和裤子穿透裙子的地方,
接下来,我们将设置 Collider 来避免这种穿透。

在 Qiita 文章中嵌入的 3 个中断皮c。山雀河Kom/Fe KYgXP1mk

— Gonbee ? (@GONBEEE_project)2022 年 10 月 6 日

4. 对撞机设置

上身对撞机的布置

这里设置的 Collider 是 BoneCloth 和 MeshCloth 都可以通用的操作。
头发特别容易渗透到肩膀、躯干和上臂周围,
裙子很容易穿透臀部和大腿周围。

碰撞器被添加为上面列出的每个部分的骨骼的子对象
绑定到角色。
安装镜像与普通 SphereCollider 和 CapsuleCollider 相同。

MagicaCloth 提供了以下三种类型的 Collider。

对撞机名称 特征
魔法球体对撞机 领域。计算简单快速。
Magica 胶囊对撞机 胶囊。您可以分别调整顶部和底部球体的大小。
魔法飞机对撞机 飞机。设置在地面、墙壁等处。

例如上臂的MagicaCapsuleCollider
对于躯干和臀部,将使用MagicaSphereCollider
对于宽肩款,可以在背面使用MagicaPlaneCollider

首先,让设置在 BoneCloth 上的头发的晃动不会穿透身体,
我们将在身体和手臂周围设置各种碰撞器。

在开头添加MagicaCapsuleColliderLeftArm RightArm
【Unity】Magica Cloth最速入門【揺れ物】

【Unity】Magica Cloth最速入門【揺れ物】

加完之后马上就是上图这样一个巨大的Collider,所以
MagicaCapsuleCollider通过操作组件的各个参数,
让我们将其更改为适合您上臂的适当值。
编辑时,将 Scene 视图显示设置为 Wireframe 可以更容易地了解 Collider 的大小。

这一次,左臂上的 Collider 就是用这些参数设置的。
在右臂侧做同样的事情。

【Unity】Magica Cloth最速入門【揺れ物】

右臂侧的参数如下。
这是一些琐事,但来自 Inspector 视图中组件右上角的 3 点按钮,Copy Component
如果Paste Component Value 应用于对面的手臂组件
您可以轻松地传输一次设置的值。
当然,参数会被镜像,所以你需要修改它们,
或许可以省去比较左右和输入数值的麻烦。

【Unity】Magica Cloth最速入門【揺れ物】

接下来,将MagicaSphereCollider 设置为正文部分。
这次我们将使用一个球体,
根据模型的不同,胶囊或平面对撞机也可以很好地工作。
让我们通过观察模型的身体形状来判断。

身体碰撞器在颈骨对应的部分上方一层(Spine3这次)
放置时,它通常会理想地移动。

【Unity】Magica Cloth最速入門【揺れ物】

这一次,我将球体排列如下,
如果头发也渗透到腰部,最好添加更多的碰撞器。
但是,如果安装超过 2 个MagicaSphereCollider
一种方法是将其更改为MagicaCapsuleCollider 并将其放在一起。
请执行此区域并在检查情况时对其进行更改。

【Unity】Magica Cloth最速入門【揺れ物】

下半身碰撞器的放置

MeshCloth 的下半身 Collider 与上半身操作类似,
我们将在大腿和臀部周围安装 Capsule 和 SphereCollider。

没有问题,因为我之前把它设置在T姿势的手臂上,
MagicaCapsuleCollider 默认水平放置碰撞器。
在脚的情况下,有必要将它们垂直放置,所以
将下图中圈出的命中判断的轴方向Axis修改为合适的值。 (这次是)

【Unity】Magica Cloth最速入門【揺れ物】

将每个参数的值更改为之前为手臂设置的适当数字。
足部对撞机具有以下值。

【Unity】Magica Cloth最速入門【揺れ物】

这里有一些琐事,
“加厚脚底”和“加厚膝盖侧”两个选项是
必须为每个模型选择。
比方说niconi solid-chan的话,裙子是极短的,
让根部变粗,膝盖侧变薄和自然的行为。
相反,在模特穿着长裙的情况下,
使底部变薄并加厚膝盖(或者更确切地说,整个脚趾)干扰少
有些案例看起来很自然。
让我们根据每个模型灵活地改变这里的命中判断大小的设置。

此外,虽然是琐事,
编辑每个 Collider 的大小时
使用 Scene 视图的平行投影可以更轻松地匹配身体各部分的大小。
由于可以在每个 XYZ 方向上从正面和背面检查 Gizmo 的平行投影,
从各个角度比较 Collider 大小和 body 大小是个好主意。

提供的资料:大哥

【Unity】Magica Cloth最速入門【揺れ物】

对撞机通过引用传递

为每个部分设置 Collider 后,
将模型中存在的 Collider 的引用分别传递给 BoneCloth 和 MeshCloth。
在每个组件中查找Collider List
在其下方,有一个 All Select 按钮,它会自动从模型中获取所有 Collider 引用,所以
让我们点击它来获得对 Collider 的引用。

【Unity】Magica Cloth最速入門【揺れ物】

这样就完成了通过引用传递 Collider,
有些组合永远不会冲突。
比如有 BoneCloth 的头发基本不会和足部碰撞器发生碰撞,
带有 MeshCloth 的裙子不会与上身碰撞器发生碰撞。
为了减少处理负荷,
不能与每个组件碰撞的组合碰撞器是
我们建议您删除它。

但是,尼康尼固体酱的情况下,她的头发很长,可能会进入腿部碰撞器。
反之,由于裙子不影响上半身,最好去掉手臂周围的 Collider。
(倒倒立动画时除外)

【Unity】Magica Cloth最速入門【揺れ物】

设置碰撞区域

通过 Collider 参考后,
我们将检查碰撞器与头发和裙子的碰撞程度的设置。
由于它是 BoneCloth 和 MeshCloth 完全通用的操作,
我将仅在 BoneCloth 方面进行解释。

下图显示了要做什么
Radius Collider Collision 2 个地方。
如果Collider Collision 有复选标记,则可以。
(在您通过命中检测参考时,应自动检查)

之前安装 Collider 的时候,我根据身体的各个部位调整了 Collider 的大小,
这个Radius 参数用于调整头发和裙子一侧的碰撞范围。
点击组件顶部的Open Cloth Monitor
我认为如果在场景视图中显示参数状态的同时进行编辑,会更容易理解。

【Unity】Magica Cloth最速入門【揺れ物】

Radius中的参数详情如下。

参数 内容
开始 骨骼根侧的大小。停用下面的末端会将此值应用于所有骨骼。
结尾 骨骼的尖端大小。与MagicaCapsuleColliderStart Radius/End Radius 的感觉相同。
曲线 在上述两个数字之间插入什么样的曲线。

我认为您可以通过实际摆弄它们来感受这些参数。
由于头发的尖端更大且更容易移动,我认为将 hitbox 设置得稍大一些会更好。

【Unity】Magica Cloth最速入門【揺れ物】

最终申请

通过引用传递 Collider 并在 Cloth 侧设置碰撞范围后
按组件底部的Create 按钮以
让我们保存并反映到目前为止的编辑状态。

运行 Unity 时,头发和裙子不应再穿透身体。

为奇塔皮c。山雀河这 m/s W 或 X 或 C w

— Gonbee ? (@GONBEEE_project)2022 年 10 月 7 日

如果 Collider 尺寸太大,裙子跳起来,
如果臀部周围区域穿透
返回几步并重复 Collider size change / Cloth side size change
寻找合适的调味料。

完全的! & 综上所述

我好累! !
如果您完全复制到目前为止的程序并设置 MagicaCloth
您可能必须找到一种方法来操作它。

我认为在设置摆动物体时,碰撞器周围的区域以防止其穿透身体尤为重要。
Collider 类型、安装层次、Collider 本身的大小等。
根据您自己的模型尝试使用各种参数组合进行反复试验。

这次我没碰它,因为它很复杂,
通过调整 Cloth 组件的每个参数,可以改变它如何摆动的特性。
我想你也可以表达角色的属性,头发的硬度,来的衣服的材质等等。
当然,这需要时间来学习,但是
可以让人物更有“那个人物”的调味料。
正如我开篇写的,VTuber和VRM模型是近几年流行的,
请借此机会魔法布学习并获得我的头像怎么样?

感谢您阅读到最后。
如果有不明白的地方或者文章有问题,
评论区贡比请随时与我联系。


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308628450.html

相关文章:

  • 2022-12-23
  • 2022-02-13
  • 2021-05-14
  • 2021-08-29
  • 2021-06-20
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-06-06
  • 2022-01-16
  • 2022-12-23
  • 2021-05-28
  • 2021-12-01
相关资源
相似解决方案