Unity序列帧动画疑难解答

时间:2024-03-15 16:26:59

**Unity序列帧动画疑难解答

  • 熟悉界面:

界面熟悉很重要,千万不要发生与别人沟通时你说菜单他去找工具栏的情况。
Unity序列帧动画疑难解答
**菜单栏:**基础创建设置工具等功能入口
**工具栏:**软件内的基本操作工具,基本上不用点击,有快捷键代替
**预览窗口:**预览窗口,包含场景预览,游戏播放(实际输出预览),切换2d和3d等(2d文件一定要在2d窗口预览制作!!!)
**层级栏:**可以检查每个物件之间的层级关系,类似ps的图层栏,可以代替菜单栏里的组件直接创建。
**素材栏:**字面意思,也是工程文件目录,请一定要养好习惯整理清楚,以后接触游戏或者app项目这一栏很重要!
**属性:**图层或者素材里每一个项目的属性都在这里调整,包括位置信息,材质贴图信息,动画avatar等,调整完毕记得点击apply/回车确认修改。
**动画调试:**以及报错等窗口可以从菜单栏的窗口里调出。

  • 看不见动画播放的几个原因:

场景中播放看不见动画有很多原因,针对不同原因的不同解决方式如下:
摄像机设置问题
检查摄像机和物体之间z轴位置关系,一般来说摄像机就是最终渲染输出的样式,需要前期调整好保持不动,根据摄像机调整物品位置即可。
摄像机属性遮罩改成显示所有物体。
Unity序列帧动画疑难解答

  • 动画不播放,或者播放一次之后消失了等
    Unity序列帧动画疑难解答
    动画属性设置剔除模式为总是动画化

  • 物体,模型动画跟着摄像机跑了
    Unity序列帧动画疑难解答
    图层栏里将物体拖出来就好了,除非动画需要,否则不要放在cammera层级下。

模型太小了看不见
如果是序列帧直接拖入图层Hierarchy中建立的动画,默认是精灵图sprite而不是图像image的话默认画布里的精灵图是0.01,需要手动修改缩放scale为100。
Unity序列帧动画疑难解答
然后摄像机z轴根据物体大小修改数值,直到满意为止。
Unity序列帧动画疑难解答
因为image自带canvas设置而sprite没有,需要注意区别。Unity序列帧动画疑难解答
图中1是精灵图sprite,2是图像image,是不是多很多东西,而且image直接在画布层级下。
遇到image显示问题,可以点击父层的canvas修改,可能是没有制定摄像机导致的。如下图,选择第二个Screen Space-Camera。
Unity序列帧动画疑难解答
物体就可以在设置好的相机内显示了

这里比较重要,需要着重了解一下,并建议大家多用image。

  • Image和sprite的区别和用法:

下图game预览中有锯齿粉色物体是sprite,蓝色物体是image(原大)
Unity序列帧动画疑难解答
再看一下他们在场景中的关系。Unity序列帧动画疑难解答
为什么在scene里大小看起来一样但位置信息不一样的两个物体却能在game play中重叠位置信息且大小差异那么多?
这就是image和sprite的区别。

Sprite的位置信息在inspector中手动调整数值,并依赖于camera,需要先设置好camera为Orthographic,即正交投影,确认所需物体都在摄像机范围内并能在game play里正常预览,位置信息都和设计稿一致即可,但是由于Sprite属性问题,在scene里过小的sprite是不可见的(就容易导致之前说的问题)。

而image从创建的那一刻就十分的优秀了,Hierarchy右键创建>UI->Image,就可以看到创建了一个带有子集image的canvas,设置的画布大小就是game play的大小,image的位置信息在scene中也是肉眼可见,可以很直观的摆放物体,调整大小。优秀。

Hierarchy栏里创建sprite和image的区别如下图:Unity序列帧动画疑难解答
Image调试好画布渲染模式为 screen space-camera,将摄像机拖入render camera就可以混合sprite使用。
画布尺寸默认1就是原大,不会出现sprite在scene里缩小一百倍看不见的情况。Unity序列帧动画疑难解答
Image 自带canvas爸爸不代表独立自强的sprite一点用都没有,当我们遇到拼好的精灵图需要导入unity做动画文件时,可以使用sprite的切割功能。
导入拼好的精灵图,1设置图片属性为sprite(2d and ui),2选择图片为多张multiple,3取消勾选智能物理切割,4点击编辑精灵图。Unity序列帧动画疑难解答
如果电脑提示你没有安装2dsprite插件的话(如下图)Unity序列帧动画疑难解答Unity序列帧动画疑难解答可以直接在菜单栏窗口点击Package Manager找到2dsprite然后下载就行。Unity序列帧动画疑难解答
Unity序列帧动画疑难解答然后继续回到上一步,编辑精灵图,千万不要选智能切图,否则就是下图 Unity序列帧动画疑难解答
最好是选根据尺寸切图,否则切完还得手动对一下,1输入每一格图片尺寸,2点击确认。Unity序列帧动画疑难解答
得到完美切好的精灵图,然后就可以创建动画进入下一阶段了。Unity序列帧动画疑难解答
以上是分析image和sprite的区别与各自优势,在项目制作中两个都很重要,并且可以混合使用,sprite可以作为贴图直接拖入image中使用,完美结合各自优势,资源库里贴图文件也会相对清爽干净。

举例:
下图1是精灵图,2是序列帧贴图的image,3是精灵图切割后作为贴图的image,三者在场景中对应的位置:Unity序列帧动画疑难解答
这是三者的预览位置大小关系:Unity序列帧动画疑难解答

  • 序列帧创建动画:
    Unity序列帧动画疑难解答
    1将序列帧/精灵图拖入素材库(或者在素材库右键导入)
    2整理素材,创建相关object。有两种方案,直接将导入的序列帧/切割好的精灵图选中后拖入层级栏,自动形成sprite物体或者层级栏右键ui-image/2D object-sprite。
    3选中创建的物体后打开animation创建动画,并设置储存位置。 Unity序列帧动画疑难解答
    然后将序列帧直接拖入时间轴即可。
    如果是切割后的精灵图,需要点开右边的播放展开按钮,然后选中里面的序列帧再拖入时间轴。
    Unity序列帧动画疑难解答Unity序列帧动画疑难解答如下图,就可以播放预览了。
    Unity序列帧动画疑难解答