三维程序游戏制作基本常识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
很多flash3d初学者都是从flash或平面绘制转型的,对三维方面的常识的确理解甚少,即使是天天玩三维游戏的人。虽然这些信息对一些三维经验丰富的朋友是显然得不能再显然的东西,但写这一篇对某一些新上手的朋友是有必要的。
建模
除非简单几何体,任何复杂一点的模型和贴图位置,都只能靠其他三维软件导入,这不光是flash3d的常识,也是游戏制作的基本常识。
甚至很多朋友会以为既然用flash是可以‘画’图形的,那么用flash3d就能直接‘画’三维模型。
三维模型之所以叫做‘建’模,就一定和‘画’模有本质的区别。模型就像"一个灯笼框,外面粘着各种图画"一样,立体的‘灯笼框’肯定是不能简单的用笔‘画’出来的。
建模至少包括两个步骤:
1 模型的建立,每个顶点的空间位置的确定。
2 确定模型每个顶点对应的贴图位置,以便能够正确的贴图
而这两个步骤,人类不靠建模max,maya,xsi等等建模工具是无法完成的。
理论上来说,只要知道一个模型的所有顶点和对应的贴图位置,就能不靠三维软件也能建模,但问题就是稍复杂点的模型至少都是几百个点到几万个点,人类不靠三维软件是根本无法知道这些顶点和对应贴图的位置的。
具体如何导入外部模型,请参考《超简易papervision3D基础 第三篇 导入外部模型》->点击去教程
具体如何建漂亮的模型和贴图则是美工工作,网上有很多教程,和flash3d关系不大。电视剧难看,把电视抱着啃没什么用,对吧。
引擎
‘引擎’的定义现在看来已经包括三种:
1) 图形引擎
最简单的理解就是一个成像的东西。把三维的数据变成图像,放映给观众。就像一个电视机一样,把接收到的数据信息变成图像。 这是我们最早称作‘引擎’的东西。它的目的就是减少游戏编程者的工作,因为图形编程的工作量很庞大的,避免每次重复开发,和让游戏编程者尽量把精力集中在游戏本身的逻辑和规则的开发,而不是怎么显示图形上。现在很经典的游戏图形引擎比如DOOM,虚幻等等。Pv3d,away3d等等都是ActionScript写的图形引擎。
2) 动力引擎
个人认为动力引擎最初的目的应该是"编程人员向动画人员发起的挑战"。以前的三维游戏,动态全是靠动画人员制作出来。有些简单游戏使用动画人员又有些不必要,简单动作希望能用程序模拟出来。
动力引擎的好处是每次模拟出来的动态随受力不同会有改变,这是动画师无法达到的,因为动画师做出什么动作就是什么,无法随机变化,头发,布料,高处下落,吹飞,拖扯都是动力引擎的强项。但弊端是无法制作出复杂的动态,比如说跳肚皮舞(=_
=好冷)
所以现在的大作,一般都是动画师和动力引擎共同实现,动力引擎处理一些随机的动态,动画师(和动态捕捉)处理人物的基本动作。
游戏界hover这个三维动力引擎是非常有名的。Box2d是一个可以说小巧完美的flash的二维动力引擎,用它可以做一些非常有趣的小游戏。Wow则是我们flash3d的三维动力引擎,比起前两者还是非常不完善的。不知道以后会否有hover的支持,(shockwave是可以用hover的)
3) 游戏引擎
比如说我们现在说的‘《上古卷轴》引擎’的意思就是说能够轻松做出自制任务的引擎,这种引擎制作者根本不用考虑游戏的规则,逻辑判断,或者图形效果等等,大部分精力完全专著于制作任务就是了。也就是说,制作者根本对基本游戏规则没法修改,只能根据这个规则添加或改变内容。所以实际上这个东西以前是不叫做‘引擎’的,只是现在大家都喜欢这么称而已。
什么是三维
从物理概念来说,所有屏幕上显示的东西,都不是三维的,都是二维的。只有我们这些能被摸到的东西才是‘真的三维’。我们能触摸到屏幕,但触摸不到屏幕里显示的美女,对吧。所以屏幕是三维的,显示的美女是二维,即使这个在现实中存在的美女真人是三维的。
但我们平常所说的‘三维’,实际上一种在平面上模拟三维的成像技术,它除了‘左右上下’的移动,还多了‘看起来像’是‘里外’的移动(其实就是缩放)。
和‘看起来是否立体,玩起来是否立体’没有任何关系。
举例:《红侠Joe》和《勇者斗恶龙7》都是卡通渲染,看起来像是二维画的,但都是‘三维游戏’
举例:DC上的《斑鸠》和PS2上的《魂斗罗》都是只能平面的移动飞机和人物的游戏,但他们都是‘三维游戏’
"三维"的最大不清楚的地方是,区分"即时(实时)演算三维"和"渲染播放三维"
其实,从本质上来说,这两个的区别是‘即时(实时)演算三维’的渲染一张图的时间只有0.0几秒,而‘渲染播放三维’渲染一张图的时间需要很多个小时。
另一个区分方法就是"是否有交互的可能性"
举例:最终幻想10,12有很多玩家不能交互对白过场动画(不是指那种漂亮的渲染CG的过场动画),这些都是‘三维’的,虽然玩家不能交互,但有‘交互的可能性’,就是说制作者愿意,玩家是可以对对白场景进行各种旋转操作的。而那种漂亮的渲染CG是没有‘交互的可能性’的,不管制作者愿不愿意。
电影,三维动画片都是用‘渲染播放三维’,里面有生动真实的光影,毛发,凹凸等等。‘渲染播放三维’的画面是可以无限完美的,但它的弊端是无法立即做出交互式的
反应。导演开始渲染了什么镜头,观众就必须看什么画面。电影院没有观众自己能旋转镜头的说法吧。
但因为最终他们保存和播放都是以位图格式,所以我们都按游戏的观点,他们都是‘二维’的。所有三维电影都是游戏定义里的‘二维’,所以游戏开场动画这种不能交互的图像都是‘二维’的。
三维游戏中,玩家是需要立即交互反应的。我们不可能按一个前进键,然后傻坐着等1个月渲染出这个角色做出前进的动作吧。我们需要按前进键时,角色能立即作出动画上的反应。也就是说,如果渲染速度达不到0.0几秒渲染一张图,玩家就会觉得‘卡’。
正因为要达到这个速度,所以游戏画面虽然越来越华丽,但游戏角色始终比电影角色看起来要简陋些的原因
但随着图形技术和硬件的不断进化,几十年后这两个称呼也许会统一起来。
另:我们很多游戏制作和产品演示中,有一种把三维模型先渲染出几个方向存起来的方法。
这些都是‘二维’的,即使模型看起来是三维的,也可以旋转。它的优势是对图形运算需求很低。弊端是旋转只能有开始渲染出来的方向,没渲染的角度就没有,旋转不流畅。
举例:游戏里暗黑破坏神1,2,和现在很多汽车,服装展示。