38.2D动画-2D骨骼动画-2DAnimation-单张图片骨骼编辑
38.1 知识点
什么是2D骨骼动画
首先回顾一下序列帧动画
传统的序列帧动画为了达到好的动画效果
理论上来说,图片越多,动作越流畅
往往需要较多的美术资源,虽然效果好但是资源占用较多
而2D骨骼动画是利用3D骨骼动画的制作原理进行制作的
将一张2D图片分割成n个部位,为每个部位绑上骨骼,控制骨骼旋转移动
达到用最少的2D美术资源做出流畅的2D动画效果
Unity中如何制作2D骨骼动画
- 主要方式有两种
- 使用Unity2018新加功能 2D Animation 工具制作
- 使用跨平台骨骼动画制作工具 Spine 制作
导入2D Animation工具
在Package Manager窗口 搜索 2D Animation并安装 假如不是2d项目,要手动导入,否则自动就有
可以自己查看示例场景和示例图片。切换成皮肤编辑模式查看骨骼
SkinningEditor模式下面板讲解
导入工具后 在Sprite Editor窗口会多一个选项 Skinning Editor 切换到Skinning Editor模式
因为官方示例的图都是设置好骨骼的 可以找到对应的图的路径在资源管理器中打开 删除对应的meta文件 回到unity 系统会默认生成新的meta文件 之前绑定的骨骼相关就丢失了
SkinningEditor模式下面板参数
左上方栏
- Reset Pose 将角色骨骼和关节恢复到原始位置
- Sprite Sheet: 图集显示
- Copy 复制当前选择的数据
- Paste 粘贴复制数据
左方栏
- Bone 骨骼相关
- Preview Pose 预览模式,可以预览动作并不会真正的改变设置
- Edit Bone 编辑骨骼,可以改变骨骼的位置、长度、方向、名称等等
- 删除骨骼的话点击骨骼根位置按下删除键即可
- Create Bone 创建骨骼 注意要双击图片 图片产生橙色边缘线后 再点击创建骨骼
- 出现红色的的代理代表创建骨骼,点击选择起点,一般在根位置,再次点击确认结束点会生成针的形状。下一个骨骼的默认开始点是上一个根骨骼的结束点。假如不想以上次结束点为默认起点右键即可重新设置起点位置。
- 这样创建的两个骨骼是没有父子关系的
- 假如一个骨骼A的尾部创建完直接连接另一个骨骼B的起点 那么这个A就是B的父骨骼 A移动会影响B B移动不会影响A 但是不是必须要和A尾部相连才能成为A的子骨骼
- 如果想创建更多的子对象,就点击想创建的子对象的根部 进行设置起点和终点
- Split Bone 拆分骨骼,将一个骨骼一分为二
- Geometry 蒙皮相关 蒙皮决定了骨骼主要控制哪一部分
- Auto Geometry 自动蒙皮
- OUtline Detail 边缘细节,值越大,轮廓越细致
- Alpha Tolerance 阿尔法公差值,控制蒙皮细节
- Subdivide 细化程度,控制蒙皮细节
- Weights 是否自动设置权重,一般勾选
- 设置好参数直接点击下方生成按钮生成蒙皮 一般来说都要设置自动蒙皮再在后面的蒙皮选项修改
- 设置好蒙皮和权重(选择了自动权重或者自己设置)之后点击生成按钮,图片出现三角形面片。移动骨骼图片可以产生效果。
- Edit Geometry 编辑蒙皮 调整定点位置
- Create Vertex 创建顶点 创建更多的顶点可以让图片更细致
- Create Edge 创建边线 创建更多的边线可以让图片更细致
- Split Edge 拆分边,用一个新的顶点分离一个边
- Auto Geometry 自动蒙皮
- Weights 权重相关 决定了当骨骼动时如何印象顶点和边
- Auto Weights 自动赋予权重
- Weight Slider 编辑顶点和边的权重
- Mode:计算模式
- Add And Subtract:加减法 默认选择
- Grow And Shrink:增长和收缩
- Smooth:平滑
- Bone:设置权重的骨骼
- Normalize:标准化设置
- Amount:数量级
- Vertex Weight:顶点权重 对应的受影响骨骼权重 假如某个骨骼权重设置为0,另一个设置为1 那么这个定点之会受到权重为1的骨骼影响,都是非0的话都能影响当前顶点
- Mode:计算模式
- Weight Brush 用笔刷赋予权重
- Size:笔刷大小
- Hardness:笔刷强度,越大效果越明显
- Step:步数
- 选择一个骨骼,调整强度和笔刷大小,在图片上刷。这样刷到的某些顶点收当前选择骨骼影响的权重会增大。可以观察颜色变化。骨骼的颜色对应这图片的颜色背景色。比如假如都完全受去看骨骼的影响,那样整个图片全红。
- Bone Influence 选择骨骼用的Sprite
- 主要用于在psb图片中使用骨骼控制点的图片关联
- Auto Weights 自动赋予权重
右上方栏
- 可以修改骨骼名字
- Visibility 切换选定精灵或骨骼的可见性
- 左侧拖动条 控制编辑时骨骼透明度 修改骨骼可透明度会更改
- 右侧拖动条 控制编辑时权重透明度 修改可以看到图片骨骼颜色权重的更改
- 下方列表 浏览各骨骼名和骨骼层级信息
骨骼动画使用
把设置好骨骼的图片丢到场景里,添加SpriteSKin脚本,点击CreateBones按钮,骨骼会自动关联
会发现场景中的物体会根据骨骼的父子关关系自动生成子物体。可以给物体添加动画,调整各个骨骼子物体位置来生成动画效果
38.2 知识点代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson38_2D动画_2D骨骼动画_2DAnimation_单张图片骨骼编辑 : MonoBehaviour
{
void Start()
{
#region 知识点一 什么是2D骨骼动画
//首先回顾一下序列帧动画
//传统的序列帧动画为了达到好的动画效果
//理论上来说,图片越多,动作越流畅
//往往需要较多的美术资源,虽然效果好但是资源占用较多
//而2D骨骼动画是利用3D骨骼动画的制作原理进行制作的
//将一张2D图片分割成n个部位,为每个部位绑上骨骼,控制骨骼旋转移动
//达到用最少的2D美术资源做出流畅的2D动画效果
#endregion
#region 知识点二 Unity中如何制作2D骨骼动画
//主要方式有两种
//1.使用Unity2018新加功能 2D Animation 工具制作
//2.使用跨平台骨骼动画制作工具 Spine 制作
#endregion
#region 知识点三 导入2D Animation工具
//在Package Manager窗口 搜索 2D Animation并安装
#endregion
#region 知识点四 SkinningEditor模式下面板讲解
//导入工具后 在Sprite Editor窗口会多一个选项 Skinning Editor
#endregion
#region 知识点五 骨骼动画使用
#endregion
}
}
38.3 练习题
单张图片制作一个骨骼动画
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com