【动画】Unity2D骨骼动画-Animation2D

骨骼动画原理

  • 叫骨骼蒙皮动画或者矩阵变换动画更贴切
  • 骨骼动画 = transform动画 + 骨骼顶点变换 + 渲染模型
    • KeyframeAnimation(transform节点),
    • 骨骼引起的顶点变换(bone,mesh)
    • draw mesh

动画驱动

  • Animation控制transform,transform提供了骨头的矩阵,连续的keyframe控制骨头的位置,让每个精灵分块动了起来;
  • 骨头影响顶点变换,顶点动起来
  • 形成了动画

顶点变换

使用骨骼影响顶点的移动

方式1:gpu

着色器顶点函数里获得骨骼的矩阵对顶点做变换

方式2:cpu

cpu里修改mesh顶点,这个方式,动画和模型越复杂,耗时越多,就越卡

贴图

蒙皮,即把图片盖在模型上,使用某个精灵生成网格,每个顶点自动对应到texture某个uv坐标,编辑器下完成,美术的活

骨骼

  • 骨骼 = 所有骨头
  • 每个骨头都记录顶点和变换矩阵的关系,骨头有父子关系,在unity的形式为Transform节点

骨骼和顶点绑定的方法

在某一顶点区域创建骨头,那么这个区域的顶点都收到这个骨头的影响。骨头的影响范围可以调整。顶点最多可以受到n个骨头影响,游戏里一般是4个。

切块

精灵中不相连的部分都可以算作一个独立的块,也可以在制作的时候自定义切块,一般这些切块是人性骨骼的躯干、头部、四肢、武器

unity animation2D的接口

  • 编辑器导出unity资源:skeletonEditor.export()
  • 导出的资源:Animator + Animation + Sprite + GameObject

源码

入口类

SpriteSkin,对应编辑器SpriteSkinEditor,LateUpdate

参考

骨骼变换代码,cpu实现,这篇:> https://blog.csdn.net/ak47007tiger/article/details/148381712

资料

Boner2D

开源库,利用SkinnedMeshRenderer的特性,构造其需要的参数,骨骼权重,骨骼位置,骨骼动画的计算这个库交给SkinnedMeshRenderer处理了

相关推荐
SmalBox12 小时前
【渲染流水线】[几何阶段]-[归一化NDC]以UnityURP为例
unity·渲染
SmalBox1 天前
【渲染流水线】[几何阶段]-[图元装配]以UnityURP为例
unity·渲染
霜绛2 天前
Unity:GUI笔记(一)——文本、按钮、多选框和单选框、输入框和拖动条、图片绘制和框绘制
笔记·学习·unity·游戏引擎
谷宇.2 天前
【Unity3D实例-功能-移动】角色行走和奔跑的相互切换
游戏·unity·c#·unity3d·游戏开发·游戏编程
17岁的勇气2 天前
Unity Shader unity文档学习笔记(十九):粘土效果,任意网格转化成一个球(顶点动画,曲面着色器)
笔记·学习·unity·图形渲染·顶点着色器·曲面着色器
benben0443 天前
《Unity Shader入门精要》学习笔记一
unity·shader
YF云飞3 天前
Unity图片优化与比例控制全攻略
游戏·unity·游戏引擎·游戏程序·个人开发
SmalBox3 天前
【渲染流水线】[几何阶段]-[几何着色]以UnityURP为例
unity·渲染
★YUI★3 天前
学习游制作记录(背包UI以及各种物品的存储)8.12
学习·游戏·ui·unity·c#
☆平常心☆4 天前
Unity数据可视化图表插件XCharts
unity·信息可视化