马上注册,加入CGJOY,让你轻松玩转CGJOY。
您需要 登录 才可以下载或查看,没有帐号?立即注册
×
本帖最后由 yf31797154 于 2015-3-30 16:49 编辑
大家好,我是妖月。{:2_43:}发一个小教程哈哈,以前一直困扰我的问题就是,在U3D中没有程序给些插件怎么在模型上实现序列贴图。以及粒子发射模型时怎么实现序列帧。
首先怎么能实现序列那,简单的说就是给UV做个动画。在粒子中不发射模型的情况下,只要知道序列图是几x几输入即可。但是在模型中怎么实现那。
1.了解U3D对UV的划分如图
这里的X和Y就相当于UV,x轴方向是从左到右为0-1,y轴方向为从下到上0-1.这部是很容易理解的。
2.现在就是怎么计算UV的大小和走向。首先我们想要实现的效果是,16个格子每一个小格子来回运动。也就是说我们在面片或者模型上显示的只是16分之一。X轴和Y轴每个轴向都是4张图,所以我们用1除以4就得到每张图的X,Y分别是0.25.于是我们把。x,y分别设置成0.25和0.25如图
,但是这样的话我们会发现一个问题,贴图大小是对了,但是画面上显示的贴图不是序列图的第一张。如图
这是什么问题那。这时候我们来看一下最开始的X,Y轴向的图。x轴方向是从左到右为0-1,y轴方向为从下到上0-1.但是现在我们的X,Y都显示为0,0
,现在我们来找一下想x,0和y,0表示的是哪一张,没错是左下角的这张。但是我们需要的是左上角的图为动画开始帧。所有很简单我们计算下左上角图片的X,Y的坐标就出了了。也就是x始终为0,y轴以0.25递增4次。好这时候又出问题了,0.25递增4才结果应该为1,但我们输入1的时候效果和当前一样。这是为什么呢。这是因为我们多计算了一部,因为走下角的图片坐标为0.0所有我们数一下,左边y轴第二张y移动0.25也就是x,0和y,0.25.再上面一张是多少呢y轴在移动0.25,就是x,0和y,0.5.以此类推,只需要再移动一次就是我们想要图片的坐标,就是x,0和y,0.75.我们把数值输入进去。如图
显示正确。
3.现在要做的就是给UV做动画了。uv动画的原理请参看tommy大神的博客http://jackie584.blog.163.com/bl ... 620201073105055849/
坐标的话按上面方法计算即可。做完动画后我们发现问题又来了,动画是滚动播放的而不是固定的在变化,这是什么问题呢,有MAX制作经验的同学应该瞬间领悟了,没错曲线出问题了。所以我们进入U3D的动画曲线,选择所有的点执行如图操作,
。这时候我们就实现了在模型中实现序列帧的效果了。哈哈
4.好,我们再接再厉,说起U3D粒子系统我们都知道,有一个能拉伸粒子的模块,但是我们又发现这种模块支持的贴图是横向的。而很多火焰序列通常是竖向的。直接用的话不能用拉伸因为效果出错,要是用正常粒子又会被压扁。发射模型又发现哎呦,粒子的序列不好使了。哎,就是这么纠结。
怎么办那,其实很简单。如果上述步骤制作出来以后你会有个序列帧动画,
,也可以有4x4,8x8等等依据序列贴图自己制作吧哈哈。好现在我们只需要给力子系统(发射模型的时候)加入
然后再拾取做好的动画文件
,OK。这时候我们想发射什么模型都可以有序列动画了。效果必须点击播放才能看到哦。粒子被压扁随随便便改改模型长度就好了。顺嘴说一句动画文件的循环与否就是这个序列是不是循环,只是设置一下就行了。速度快慢调节下帧数就好了。不过这有一个缺点我还没搞定,希望大神帮忙研究下,就是粒子喷出来的序列是同步的。。。(如果想做变化,得储备好几份动画文件)用几个发射器拾取不同动画文件,比较麻烦。
这是最后效果。
|