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. FZU 2158

    在密室逃脱游戏中,大家被困在一个密室中,为了逃出密室,需要找到正确的数字密码,于是大家分头行动,分别找到了密码的子序列,而后大家将得到的线索集中整理分析,大家想知道密码最少是多少位.  Input 第 ...

  2. 例10-4 uva10791(唯一分解)

    题意:求最小公倍数为n的数的和的最小值. 如12:(3,4),(2,6),(1,12)最小为7 要想a1,a2,a3……an的和最小,要保证他们两两互质,只要存在不互质的两个数,就一定可以近一步优化 ...

  3. [BZOJ]1076 奖励关(SCOI2008)

    终于又一次迎来了一道期望DP题,按照约定,小C把它贴了出来. Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃 ...

  4. 基于 Hexo + GitHub Pages 搭建个人博客(三)

    一.添加扫描二维码关注功能 打开 themes 目录下的 next 主题配置文件,找到 Wechat Subscriber 标签,将该标签下的配置改成如下形式: # Wechat Subscriber ...

  5. python 字典实现简单购物车

    # -*- coding: utf-8 -*-#总金额asset_all=0i1=input('请输入总资产:')asset_all=int(i1)#商品列表goods=[ {'name':'电脑', ...

  6. static class 静态类(Java)

    一般情况下是不可以用static修饰类的.如果一定要用static修饰类的话,通常static修饰的是匿名内部类. 在一个类中创建另外一个类,叫做成员内部类.这个成员内部类可以静态的(利用static ...

  7. 微信内置浏览器 如何小窗不全屏播放视频?也可以尝试canvas.

    设置属性: <video height="100%" width="100%" autoplay="autoplay" control ...

  8. 【转】动态规划DP

    [数据结构与算法] DP 动态规划 介绍 原创 2017年02月13日 00:42:51 最近在看算法导论. DP全称是dynamic programming,这里programming不是编程,是一 ...

  9. opencv 3.1.0 访问像素值的三种方法(C++)

    三种方法分别问: 指针访问:void colorReduce_ptr(cv::Mat &inputImage, cv::Mat &outputImage, int div); 迭代器访 ...

  10. 基于Windows服务器,从0开始搭建一个基于RTSP协议的直播平台

    作案工具下载 EasyDarwin 服务端程序,用来接受推流和拉流 FFmpeg 可以用来推流视频数据到服务端,也可以从服务端拉流下来播放,也可以从一个服务端拉流下来,转推到另一个服务端去. Easy ...