• Unity插件


    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

  • 相关阅读:
    几款开源的图形界面库(GUI Libraries)
    CMenu菜单
    开源免费的C/C++网络库(c/c++ sockets library) 七剑下天山
    基于MFC的ActiveX控件开发
    VC++中动态生成菜单技巧
    ActiveX控件打包成Cab置于网页中自动下载安装
    VC++API小查
    全面解析MFC应用程序中处理消息的顺序
    CMenu类的使用方法
    跨域单点登录实现(使用iframe)_勇敢的心_百度空间
  • 原文地址:https://www.cnblogs.com/liang123/p/6325852.html
Copyright © 2020-2023  润新知