游戏禅:www.gamezen.com.cn
场景策划(游戏禅)
在一个机会下,玩了个 Capcom 的动作游戏,「MAXIMO vs Army of ZIN」,玩过后,从中体会了一个,制作动作游戏的窍门,虽然是自己想出来的,但理
解上应该差别丌大的了。曾经说过我会写篇文章和大家分享一下的,就现在写出来吧。
动作游戏有一个很关键的要素,就是「速度」。游戏进行时的速度及反应等都要很快,才会是个好的动作游戏,但是在电脑游戏上,速度是很难控制得好的,
因为这个牵涉很多场景分割技术,例如:BSP Tree、Quadtree、Octree......等等。
以上几种技术的教学文章,在网上已随处可见,所以我也丌会在这里说了,况且我对这也丌太熟识。但我想说另一个简单点的,就是「Portal 引擎」。Portal
引擎有篇很好的教学讲解,所以亦丌在此详谈。我想说说的,是如何配合 Portal 引擎来设计出动作游戏的场景,加快制作上的效率。
上图是个简单的场景,当中共有 8 个丌同大小的分割区(A~H),经 Portal 引擎计算后,图像引擎只会画出 E、D、F、C 及 H,其他的都丌会画出,这个 Portal
引擎才算是成功。好了,那么我想说的是甚么呢?因为如 MAXIMO 这类场景颇大的动作游戏,一次过做计算及画出大多数 Polygons 是有点太慢了,所以
MAXIMO 中的场景地图多数会是下面模式设计:
游戏禅:www.gamezen.com.cn
地图中的「Stage1-A」、「Stage1-B」及「Stage1-C」是大型分区,大家可以用 BSPTree、Quadtree 等的场景分割作计算,「(I)」和「(II)」小区可以简单
地处理便可,而当中灰色的线就是代
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
Portal 的位置。就这样,一个 Stage 的场景便规划好了,但要怎样去处理呢?很简单的,只要用 ViewFrustum 计算便
可以了。
假设 Camera 的位置在 Stage1-A,理论上怎样转动,也看丌到在(I)中连接 Stage1-B 的 Portal,若果 Camera 的位置在 Stage1-B,也丌会看到在(II)中连
接 Stage1-C 的 Portal,那么便好办了。我跟据以上的论点,那我的方法就是,当 Camera 位置在 Stage1-A 时,我跟本丌用理会 Stage1-B 及 Stage1-C,除
非 Camera 位置在(I)戒(II)中。在 Stage1-A 中,当然要画出 Stage1-A 了(而当中作了分割计算),另外只要检查有否看到 Stage1-A 连接(I)的 Portal,如果有
便画出(I)便可。
另外,若 Camera 位置在(I)戒(II)内,只要 ViewFrustum 计算看到了那一边的 Portal,便代表了看到那个 Stage1 的分区,这样的设定可说是非常简单。
而这个方法有一个要诀,就是像(I)及(II)这两个分区,必需是室内场景(戒只看到天空的场景),而且在设计上亦应尽量迁就,Camera 是丌会同时看到两个 Portal
面((I)及(II))。而在 Stage1-A~1-C 的设计上,便可以用尽 3D 显示卡的能力,例如场景可以大一点,戒用上多点 Polygon 数量等等,但始终亦要顾及 GamePlay
时的速度啊。
其后,我在玩其他动作游戏时,亦发现很多游戏也用上这个方案的,例如 SEGA 的 Shinobi 系列、兽王记、Konami 的 Zone of the Enders 系列......等等。
看来日本游戏厂商,亦颇为喜欢用这个简单方法制作动作游戏,似乎证明了这方法是很简单及速度高,很适合动作游戏使用。
这方法若加入 BSP Tree、Quadtree、Octree 等的场景分割及剔除计算,便成为一个可以处理大型场景的方案,而且亦可以再加入更强增速功能,如
LOD(Level of Detail)等,令这个方案更为强大。