Magica Cloth 使用方法笔记

                                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、布料更新器创建:

                从资源文件中,找到 物理解算管理器,拖拽到场景中。

        

        

        

                网格解算类型+碰撞体 创建

                骨骼解算类型+碰撞体 创建

        3、设置不同布料软硬度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/103564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

理解线程池源码 【C++】面试高频考点

理解线程池 C 文章目录 理解线程池 C程序源码知识点emplace_back 和 push_back有什么区别?互斥锁 mutexcondition_variablestd::move()函数bind()函数join 函数 线程池的原理就是管理一个任务队列和一个工作线程队列。 工作线程不断的从任务队列取任务,然…

区块链在游戏行业的应用

区块链技术在游戏行业有许多潜在的应用,它可以改变游戏开发、发行和玩家交互的方式。以下是区块链技术在游戏行业的一些主要应用,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.游戏资产…

云梦富盈:智慧投资引领未来市场

随着2023年的到来,全球股市呈现出令人关注的趋势和挑战。投资者纷纷寻求智慧投资,以更好地把握市场动向。云梦富盈,作为一支备受瞩目的投资团队,正在洞悉并解析2023年全球股市的趋势,为投资者提供智慧投资的护航。 20…

[Error]在Swift项目Build Settings的Preprocessor Macros中定义的宏无效的问题

问题 如图,在Build Settings -> Preprocessor Macros中添加了ISADEMO1。但在代码中判断无效,还是会输出“isn’t ADemo” #if ISADEMOprint("is ADemo") #elseprint("isnt ADemo") #endif解决 如图,要让Preproces…

学习编程-先改变心态

编程失败的天才 林一和我很久以前就认识了——我从五年级就认识他了。他是班上最聪明的孩子。如果每个人在家庭作业或考试准备方面需要帮助,他们都会去那里。 有趣的是,林一不是那种连续学习几个小时的孩子。 他的聪明才智似乎与生俱来,几乎毫…

机器学习(21)---召回率(recall)、精度(precision)和准确率(accuracy)

文章目录 1. 分布不平衡的数据集2. TP、TN 、FP 、FN3. 混淆矩阵4. 各自的计算公式5. 例题应用 1. 分布不平衡的数据集 1. 精度(precision)和召回率(recall)是衡量机器学习模型性能的重要指标,特别是数据集分布不平衡的…

Maven系列第3篇:详解maven解决依赖问题

maven系列目标:从入门开始开始掌握一个高级开发所需要的maven技能。 这是maven系列第3篇。 我们先来回顾一下什么是maven? maven是apache软件基金会组织维护的一款自动化构件工具,专注服务于java平台的项目构件和依赖管理。 本文主要内容…

使用任务定时执行软件的定时关机功能,控制电脑可用时间段

目录 定时关机功能可以设置有效的时间段 控制电脑可用时间段的意义 定时执行软件介绍 - 定时执行专家 定时关机设置方法 不可用时间段设置方法 注意事项 总结 在现代社会,电脑已经成为人们生活和工作中不可或缺的一部分。但是,长时间使用电脑也会对…

Torch生成类激活图CAM

import torch from torch.nn import functional as F from torchvision import models, transforms from PIL import Image import os os.environ[KMP_DUPLICATE_LIB_OK]TRUE# 加载经过训练的 ResNet 模型 model models.resnet50(pretrainedTrue) model.eval()# 载入图像并进行…

【AI】深度学习——前馈神经网络——卷积神经网络

文章目录 1.2 卷积神经网络1.2.1 卷积一维卷积近似微分低通滤波器/高通滤波器卷积变种 二维卷积卷积的核心就是翻转相乘卷积应用于图像处理 互相关互相关代替卷积 卷积与互相关的交换性 1.2.2 卷积神经网络卷积代替全连接卷积层特征映射卷积层结构参数数量 汇聚层(池化层)汇聚层…

Chrome 118 版本中的新功能

Google Chrome 的最新版本V118正式版 2023/10/10 发布,以下是新版本中的相关新功能供参考。 本文翻译自 New in Chrome 118,作者: Adriana Jara, 略有删改。 以下是主要内容: 使用scope css规则在组件中指定特定样式。…

Mybatis 实现简单增删改查

目录 前言 一、Mybatis是什么 二、配置Mybatis环境 三、创建数据库和表 四、添加业务代码 4.1、添加实体类 4.2、添加mapper接口 4.3、添加实现接口方法的xml文件 五、简单的增删改查操作及单元测试 5.1、单元测试 单元测试具体步骤: 单元测试如何才能不污…

好莱坞编剧大罢工终于结束;与OpenAI创始人共进早餐;使用DALL-E 3制作绘本分享;生成式AI的基础设施架构 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🔥 好莱坞编剧大罢工终于结束:简单说就是AI妥协了 https://www.wgacontract2023.org/the-campaign/summary-of-the-2023-wga-…

【Python爬虫 js渲染思路一】

Python爬虫 破解js渲染思路一 当我们在谈论网页js渲染的时候,我们在谈论什么 js渲染网页,从某种程度来说,是指单纯的http请求,返回的文本数据,与我们在浏览器看到的内容,相距甚远.其可包括为以下几点&…

C++的高手之旅

要学习C并成为C大佬,以下是一些建议: 掌握C基础知识:C是一种面向对象的编程语言,它包含了C语言的大部分语法和特性。因此,学习C之前,建议先掌握C语言的基础知识,包括数据类型、控制流、指针、内…

微调Yolov8动物姿势估计模型

本文主要以狗的姿势估计为例,展示如何对当下流行的YOLOv8姿势模型进行Fine-tuning,并附录完整代码。 动物姿势估计是计算机视觉领域的一个研究方向,它是人工智能的一个子领域,专注于自动检测和分析图像或视频中动物的姿势和位置。其目标是确定一个或多个动物身体部位的空间…

msvcr120.dll丢失怎样修复?总结msvcr120.dll丢失的5修复方法

在使用计算机的过程中,我们常常会遇到各种问题,其中之一就是“计算机丢失msvcr120.dll丢失的困扰”。这个问题可能对一些人来说并不陌生,但是对于初次遇到这个问题的人来说,可能会感到无所适从。因此,小编将详细探讨这…

免费开源的非标项目型制造BOM一键导入方案介绍

非标项目型制造,每一个订单都会引入很多新料号、新BoM、新工艺路线。实施ERP/MES系统,实现生产管理数字化,第一步就是要导入这些料号、BoM和工艺。项目型制造,大多数订单只生产一次。但在ERP/MES系统中,订单的料号、Bo…

【Unity】【VR】如何让Distance Grab抓取物品时限制物品的Rotation

【背景】 遇到这样的场景,希望抓取Canvas时,Canvas不会沿Z轴旋转。 【问题】 发现Freeze Canvas的Rigid Body没有用。 【分析】 应该是RigidBody的限制仅在物理互动下生效,抓取可能不属于物理互动(比如碰撞),所以不生效。 【思路】 还是得写脚本挂载在Interacta…

存档&改造【06】Apex-Fancy-Tree-Select花式树的使用误删页数据还原(根据时间节点导出导入)

之前一直想实现厂区-区域-产线之间的级联选取,于是导入插件Apex-Fancy-Tree-Select花式树 存档&改造【03】Apex-Fancy-Tree-Select花式树的导入-CSDN博客 现在则是在Oracle Apex中的应用 花式书级联列表展示厂区-区域-产线 想要实现的效果 由厂区>…