38.2D动画2DAni单张图片骨骼编辑

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 拆分边,用一个新的顶点分离一个边
  • Weights 权重相关 决定了当骨骼动时如何印象顶点和边
    • Auto Weights 自动赋予权重
    • Weight Slider 编辑顶点和边的权重
      • Mode:计算模式
        • Add And Subtract:加减法 默认选择
        • Grow And Shrink:增长和收缩
        • Smooth:平滑
      • Bone:设置权重的骨骼
      • Normalize:标准化设置
      • Amount:数量级
      • Vertex Weight:顶点权重 对应的受影响骨骼权重 假如某个骨骼权重设置为0,另一个设置为1 那么这个定点之会受到权重为1的骨骼影响,都是非0的话都能影响当前顶点
    • Weight Brush 用笔刷赋予权重
      • Size:笔刷大小
      • Hardness:笔刷强度,越大效果越明显
      • Step:步数
      • 选择一个骨骼,调整强度和笔刷大小,在图片上刷。这样刷到的某些顶点收当前选择骨骼影响的权重会增大。可以观察颜色变化。骨骼的颜色对应这图片的颜色背景色。比如假如都完全受去看骨骼的影响,那样整个图片全红。
    • Bone Influence 选择骨骼用的Sprite
      • 主要用于在psb图片中使用骨骼控制点的图片关联
右上方栏

  • 可以修改骨骼名字
  • 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

×

喜欢就点赞,疼爱就打赏