近期热门
粉丝64
关注 0
获赞 3
实现Unity3d手动UV动画

[U3D] 实现Unity3d手动UV动画

[复制链接]
3043 7 0 3 8年前 举报
首先我们来认识下什么是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的排序,便于观看。贴在模型上是这样的效果。
0.jpg 2、可以看的出来这并不是我们需要的排列,我们需要单个的数字占满整个Plane,而不是现实整张图。所以,我们需要修改贴图的Tiling,让数字1占满Plane。
1.jpg 2.jpg 3、这个时候就可以打开动画编辑器来K序列图的动画了。先让UV走到数字2试试。我们需要Offset的数值,这个是用来控制贴图UV的流动。由于这张序列图是4*2的,所以,横向移动0.25个单位即移动了一格。
3.jpg 4.jpg 4、UV走到数字4和5之间的时候,UV需要纵向移动一格。这个地方也是特别需要注意的。
5.jpg 5、当K完所有的帧之后还不够,此时播放的话我们会发现贴图走动是异常混乱的,这个时候我们需要到曲线里面,把所有关键帧的曲线都打直。到此unity3d手动实现UV动画就完成,是不是很简单。
6.jpg 7.jpg 本篇教程到这里就结束了,希望对大家有帮助!
资源地址: http://cg.silucg.com/dongman/unity3d/7995.html


0
点赞
0
打赏
3
添加到收藏夹

0

点击复制链接

使用微信扫码分享
一次扣10个券
全部评论7
您需要登录后才可以回帖 登录

感谢分享
6年前
回复

使用道具 举报

谢谢楼主分享~
6年前
回复

使用道具 举报

不错不错哦!!!!!
8年前
回复

使用道具 举报

{:1_336:}谢谢分享
8年前
回复

使用道具 举报

感謝分享這麼好的資源!
8年前
回复

使用道具 举报

感谢分享
8年前
回复

使用道具 举报

感谢楼主分享,正是我需要的好东西~~谢谢~
8年前
回复

使用道具 举报

您当前使用的浏览器IE内核版本过低会导致网站显示错误

请使用高速内核浏览器或其他浏览器