• Unity3D插件 AnyPortrait 2D骨骼动画制作


    一、前言
    AnyPortrait是一个创建2D角色动画制作的Unity拓展编辑器插件。

    AnyPortrait提供了很多功能,让你可以在Unity里面就完成动画的制作。

    使用AnyPortrait插件轻松创建2D网格,并且实现各种动画技术。

    AnyPortrait关键特性:

    用户创建的网格
    通过解析PSD
    自动创建字符顶点变形动画
    色彩和变换动画
    使用控制参数的组合状态控制
    骨操纵动画
    基于张力的顶点物理效应关键帧动画
    为用户提供备份、数据导出/导入、捕获等多种功能。
    支持8种语言(英语、韩语、法语、德语、西班牙语、丹麦语、日语和汉语)
    先放一张效果图:

     

    这是本系列文章的第二篇:
    【Unity3D插件】(一)使用AnyPortrait插件制作史莱姆动画(AnyPortrait插件教程)
    【Unity3D插件】(二)使用AnyPortrait插件制作角色动画(AnyPortrait插件教程)

    二、教程分享
    本教程基于插件包中的PSD文件。

    学习如何通过PSD文件创建网格组。

    以及如何添加骨骼和创建动画。

    2-1、导入PSD文件
    让我们新建一个场景,保存场景后,在菜单栏选择“Windows→AnyPortrait→2D Editor”,点击新建肖像,命名为PeacockTheAria:

    按下 导入PSD文件 按钮导入新的PSD文件:

    确保文件正常打开,然后单击Next按钮:

    进入第二个页面,“图层”页面,加载的图层图像就会出现,接着就选择文件层:
    接下来,需要将PSD文件里面的若干图片制作成资源:


    设置完地图集Atlas后,点击Complete按钮:

    可以看到所有的图像、网格和网格组都是自动创建的:

    使用PSD文件,自动创建网格和网格组,非常方便。

    2-2、编辑骨骼动画的网格
    因为自动创建的网格比较粗糙,所以需要优化一下网格。

    选中要优化的网格,删除所有顶点:

    接着,就重新设置网格:

    重复上面操作,重新设置所有的网格:


    2-3、剪切层
    打开网格组后,可以在层级列表看到一个箭头形状的图标,Teeth和Tongue,如果选择这两个网格,可以看到网格只渲染了一部分,这是因为Teeth和Tongue具有剪切层属性:

    下面的图片演示了剪切层属性的效果,可以看到图片的隐藏部分:

    剪切功能是通过指定另一个网格作为蒙版来渲染网格的一部分。
    主要用于眼睛、嘴巴等部位。

    但是,请注意以下几点:

    剪辑功能导致过程变慢,所以它减慢了Game。只在必要的部分使用。
    如果你创建并使用一个自定义着色器,你还必须编写与剪辑功能相关的代码。
    2-4、添加骨骼
    AnyPortrait支持骨骼IK(逆运动学)和支持骨骼插槽。

    接下来,就演示如何为骨骼动画添加骨骼:

    在身体重心位置添加一块骨骼,方向不是很重要:

    修改这个骨骼的名字和形状:

    继续添加骨骼,命名为Bone Spine 1:

    继续添加骨骼,命名为Bone Spine 2,颜色和大小跟上一根骨骼相似:

    给角色的帽子耳朵上也添加一块骨头:

    重复上面的步骤,创建下面图片设置的骨骼样式:

    接下来需要将骨骼都连接到一起,这样就可以像真人一样移动:


    这样,Bone Spine 1就成了Bone Pelvie的子对象了。

    用同样的方法,连接头和双臂,耳朵等:

    2-5、使用绑定修改器
    设置完骨骼,就可以使用绑定修改器了,绑定修改器的作用就是连接顶点到网格。在顶点处输入骨骼不同的重量,这样顶点就会跟随骨骼移动。


    在上面左图中,所有顶点的权重都是1:0.0,因此它不依赖于绿色的骨骼移动。

    右图中,顶点的权重依次递增给绿色骨骼,可以看到绿色骨骼在平滑移动。

    也就是说绑定修改器是设置顶点+骨骼的连接权重的过程。

    下面,就添加一个绑定修改器:

    将Hood网格的顶点添加到绑定修改器:

    点击左下角的开始绑定按钮,开始绑定顶点和骨骼,选择所有顶点,然后选择Bone Head骨骼:

    设置顶点的权重:


    2-6、创建动画片段
    接着添加一个与动画关联的修饰符:

    在左边菜单选择添加动画剪辑,然后设置动画的名字,然后选择网格组PeacockTheAria:


    注意:动画名称用于在游戏过程中播放动画,名称重复或错误无法删除。

    动画片段属性:


    动画剪辑和网格组的名称
    动画剪辑的开始和结束帧
    是否循环
    每秒帧数
    动画事件
    导出/导入动画文件
    2-7、添加时间
    要创建关键帧动画,必须向动画剪辑添加时间轴:


    添加了变换(动画)时间轴:

    接下来,给时间轴动画添加一个骨骼:

    点击开始编辑,在关键位置添加关键帧:

    当打开编辑模式并选择关键帧时,你可以变换对象。这个状态记录在关键帧中。

    接下来,在生成的关键帧中,移动选定的骨骼并记录它:


    播放动画:


    2-8、动画曲线设置
    插值是理解关键帧动画时最重要的原则。

    插值是计算关键帧和关键帧之间的形式的过程。

    根据插值方法,即使你有相同的关键帧,动画的结果也可能是不同的。

    这一节就介绍动画曲线处理插值方法。

    选择一个关键帧,设置动画曲线:

    设置动画曲线:


    2-9、创建骨骼动画
    接下来,就根据上面的内容,做一个骨骼动画。

    创建一个新的动画剪辑之间,先删除之间创建的动画关键帧:

    选择所有的骨骼并将它们加入到时间轴是很麻烦,可以将所有骨骼一次性添加到时间轴:

    所有骨头都在时间线上了:

    设置动画循环:

    如果在一帧动画中有多个时间轴,这设置起来很麻烦,这时候就可以使用 将关键帧添加到所有层, 批量创建关键帧:

    移动时间滑动到生成的关键帧所有位置,打开编辑模式,制作动画。

    动画制作完成后,需要将动画移动到场景中,先设置根目录:

    设置根节点后,选择动画,并播放动画,就可以看到设置后的动画了:

    点击烘焙,将动画烘焙到场景中:

    运行程序,就可以看到设置的动画了。

    三、后言
    可以看出来AnyPortrait插件还是很强大的。

    可以做很多的效果跟动画。

    但是,如果想要做出精细的动画效果,还需要专业的美工人员去制作。


    ————————————————
     https://blog.csdn.net/q764424567/article/details/120408847

  • 相关阅读:
    Netty——网络编程 NIO(Selector处理write事件 写入内容过多问题)代码示例
    低代码如何在新时代为企业实现数字化转型
    hadoop详解
    如何快速给图标包命名
    一步教你怎么使用Vuex
    [附源码]SSM计算机毕业设计疫情期间回乡人员管理系统JAVA
    计算机网络的相关知识点总结
    《深入浅出图神经网络--GNN原理解析》一些概念【待整理完】
    Vue入门教学——编写第一个页面
    获取学习资源,方法对了轻松百倍
  • 原文地址:https://blog.csdn.net/qq_42672770/article/details/125466464