U3L16-1-a——2D Animation单张图片编辑
U3L16-1-a——2D Animation单张图片编辑
面板讲解
导入工具后 在Sprite Editor窗口会多一个选项 Skinning Editor
当使用的是PSB文件时,右上角会显示
Sprite Sheet: 图集显示
姿势相关(Pose)
Preview Pose 预览模式,可以预览动作并不会真正的改变设置
Restore Pose 将角色骨骼和关节恢复到原始位置
骨骼相关(Bones)
Edit Bone 编辑骨骼,可以改变骨骼的位置、长度、方向、名称等等
Create Bone 创建骨骼
Split Bone 拆分骨骼,将一个骨骼一分为二
蒙皮相关(Geometry)
蒙皮决定了骨骼主要控制哪一部分
Auto Geometry 自动蒙皮
Outline Detail 边缘细节,值越大,轮廓越细致
Alpha Tolerance 阿尔法公差值,控制蒙皮细节
Subdivide 细化程度,控制蒙皮细节
Weights 是否自动设置权重,一般勾选
Edit Geometry 编辑蒙皮
Create Vertex ...
U3L16-1-e——2D Animation 换装
U3L16-1-e——2D Animation 换装
同一文件和 不同文件 制作换装资源两种方案
换装有两种情况,一个是在同一个文件内,一个是不在同一文件内
换装较少的游戏 比如只有面部表情更换 可以使用同一psb文件方案
换装较多的游戏 比如各部位有n种装备 可以使用不同psb文件方案
不同psb文件 拓展性更强
一切根据需求而定
换装资源在同一个文件中
本章代码关键字
1234UnityEngine.U2D.Animation //SpriteResolver所需要的命名空间SpriteResolver //精灵解算器类spriteResolver.GetCategory() //获取当前部位默认的类别名spriteResolver.SetCategoryAndLabel(,) //设置当前部位想要切换的图片信息
如何在同一个psb文件中制作换装资源
1.在ps中制作美术资源时,将一个游戏对象的所有换装资源都摆放好位置
2.当我们导入该资源时,要注意是否导入隐藏的图层
...
U3L16-1-d——2D Animation 反向动力学IK
U3L16-1-d——2D Animation 反向动力学IK
IK
在骨骼动画中,构建骨骼的方法被称为正向动力学
它的表现形式是,子骨骼(关节)的位置根据父骨骼(关节)的旋转而改变
用我们人体举例子
当我们抬起手臂时,是肩部关节带动的整个手臂的运动,用父子骨骼理解的话就是父带动了子
而IK全称是Inverse Kinematics,翻译过来的意思就是反向动力学的意思
它和正向动力学恰恰相反
它的表现形式是,子骨骼(关节)末端的位置改变会带动自己以及自己的父骨骼(关节)旋转
用我们人体举例子
当我们拿起一个杯子的时候是用手掌去拿,以杯子为参照物,我们移动杯子的位置,手臂会随着杯子一起移动
用父子骨骼理解的话就是子带动了父
IK对于我们的意义
1.瞄准功能
2.头部朝向功能
3.拾取物品功能
等等有指向性的功能时 我们都可以通过IK来达到目的
最大的作用,可以方便我们进行动画制作
2D IK包引入
以下方法仅适用于Unity2020版及以前的版本,Unity2021及之后的版本的IK已经默认集成到了2D模块内无需再手动安装
在Package Manager窗口中引入2D IK工具包
需要 ...
U3L16-1-c——2D Animation Psb图集编辑
U3L16-1-c——2D Animation Psb图集编辑
PSB文件
认识 PSB 之前先认识 PS
PS(photoshop)是一款强大的图像处理软件
在各领域都被广泛使用
在游戏行业中也是美术同学使用最多的图像处理软件之一
PSD和PSB两种格式,都是PS这款软件用于保存图像处理数据的文件格式
PSD和PSB两种格式并没有太大的区别
最大的区别是PSD格式兼容除PS以外的其它一些软件
而PSB只能用PS打开
在Unity中官方建议使用psb格式
在Unity中使用PSB文件
需要在Packages Manager窗口中引入 2D PSD Importer工具包
设置PSB文件关键参数
请注意!2021版Unity默认使用的2D PSD Importer参数和老师所用的2019版Unity差距较大
因此这里参数内容重写,主要参考PSD 导入器检查器属性 |2D PSD 导入器 |6.0.7 (unity.cn)(缺少中文),辅以老师的所讲的内容
这里只会列出与 一般Sprite文件参数不同 的参数
Unity2021 2D PSD Importer参数(缺少Advanced部分 ...
U3L16-1-b——2D Animation图集骨骼编辑
U3L16-1-b——2D Animation图集骨骼编辑
注意事项
设置Sprite为图集模式
对图集图片进行切片
图集骨骼编辑
选择好图集中单个要修改的图
按照单张图片编辑骨骼的方法,来为图集内每一个图片增加骨骼和蒙皮
最后将这些图片放在场景内一个根物体下,拼在一起,注意层级和父子关系
图集骨骼动画使用
拼好的骨骼使用 和 骨骼动画使用 一致
U3L16-2——Spine
U3L16-2——Spine
Spine
Spine是一个收费的跨平台的2D骨骼动画制作工具
它支持Unity,UE,Cocos2D,Cocos2D-x等等游戏引擎
相对Unity2018才推出的 2D Animation
Spine是目前商业游戏中较为常用的骨骼动画制作方案 稳定且高效
官方地址:http://zh.esotericsoftware.com/
如何学习Spine
制作骨骼动画时美术人员的工作,除非你是要做独立游戏,美术程序一人包
那么我们没有必要去学习如何通过Spine制作骨骼动画
我们只需要学习如何在Unity中通过程序使用Spine制作的资源
如果想要学习如何制作Spine骨骼动画,可以根据官网提供的教学内容进行学习
导入Unity使用的Spine运行库
有了Spine提供的支持Unity开发的运行库,我们才能在Unity中使用Spine制作的骨骼动画
你可以简单理解其实就是官方写好的识别文件处理文件呈现效果的代码
我们只需要学习如何使用它提供的API即可
Spine骨骼动画使用
Spine骨骼动画使用
Spine骨骼动画参数相关
Spine骨骼动画参数相关
Sp ...
U3L16-1——2D Animation
U3L16-1——2D Animation
导入2D Animation工具
在Package Manager窗口 搜索 2D Animation并安装
单张图片编辑
单张图片编辑
图集骨骼编辑
图集骨骼编辑
Psb图集编辑
Psb图集编辑
反向动力学IK
反向动力学IK
换装
换装
U3L16——2D骨骼动画
U3L16——2D骨骼动画
2D骨骼动画
首先回顾一下序列帧动画
传统的序列帧动画为了达到好的动画效果
理论上来说,图片越多,动作越流畅
往往需要较多的美术资源,虽然效果好但是资源占用较多
而2D骨骼动画是利用3D骨骼动画的制作原理进行制作的
将一张2D图片分割成n个部位,为每个部位绑上骨骼,控制骨骼旋转移动
达到用最少的2D美术资源做出流畅的2D动画效果
Unity中如何制作2D骨骼动画
主要方式有两种
使用Unity2018新加功能 2D Animation 工具制作 ——> 2D Animation
使用跨平台骨骼动画制作工具 Spine 制作 ——> Spine
U3L15——2D序列帧动画
U3L15——2D序列帧动画
2D序列帧动画
我们最常见的序列帧动画就是那些手绘2D动画,例如:常见的日本动画等
以固定时间间隔 按序列切换图片 就是 序列帧动画的本质
当固定时间间隔足够短时 我们肉眼就会认为图片是连续动态的 进而形成动画(会动的画面)
它的本质和游戏的帧率概念有点类似
原理就是在一个循环中按一定时间间隔不停的切换显示的图片
代码制作序列帧动画
先尝试根据原理 通过代码来实现序列帧动画
123456789101112131415161718192021222324252627282930public class Lesson35 : MonoBehaviour{ public Sprite[] sprites; private SpriteRenderer sr; private float time = 0; private int nowIndex = 0; // Start is called before the first frame update void Start() { sr ...
U3L14-3——代码控制动画状态机切换
U3L14-3——代码控制动画状态机切换
关键组件Animator参数相关
Controller:对应的动画控制器(状态机)
Avatar:对应的替身配置信息(之后讲解3D模型时详细讲解)
Apply Root Motion:是否启用动画位移更新
如果要使用动作目标匹配,则该选项必须启用!
UpdateMode:更新模式(一般不修改它)
Normal:正常更新
Animate Physics:物理更新
Unscaled Time:不受时间缩放影响
Culling Mode:裁剪剔除模式
Always Animate:始终播放动画,即使在屏幕外也不剔除
Cull Update Transforms:摄像机没有渲染该物体时,停止位置、IK的写入
Cull Completely:摄像机没有渲染物体时,整个动画被完全禁用
本章代码关键字
1234567891011Animator //动画状态机类animator.SetFloat() //设置状态机的f ...