Unity教程之-Unity3d手动实现UV动画教程

 

首先我们来认识下什么是UV,在三维中UV这里是指u,v纹理贴图坐标的简称(它和空间模型的X, Y, Z轴是类似的). 它定义了图片上每个点的位置的信息. 这些点与3D模型是相互联系的, 以决定表面纹理贴图的位置. UV就是将图像上每一个点精确对应到模型物体的表面. 在点与点之间的间隙位置由软件进行图像光滑插值处理. 这就是所谓的UV贴图。

那么UV坐标又是什么呢,由于所有的图象文件都是二维的一个平面。水平方向是U,垂直方向是V,通过这个平面的,二维的UV坐标系。我们可以定位图象上的任意一个象素。但是一个问题是 如何把这个二维的平面贴到三维的NURBS表面和多边形表面呢? 对于NURBUS表面。由于他本身具有UV参数,尽管这个UV值是用来定位表面上的点的参数,但由于它也是二维的,所以很容易通过换算把表面上的点和平面 图象上的象素对应起来。所以把图象贴带NURBUS表面上是很直接的一件事。 但是对于多边形模型来讲,贴图就变成一件麻烦的事了。所以多边形为了贴图就额外引进了一个UV坐标,以便把多边形的顶点和图象文件上的象素对应起来,这样才能在多边形表面上定位纹理贴图。所以说多边形的顶点除了具有三维的空间坐标外。还具有二维的UV坐标。 对于纹理贴图而言,一张贴图的U和V坐标的数值范围都是0到1,而不管他的实际分辨率是多少

了解了上面的基本概念,下面我们来开始我们的正文

在用U3D做特效的时候我们有时候需要用到手K UV动画,当然有些脚本可以实现,但是没有手K的可控性强。今天抽空给大家讲一下怎么实现。

1、我自己制作了一张序列图,有文字1-8的排序,便于观看。贴在模型上是这样的效果。

 

 

2、可以看的出来这并不是我们需要的排列,我们需要单个的数字占满整个Plane,而不是现实整张图。所以,我们需要修改贴图的Tiling,让数字1占满Plane。

 

3、这个时候就可以打开动画编辑器来K序列图的动画了。先让UV走到数字2试试。我们需要Offset的数值,这个是用来控制贴图UV的流动。由于这张序列图是4*2的,所以,横向移动0.25个单位即移动了一格。

4、UV走到数字4和5之间的时候,UV需要纵向移动一格。这个地方也是特别需要注意的。

5、当K完所有的帧之后还不够,此时播放的话我们会发现贴图走动是异常混乱的,这个时候我们需要到曲线里面,把所有关键帧的曲线都打直。到此unity3d手动实现UV动画就完成,是不是很简单。

 

本篇文章到此结束