MeshAnimation在物体的顶点比较多的情况下,悲剧是显而可见的,我一个一个的点选顶点肯定得累死,而且对于形态的调控不是很方便,应该说是很麻烦,要知道,骨骼动画因为有了骨骼以及蒙皮信息而有了灵魂,所以变形动画也该有适用于他自己的骨骼才对。

所以,借用Unity本身的父子节点机制,我大概将变形动画的骨架模拟了一便,但之所以称之为变形动画,也叫顶点动画,就是因为他的形态不可控,这就是不同于骨骼动画的本质,为其指定骨骼的话其实倒显得有些不合理了。

不过这里只是模拟以及更方便变形动画的调节,类似于骨骼动画那精髓般的属性——顶点权重,就不在我的考虑范围中了。

当然,目前的限制还是太多了,由于可变性太强以至于骨骼的形状会在调节动画期间在每一帧之间都会被打乱,所以事先需要保存骨骼的原型,在调节动画期间就不用太在意骨骼的形状了,就把他当做更方便的调节动画的工具吧。



第一步:选中任意物体,添加MeshAnimation(Componemt/变形动画/MeshAnimation






第二步:新建骨架

Skeleton Asset为当前的骨架原型,可由外部导入(当前骨架为空时导入生效,“新建骨架”按钮可见便证明当前骨架为空)


点击新建骨架,会创建一个新的骨架,并为其创建核心骨骼(RootBone),核心骨骼只能有一条,其余所有骨骼都是其子骨骼



第三步:创建子骨骼

在各块子骨骼后面点击AddSubBone,输入骨骼名称,再点击Sure可为其创建子骨骼,点击Delete可删除此骨骼及其包含的所有子骨骼(核心骨骼不能删除)

暗红色标记的骨骼为当前准备为其添加子骨骼的骨骼,点击骨骼名称左面的箭头按钮可收起此骨骼的所有子骨骼,点击骨骼名称可快速在场景中定位该骨骼的操控节点

一条骨骼显示在场景中就是一个黄色圆形加一根黄线



第四步:创建整个骨架

按照自己的想法随意添加骨骼,并在场景中调节骨骼的位置(点击骨骼名称可快速在场景中定位该骨骼的操控节点)

大概就调节成了这样一个形状,一个三只脚两只手的东西



第五步:快速蒙皮

其实蒙皮就是将顶点与骨骼建立变换关系,当然unity的父子关系本就是一种很好的变换关系,只是不能包含权重。

这里我们可以直接点击“保存为原型骨架”将骨骼信息保存出去,不带有蒙皮信息更好,每次在调节动画的时候重新蒙皮。

我们选中任意顶点,可以直接将其关联到某某骨骼,也就是蒙皮。

当然顶点太多的话,这样做又得累死,所以我们点击快速蒙皮,弹出一个快速蒙皮操作窗口,我们选中场景中任意多的顶点,再点击快速蒙皮,选择目标骨骼,那么选中的所有顶点都会被关联到该骨骼上。



第六步:保存原型骨架

将场景中的骨架形状调节到你觉得可以作为初始的状态(比如人形骨骼动画里大部分模型的初始状态都是站立并两手平伸),设置好每个顶点的蒙皮信息,然后就可以点击“保存为原型骨架”,他将作为一个Asset资源文件存在本地,相同网格间可以共用,在还未新建骨架以前,为Skeleton Asset属性选择此原型骨架文件便可以导入其中的骨骼和蒙皮等所有信息,不过切记不要轻易的保存原型,因为由于后期的调动骨骼会乱,所以原型应当是作为最初始时的状态,除非后续有改动整个骨架。

为了使骨架的位置正常,请在创建骨架的时候和添加动画帧的时候都将目标物体的位置至于世界坐标(0,0,0),当然一个你认为记得住的位置也行,目的是为了保持两者的位置相等(创建骨架时,添加动画帧时)。



第七步:调节动画

然后我们可以开始调节动画了,操作方式跟以前是一样的,只不过这次我们只用调节每块骨骼就可以了,骨骼可以随意拉伸,随意旋转(这就是为什么要保存原型骨骼的原因),我们可以发现调节动画好像是要方便了那么一点点......



第八步:导出动画,并用MeshAnimationPlayer播放

导出的动画同样可以用于MeshAnimator状态机来控制,只不过为了方便的话还是MeshAnimationPlayer更直接,我们勾选启动播放,然后运行程序。

DLL版插件链接:http://download.csdn.net/detail/qq992817263/9659011

源码请看第一篇

-----by MeshEditor

Unity插件 - MeshEditor(七)变形动画骨骼及蒙皮的更多相关文章

  1. Unity插件 - MeshEditor(五) 网格顶点动画(变形动画)

    源码已上传至github,并持续更新,链接请看底部.(本帖跟随github持续更新) 网格顶点动画(变形动画)是针对于物体的形状可以随意变换并记录为关键帧的动画,虽然模型的顶点数据还是应该交给GPU绘 ...

  2. Unity插件 - MeshEditor(六) 变形动画状态机

    变形动画状态机--MeshAnimator,是针对MeshAnimation的状态管理器,有大量类似Unity animator的功能,但MeshAnimator操作会更加简便,更加直观,居家旅(zh ...

  3. Unity插件 - MeshEditor(三) 面片破碎&网格破碎

    网上的unity破碎插件很多,不过想着可以以自己的方式实现也不失为一种乐趣,虽然整体的表现性上显得有些差,但也并不会影响最终的效果,接下来我大致讲解一下破碎一个物体的流程,因为用到了协程计算碎片的原因 ...

  4. Unity插件 - MeshEditor(二) 模型网格编辑器(高级)

    源码已上传至github,并持续更新,链接请看底部.(本帖跟随github持续更新) 继先前的一篇MeshEditor之后,MeshEditor第二版发布,这次在先前的基础上加入了为模型新增顶点以及删 ...

  5. Unity插件 - MeshEditor(一) 3D线段作画 & 模型网格编辑器

    之前,因为工作需要,项目中需要动态生成很多的电线,不能事先让模型做好,更不能用LineRenderer之类的,因为画出来没有3D的效果,最主要是拐角的时候还容易破面,而我们要的是真真实实纯3D的电线, ...

  6. Unity插件 - MeshEditor(八)模型镜像特效

    将静态模型(带MeshFilter)按指定轴向.指定距离克隆一个镜像物体出来,思路很简单,将模型的顶点坐标按指定轴取反,并累加上设定的距离值,然后就完毕了!不过,因为镜像体的顶点镜像于之前模型的顶点, ...

  7. Unity插件 - MeshEditor(四) 模型融化特效

    现在的电影里有很多妖魔在死亡后身体逐渐融化并下滑最后化为一滩黑水的情景,本次出于兴趣大致研究了这个效果,原理是控制模型的顶点向一个方向坍塌,坍塌到最低点时再根据法线方向扩散形成黑水状. 第一步: 添加 ...

  8. Unity插件之NGUI学习(4)—— 创建UI2DSprite动画

    创建一个新的Scene.并按 Unity插件之NGUI学习(2)创建UI Root,并在UI Root的Camera下创建一个Panel. 然后在选中Panel,在菜单中选择NGUI->Crea ...

  9. 【Unity 3D】使用 2DToolkit 插件 制作2D精灵动画

    话说博客传图也太麻烦了吧,一个一个文件一个一个传....为什么不能直接粘贴了,自动上传呢... 刚直接粘贴了,结果一张图没有,又重新截一次图,在传了一次...真是太**了 好了,吐槽完了,开始博客吧 ...

随机推荐

  1. HDU 5909 Tree Cutting

    传送门 题意: 有一棵n个点的无根树,节点依次编号为1到n,其中节点i的权值为vi, 定义一棵树的价值为它所有点的权值的异或和. 现在对于每个[0,m)的整数k,请统计有多少T的非空连通子树的价值等于 ...

  2. [AH/HNOI2017]抛硬币

    题目描述 小 A 和小 B 是一对好朋友,他们经常一起愉快的玩耍.最近小 B 沉迷于**师手游,天天刷本,根本无心搞学习.但是已经入坑了几个月,却一次都没有抽到 SSR,让他非常怀疑人生.勤勉的小 A ...

  3. [USACO14DEC]驮运Piggy Back

    题目描述 Bessie 和 Elsie在不同的区域放牧,他们希望花费最小的能量返回谷仓.从一个区域走到一个相连区域,Bessie要花费B单位的能量,Elsie要花费E单位的能量. 如果某次他们两走到同 ...

  4. hdu 4283 区间dp

    You Are the One Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  5. [Project] Simulate HTTP Post Request to obtain data from Web Page by using Python Scrapy Framework

    1. Background Though it's always difficult to give child a perfect name, parent never give up trying ...

  6. java9学习之模块化

    截止到目前JDK的版本已经更新到10了,虽然java9的生命周期才半年,但是我认为这个版本带来的变革是不可磨灭的,它是第一次深层次的针对架构以及依赖上的革新.下面我们就来学习一下. 一.模块化项目构建 ...

  7. Python中模块之sys的功能介绍

    sys模块的功能介绍 1. sys的变量 argv 命令行参数 方法:sys.argv 返回值:list 例如:test1.py文件中有两句语句1.import sys 2.print(sys.arg ...

  8. PowerBI 第九篇:修改查询

    在PowerBI的查询编辑器中,用户可以使用M语言修改Query,或修改Query字段的类型,或向Query中添加数据列(Column),对Query进行修改会导致PowerBI相应地更新数据模型(D ...

  9. 初体验GCP,【福利300$试用金】

    1.https://cloud.google.com/free/ ,填写相应信息.需要信用卡,预扣1美元. 2.一波信息填写,成功. 3.激活终端 4.创建一个Python项目,选择部署地点. 5.部 ...

  10. Mysql锁机制--概念、分类及基础命令

    Mysql 系列文章主页 =============== 1 概念 在 Java 程序中,当多线程并发访问某个资源的时候,如果有非线程安全的操作,那么需要通过加锁来保护之.同理,在 Mysql 中,如 ...