当前位置:网站首页>Unity3D插件 AnyPortrait 2D骨骼动画制作
Unity3D插件 AnyPortrait 2D骨骼动画制作
2022-06-26 21:54:00 【Peter_Gao_】
一、前言
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
边栏推荐
- BN(Batch Normalization) 的理论理解以及在tf.keras中的实际应用和总结
- Introduction to operator
- Matrix derivation and its chain rule
- random_ normal_ Initializer uses
- 如何在 SAP BTP 平台上启用 HANA Cloud 服务
- leetcode:141. Circular linked list [hash table + speed pointer]
- MacOS环境下使用HomeBrew安装[email protected]
- random_normal_initializer 使用
- Is it safe for CICC fortune to open an account? I want to open an account to speculate in stocks.
- Application and Optimization Practice of 100 million level monthly live national karaoke feed service in Tencent cloud mongodb
猜你喜欢

在Flutter中解析复杂的JSON

Convolutional neural network (CNN) explanation and tensorflow2 code implementation

Test comparison of linear model LN, single neural network SNN, deep neural network DNN and CNN

Android IO, a first-line Internet manufacturer, is a collection of real questions for senior Android interviews

360手机助手首家接入APP签名服务系统 助力隐私安全分发

YuMinHong: New Oriental does not have a reversal of falling and turning over, destroying and rising again
![[LeetCode]-链表-2](/img/f7/9d4b01285fd6f7fa9f3431985111b0.png)
[LeetCode]-链表-2

QT based "synthetic watermelon" game

VB.net类库——4给屏幕截图,裁剪

Leetcode(452)——用最少数量的箭引爆气球
随机推荐
Introduction of classic wide & deep model and implementation of tensorflow 2 code
如何用 SAP BTP 平台上的图形建模器创建一个 OData 服务
Installation avec homebrew dans un environnement Mac OS [email protected]
VB.net类库(进阶——2 重载)
同花顺注册开户有没有什么风险?安全吗?
Introduction to dependency injection in SAP Spartacus
[LeetCode]-链表-2
VB.net类库,获取屏幕内鼠标下的颜色(进阶——3)
Some ways out for older programmers
[solution] sword finger offer 15 Number of 1 in binary (C language)
leetcode:1567. Length of the longest subarray whose product is a positive number [dp[i] indicates the maximum length ending with I]
CVPR 2022 - Interpretation of selected papers of meituan technical team
numpy中mgrid的用法
Student information management system based on SSH Framework
Different subsequence problems I
Solution of valuenotifier < list < t > > monitoring problem in fluent
Chapter 2 construction of self defined corpus
DLA模型(分类模型+改进版分割模型) + 可变形卷积
诗尼曼家居冲刺A股:年营收近12亿 红星美凯龙与居然之家是股东
证券注册开户有没有什么风险?安全吗?