unity36——原神等手游常用的物理bone(弹簧)裙摆,与Cloth(布料)裙摆插件 Magica Cloth 使用教程(一)

本文主要是介绍unity36——原神等手游常用的物理bone(弹簧)裙摆,与Cloth(布料)裙摆插件 Magica Cloth 使用教程(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
目前我们手游开发,经常会遇到头发,双马尾,长裙,飘带等。以前我们都是在三维软件中制作骨骼后,自己手动K针。这样做有一些弊端,时间长,并且K帧的飘带效果没法随着游戏中角色的移动,旋转等动作实时发生动画位移效果。因此,下面将介绍MagicaCloth的两种用法。
其中一种是需要绑定骨骼蒙皮,但是不需要K帧。bone cloth(原理,骨骼弹簧物理计算)计算量小,适用于手机,同屏20个角色

其中另一种是不需要骨骼绑定,直接导出mesh到unity中进行物理计算。clothing(布料解算器物理计算)计算量大。适用于PC或者手机换装界面,同屏不超过2个角色。

特别说明,不管是哪一种,导出FBX的时候,你想要计算的骨骼都不能K帧,不然会影响运动计算。

下面先上干货,这个视频是Bone cloth计算出来的动态效果。

物理弹簧模拟测试示意

首先我们先为插件安装一下环境。在这里我用的是URP项目2021版本。

在这里插入图片描述
在这里插入图片描述
1Package Manager 选中Reagistry 选择Burst
如上图,这是需要安装的第一个环境,如果版本内已经有了,直接跳过即可。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2如上图,击Add package 输入com.unity.jobs
安装jobs 这个是插件需要的第二个运行环境。

在这里插入图片描述
3如上图。这两个环境安装好后,就可以安装正式插件了。插件包直接用我准备好的就可以。magica cloth 2.4版本。直接丢入到引擎中,没有报错即可使用。

在这里插入图片描述在这里插入图片描述

4如上图,接下来还需要一个显示骨骼的辅助插件、方便调试。
Animation Rigging 此插件unity自带的插件工具,直接在package manager窗口中搜索安装即可。此插件能显示unity中的骨骼并且直接鼠标选中,方便咱们后面设置局部物理碰撞。

在这里插入图片描述
5 所有插件安装好后,导入一个你需要的,模型,这里以头发为例,我需要这个双马尾跟随身体做物理动画运算。那么点击菜单中的Animation Rigging菜单,选中你的模型,再点击最后一项Renderer swtup,你会得到骨骼映射。
在这里插入图片描述
右侧可以调整骨骼映射的颜色还有参数,鼠标单击左侧蓝色任意骨骼,就能直接跳转到对应骨骼,让我们在unity中操作骨骼更为方便(有兴趣的小伙伴也可以直接用这个插件骨骼K一些动画。)

在这里插入图片描述在这里插入图片描述

6选中你需要动的头发模型预制体,为他添加magica cloth插件命令。
添加插件后,你会得到上图右侧的菜单栏。鼠标点击两根双马尾的蓝色骨骼根节点映射。拖动到右边菜单Root Bones中。并且把插件的模式选择为bone cloth模式(这就代表启用骨骼弹簧运算)

当你设置好后,左图的骨骼会变成根节点为红色圆球,其他为绿色。这说明红色只会做旋转而不会随着物理计算位移。绿色计算位移加旋转。当然你也可以点击右侧小铅笔图标,绘制你需要的颜色点。

在这里插入图片描述7如上图,右侧菜单栏Preset有插件内置好的所有动态计算预设,懒得手动调节的朋友, 可以直接选择红色个方框中自己喜欢的对应预设就可以,有裙子、飘带、头发、刘海等。如果你觉得内置的不够精致,也可以点击左侧绿色方框中,打开菜单,调节更精细的滑块配置。
调整好之后点击运行,就可以看到效果。

特别说明:下面是干货,有些同学,会发现,头发在运动的过程中会出现穿模,也就是头发进入身体,或者其他衣物中,这是因为你没给身体加上对应的碰撞。下面讲解为身体设置碰撞,来解决穿模问题。老版本就是因为这块做的不好,所以导致很多人不用,但是现在的版本已经可以解决任何穿模问题,只要你耐心调整碰撞形状。
在这里插入图片描述
8如上图,如果我们不给身体设置碰撞,运行后头发会因为重力,直接垂直到绿色位置,插进身体里。因此我们需要给胸部骨骼上,创建一个碰撞。注意,一定要把碰撞设置在骨骼上,不然不生效。
在这里插入图片描述
如上图,找到你身体胸前的骨骼,右键选择红色方块内的各种碰撞形态,第一种为球形,第二种为圆柱体,第三种是平面,第四种、跟第五种、是任意形态设置。朋友们可以自行点击参数,调节滑块感受。
目前这个案例,因为胸前是一个斜面,我们需要的是双马尾搭在胸前受到重力作用。因此我选择了一个斜面碰撞体,如下图在这里插入图片描述
在这里插入图片描述
9设置好碰撞体后,点击你头发预制体中的插件,手动把刚刚设置的与i肢体,拖动到右侧菜单Collider collion菜单下的Collider List下面,这样头发就会受到此处碰撞的影响。

下面再次点击运行,你就会得到文章上面参考视频的效果,头发可以随着你身体各种移动方式来进行物理运动计算。

之后我们可以举一反三,为裙子,飘带、等其他部位,也设置骨骼物理计算。

本帖为初贴,只讲解了插件中,骨骼弹簧运算,适用于手机端。
下个帖子,将介绍插件中的第二个选项,布料解算。布料的结算会更加丝滑。并且不用蒙皮绑定,不用骨骼绑定。但是计算量比较大,也比较复杂,我们下期见。

这篇关于unity36——原神等手游常用的物理bone(弹簧)裙摆,与Cloth(布料)裙摆插件 Magica Cloth 使用教程(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/644924

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Redis 基本数据类型和使用详解

《Redis基本数据类型和使用详解》String是Redis最基本的数据类型,一个键对应一个值,它的功能十分强大,可以存储字符串、整数、浮点数等多种数据格式,本文给大家介绍Redis基本数据类型和... 目录一、Redis 入门介绍二、Redis 的五大基本数据类型2.1 String 类型2.2 Hash

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三