首先我先叠叠甲,本人特效基本全部靠自我摸索,拆包学习,模版依赖,如有讲的不对的地方请大佬们轻喷,在此处仅分享我的心得和学习成果,问题我能回答会尽量回答的,但例如什么特效怎么学特效怎么做这种问题,我只有一句话特效是一定要去试要去拆要去练要去做,需要花费大量时间在上面的,如果你愿意学想学,总有路会让你学到的,OK就这样。
今天讲讲序列帧图片如何运用在特效上,什么是序列帧图片,你可以把他简单的理解成一种gif图片的每一帧分出来,通过uvs调用,efx行为等等方式,使得其显现出来。简单点说,dds轨迹我在前面讲过uvs的调用,那个时候星图是一种静态的图(看我教程一定要从头看,别乱跳),而我们这个时候,就需要把静态的图转化为动态来使用,但其实这种动态的感觉也只是很多静态的图的叠加,不过依旧只需要靠一个特效块来驱动他,而且这种特效块并不算突出,一般都是比较简单的块,例如:
就这种简单的块就行,然后我们怎么看出来他算是序列帧图片呢,观察uvs的调用:
在源文件中打开其的uvs,前面我说过,uvs其实实际上是一种路径文件,有点类似epv3文件,我们用olo打开它,拉到最下面观察
对比其模板id我们可知是这个903的bm图,依旧是解包出来观察就行,这里是图片:
我们可以看到这是一片一片的小雾,这可不像是能一起显现出来的牙子,既然这样我再回到uvs调用中介绍一下各个位置的说法(接下来是使用英文模板的时候了,中文模板unkn还是太多了,没法操作)
依旧是uvs调用,第一个int unkn0可以先跳了,这种是uvs调用显现的种类,其实没大必要,uvs file path index顾名思义,uvs这个文件的通道,和epv3文件的efx文件调用通道一样,也可以通过这个来反方向寻找bm贴图进行修改和编撰,long null跳过,接下来是int startingFrame 也就是图片帧开始的时候0就代表最开始的时候,这时候我们再回到贴图bm中
这里左上的第一个就是0,也就是帧图像开始的时候,随后下面的int startingFrameJitter 63 也就是8×8图片的最后那个一块到第一块中的所有块,都能通过随机变化来显现每一次变化的样子,就和范围抽奖是一样的,从0开始的后面63个,我随机抽取,抽到谁我显现谁就是这里的用处,然后是4个关键数值。
float animationSpeed:顾名思义,抽取速度嘛,一次一次的抽这个图片的每一位置的速度。
float animationSpeedJitter:随机速度变化,赋值后,他会在上一个固定speed中增加和减少这个值,使得抽取速度进行简单的变化
float animationAcceleration:动画加速度,加速度都知道吧,会让动作越快或者越慢,一般这里给1就会匀速了
loat animationAccelerationJitter:动画加速度随机变化,赋值后,他会在加速度的基础上增加和减少这个值,使得加速度进行变化,进一步影响普通速度的变化
int loopingEnum:循环的枚举,这个要是学过排列组合其实就知道了,后面还有注释;0就是没有变化,可以做那种定格的东西(不过是贴图,和mod3模型其实有点像不过使用状况得看);2随机重置,会让形状变化更多更杂,;9就是不断地枚举。这里是41emmm,其实就是不断的枚举,不过加了一些条件,什么呢我也不知道(这里是未来的我,进行对uvs的深入研究制作后发现了一些uvs调用的未能呈现在模板中的元素,这里特别进行一次简单的补充,
这里循环枚举的地方有四个16进制码,注释仅仅细分了最前面的一个的关键数字,而第二个也一样有他的用处,是用来控制调用的贴图显现在粒子上的方向的 0 正向上 1 正向右 2 正向左 3 正随机但绝不向下)
最后就是路径字节个数和路径了。
有很多地方都能用到这个,例如燃烧的火(一般是fire中)爆炸(shark里面的dds id:3)流水(liquid中,不过水流有更好用和显现的流动贴图块,我在后面会介绍)烟雾or蒸汽(smoke中我这边的举例已经基本说明了),还有许许多多的地方可以用到,嗯简单的gif图片,例如什么出现一道死一切二,一刀开天门啥的,哈哈想远了,都可以实现哦,不过这种请自己探索吧
好了先码这么多字,后面一章我会举例来进行修改和使用。