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、设置不同布料软硬度
相关文章:
Magica Cloth 使用方法笔记
Magica Cloth 使用方法笔记 效果展示: 参考资料: 1、官方使用文档链接: インストールガイド – Magica Soft 2、鱼儿效果案例: https://www.patreon.com/posts/69459293 3、插件工具链接:版本() 目录:…...
c++ 学习之 强制类型转换运算符 const_cast
看例子怎么用 int main() {int a 1;int* p a;// 会发生报错// 如果学着 c的风格类型转换int* pp (int*)a;*pp 1; // 编译不报错,但是运行报错// const_castconst int n 5;const std::string s "lalal";// const cast 只针对指针,引用&…...
Ceph相关部署应用(博客)
这里写目录标题 Ceph相关部署应用一.存储基础1.单机存储设备2.商业存储解决方案3.分布式存储(软件定义的存储 SDS) 二.Ceph 简介1.Ceph2.Ceph 优势3.Ceph 架构4.Ceph 核心组件5.OSD 存储后端6.Ceph 数据的存储过程7.Ceph 版本发行生命周期8.Ceph 集群部署…...
基于 ceph-deploy 部署 Ceph 集群 超详细
Ceph part1 一、存储基础1.1 单机存储设备1.2 单机存储的问题1.3 单机存储问题的解决方案1.3.1 商业存储解决方案1.3.2 分布式存储(软件定义的存储 SDS) 二、分布式存储2.1 常见的分布式存储2.2 分布式存储的类型 三、Ceph概述3.1 Ceph简介3.2 Ceph 优势…...
做一个物联网的后台程序与数据库设计
数据库部分 先设计一个简单的数据库。表结构如下: sql语句如下: SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0;-- ---------------------------- -- Table structure for realtimedata -- ---------------------------- DROP TABLE IF EXISTS `realtimedata`...
Pytorch深度学习—FashionMNIST数据集训练
文章目录 FashionMNIST数据集需求库导入、数据迭代器生成设备选择样例图片展示日志写入评估—计数器模型构建训练函数整体代码训练过程日志 FashionMNIST数据集 FashionMNIST(时尚 MNIST)是一个用于图像分类的数据集,旨在替代传统的手写数字…...
uniapp 返回上一步携带参数
1. 下一步 // 返回上一页setTimeout(() > {let pages getCurrentPages();let prevPage pages[pages.length - 2];prevPage.$vm.schoolName this.formList;uni.navigateBack({delta: 1});}, 1000) 2. 返回上一步, 携带参数 // 获取下一步返回的数据onShow() {let pages …...
软件工程与计算总结(七)需求文档化与验证
目录 一.文档化的原因 二.需求文档基础 1.需求文档的交流对象 2.用例文档 3.软件需求规格说明文档 三.需求文档化要点 1.技术文档协作要点 2.需求书写要点 3.软件需求规格说明文档属性要点 四.评审软件需求规格说明文档 1.需求验证与确认 2.评审需求的注意事项 五…...
MySQL锁概述
数据库锁是一种机制,用于管理并发访问数据库的方式。当多个用户或事务同时访问数据库时,可能会导致数据不一致或冲突的问题。数据库锁的作用是确保数据的一致性和完整性,同时允许多个用户并发地访问数据库。 需要注意的是,加锁是消…...
【Ceph Block Device】块设备挂载使用
文章目录 前言创建pool创建user创建image列出image检索image信息调整image大小增加image大小减少image大小 删除image从pool中删除image从pool中“延迟删除”image从pool中移除“延迟删除的image” 恢复image恢复指定pool中延迟删除的image恢复并重命名image 映射块设备格式化i…...
Arbitrum Stylus 的工作原理
理解 Arbitrum 如何协调 EVM 和 WASM 的共存是至关重要的。这不仅仅是拥有两个独立的引擎;这是一种增强两者优势的协同关系。 Arbitrum 的独特架构允许 EVM 和 WASM 之间进行无缝和同步的操作,这要归功于其统一的状态、跨 VM 调用和兼容的经济模型。 用…...
nextjs构建服务端渲染,同时使用Material UI进行项目配置
一、创建一个next项目 使用create-next-app来启动一个新的Next.js应用,它会自动为你设置好一切 运行命令: npx create-next-applatest 执行结果如下: 启动项目: pnpm dev 执行结果: 启动成功! 二、安装Mater…...
Java 使用 Easyexcel 导出大量数据
读Excel | Easy Excel 1、 我遇到的数据量超级大,使用传统的POI方式来完成导入导出很明显会内存溢出,并且效率会非常低;2、 数据量大直接使用select * from tableName肯定不行,一下子查出来300w条数据肯定会很慢;3、 …...
高效防汛决策:山海鲸可视化系统助力城市防洪
随着全球气候的变化,自然灾害如洪水、台风等频发,防范洪水成为城市管理者和居民们亟待解决的重要问题。 洪水的威胁 洪水是自然界的杀手之一,不仅会造成大量的财产损失,还可能危害人们的生命安全。因此,预测、监测和有…...
易点云CFO向征:CFO不能只讲故事,价值创造才是核心
作者 | 曾响铃 文 | 响铃说 在今年6月初,也是易点云上市6天后,《巴伦周刊》正式启动评价“2023港美上市中国企业CFO精英100”的活动。 时间来到9月,评价揭秘,易点云CFO向征成功入选,被评为“年度最具成长潜力CFO”…...
【计算机网络】poll | epoll
文章目录 1. pollpoll函数参数解析代码解析PollServer代码 poll 特点 2. epoll认识接口epoll_createepoll_ctlepoll_wait 基本原理红黑树就绪队列 1. poll poll函数参数解析 输入 man poll poll的第一个参数是文件描述符 poll的第二个参数为 等待的多个文件描述符(fd)数字层面…...
C++设计模式_07_Bridge 桥模式
文章目录 1. 动机(Motivation)2. 代码演示Bridge 桥模式2.1 基于继承的常规思维处理2.2 基于组合关系的重构优化2.3 采用Bridge 桥模式的实现 3. 模式定义4. 结构(Structure)5. 要点总结 与上篇介绍的Decorator 装饰模式一样&…...
[JAVA版本] Websocket获取B站直播弹幕——基于直播开放平台
教程 B站直播间弹幕Websocket获取 — 哔哩哔哩直播开放平台 基于B站直播开放平台开放且未上架时,只能个人使用。 代码实现 1、相关依赖 fastjson2用于解析JSON字符串,可自行替换成别的框架。 hutool-core用于解压zip数据,可自行替换成别的…...
第一个 Python 程序
三、第一个 Python 程序 好了,说了那么多,现在我们可以来写一下第一个 Python 程序了。 一开始写 Python 程序,个人不太建议用专门的工具来写,不方便熟悉语法,所以这里我先用 Sublime Text 来写,后期可以…...
广告牌安全监测,保障户外广告牌的安全与稳定
随着城市的发展和现代化,广告牌已经成为城市风景的一部分。然而,随之而来的是广告牌安全问题,因为它们暴露在各种天气和环境条件下,一旦掉落,可能对人们的生命和财产造成威胁。广告牌安全监测有效的解决了这一问题&…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
