--------------------------------------------------------------------------------
我们在游戏见到的手榴弹爆炸、木仓口的火焰、awp的瞄准镜、雷达、金钱数、等等都是spr文件。从本质上来说:spr就是我们在游戏里见到的2D动画。对于初学的朋友,你可以这样理解:spr就是特殊的gif图像,gif图像大家很熟悉吧!!有静止的(只有一帧),也有动画的(有很多帧组成的gif)。Spr也是这样的。像爆炸。就是很多帧组成的动画spr,象awp准心!就是只有一帧的静止spr!
【 Spr文件的特点 】
细心的朋友或许会问。不对啊,你说spr是2D的,比如说一张纸上的图画,我正面看是图像,那么我侧面看岂不是见不到,因为是2D平面的啊?那为什么我见到的爆炸永远是立体的,我从来没有看过爆炸图像的侧面的情况?呵呵,是这样的!spr有一个特点:在游戏里面。Spr永远是和玩家的视角垂直的,也就是永远面向显示器屏的,所以我们见到的永远是spr文件的正面,我们在游戏里是永远看不到除正面以外的其他面的,你走到左!他就面向左,你到右他就面向右……(实际上,在制作SPR文件的时候它有特性的,默认状态下是永远面对屏幕,也可以选择其他方式,只是这点几乎没什么人知道罢了,想看侧面,其实是可以的)
Spr在制作的时候,有很多渲染模式,也就是类型,在用工具制作SPR文件的时候,最后会提示你选择一些模式,下面就是四种模式的解释:
Additive(附加模式):
这个模式很适合表现象爆炸、水蒸气、激光光线等等相关的气态物质或发光物质的现象。他在游戏场景里的特征是自身发亮,发光的光源(实质是照亮这个spr的光源啦!!可别和地图的light实体混淆在一起,呵呵,你可以理解为这种spr自带的光源)光源透过这个spr,我们就看到这个spr。我举一个例子:你这情形是你拿着胶卷底片对着太阳光看底片的内容的情形是一样的,底片就是spr,太阳就是我说的光源了!!大家明白了吧!说到这里,有牵扯出来一个spr透明的问题了,呵呵,不透明的看得到嘛!!对于这个模式,游戏引擎是这样处理的:他会统计这个spr里所有的纯白的像素(对应RGB:255 255 255)是完全不透明的,统计所有的纯黑的像素(对应RGB:0 0 0)是完全透明的。同时,里面所有介于这2个颜色之间的颜色的像素是作为适当的半透明颜色处理,这个半透明程度的处理是引擎根据spr的背景为依据自动处理的。另外:地图场景里的光线是不会直接影响到spr的,这样我们即使在全黑的场景里也能看到这个spr(做和黑夜的地图,进游戏扔颗手榴弹吧!是不是看的到爆炸啊?呵呵)
Indexalpha(索引模式):
这个模式的spr和附加模式是很相似的,也是有不透明到透明的像素组成,不过这个模式下,颜色的透明程度不是颜色决定的,而是有颜色在调色板的位置决定的,0号索引色是完全透明的,255号索引色是完全不透明的,当中依次类推
Alphatest(测试模式):
这个模式的spr很普通,他是没有半透明的色彩的,他唯一特殊的地方就是他有一个颜色是全透明的,就是调色板255号索引色对应的像素是全透明的。想想awp的瞄准镜吧!!除了准心其他的地方都是透明的!!就是因为使用了这个模式的spr,除准心以外的地方使用的都是第255号索引色的颜色,所以在游戏里我们可以通过这个区域看到场景!!呵呵还有一点。这个模式的spr对引擎的影响是很小的,虽然他的真实度没有前2者的模式的spr好看,但是从游戏fps的角度来说,他是影响最小的,你扔10颗烟雾弹包你再好的机器也变成放幻灯片,就是因为默认的烟雾单效果的spr是索引模式的,很杀fps,而这个模式的spr就不会了,所以,如果当你设计的地图需要大量的spr的时候,我建议你使用这个模式的spr,虽然难看一点,不真实一点,但至少不会杀fps,呵呵,仅仅是建议而已。质量和速度的选择权是在你的!
Normal(普通模式):
没有半透明没有透明色的普普通通的spr。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
其实做动态SPR也是很简单的,只是步骤相当繁琐,因为我只用fireworks和自带画图程序,所以下面说的只针对这两个工具而已:
动态也就是两张以上(包括两张)256色BMP图象组成的,但是就有点问题,如果你用fireworks将GIF动画导出多张256色BMP图象,再用SPR工具制作的话,它会提示你不能使用同一个调色板,但是你只使用一张的话,就可以,而且画面相当精细,这个时候,要把GIF导出成多张JPG文件,然后再用系统自带的画图程序打开,另存为256色位图,一次处理一张,有多张的时候,就比较繁琐了,然后把处理后的BMP就可以做成动态的SPR了,注意大小比例必须是8的整倍数。
[ 此贴被xiaochai在2008-01-18 15:08重新编辑 ]