Virtools精彩实例教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Virtools精彩实例教程 - Virtools (1)
2007-01-28 16:23:20 作者:佚名来源:互联网浏览次数:980 文字大小:【大】【中】【小】
自从大型电玩VR快打上市以后,游戏业界便开始吹起了3D的风潮。
当时每次到游艺场,总会看到游戏台上挤满了一堆等着对打的人群。
这对当时游戏界还是以2D平面造型为主流的情况下,实时3D 运算的效果所带给玩家的冲击可以说是相当的大的。
也因此带动了整个游戏界转而开始研究起实时3 D的游戏。
当然在一开始的过渡期中。
游戏公司常会以在动画软件里头预先着色(Pre-Render)出图形,然后再以传统的2D秀图的方式产生动态效果以产生”假3D”的感觉。
不过慢慢的,随着经验的累积以及3D引擎的研发技术成熟。
真正的实时3D游戏就如雨后春笋般的一个一个冒上来,而且更随着硬件技术的提升与玩家的期待,实时3D的游戏其多边形的数量愈来愈高,这代表着角色的造型愈来愈精致(各位可以比较VR快打一代到最新的VR快打四代之间的差异就可以了解其进化的程度了)。
算一算,从VR快打至今,也才不过十来个年头。
国内在当时虽然也是十分的轰动,但是相对于3D游戏的大受欢迎以及国外厂商的竞相投入,国内的游戏公司,却几乎没有人敢踏入这个领域。
开发实时3D的游戏或者其它相关的多媒体,首先冲击到的,就是研发人员。
不管是程序设计师或者是美术人员,他们都必须要去面临一个完全陌生的东西。
在当初,3D动画软件还是许多人连碰都没有碰过的东西,自然很难以理解要做出一个这样的游戏,美术人员需要”用手画出多少张的图才行啊?”。
当时的我,只能佩服日本的美术人员”毅力十足”。
而随着神秘面纱慢慢的褪去,笔者才大致了解到实时3D的制作概念。
当然,连笔者都能知道的东西,我想在游戏界里头应该已经都不是秘密了。
只是,即使知道了该怎么做,国内投入这个领域的,还是几乎为零。
这是为什么呢?
答案是,3D引擎的开发旷日废时。
要研发一套3D游戏,可能代表着你必须投入相当多的人力、物力,以及财力才行。
因为你必须要去开发一套3D引擎。
以国内游戏界的生态来说,在市场环境以及公司规模都明显跟国外有差距的情况下,贸然投入研发3D游戏,是一件相当冒险的事情。
就笔者所知道的,国内就有几家游戏公司因为研发3D游戏,到最后关门大吉的。
因为3D引擎并不是每家游戏公司都有能力来开发,因此就有公司会来贩卖自己开发的3D引擎。
这个例子国外也有,国内也有。
不过国内的游戏公司倒是有个非常有趣的情形。
就是虽然知道3D引擎有得买,但是他们宁愿自己来开发。
因为大多数的老板总是不想被人家绑手绑脚的,万一买来的引擎碰到无法解决的问题时,没有办法Debug那可怎么办?产品可就无法完成了。
我也曾经问过一些程序人员,他们也往往因为这些原因而对别家公司开发的3D引擎敬而远之。
而宁愿投入大量的时间与金钱来自行研发”属于自己”的3D 引擎。
当然,另外还有一个原因,是3D引擎通常价格不菲。
在国内,笔者曾经接触过的3D引擎光是授权费就要50万左右,而且还约定游戏出版之后要付一个定额的权利金。
国外的3D引擎就更不用说了。
动辄需要百万台币的价格。
这对国内许多小型游戏公司来说,自是一笔相当庞大的花费。
而且即便是大公司,也不见得愿意花这笔钱来购买呢!
所幸目前在市面上开始出现了低价版的3D引擎类软件。
而其中,又以由Virtools公司所开发,国内由爱迪斯科技所代理的Virtools表现最为抢眼。
因为它可以在很短的时间内,让你的3D对象在这个虚拟的环境中产生互动。
在Virtools里头,你只要将完成的3D模型加载。
并为他们指定相关的”行为模块”(Behavior)”。
按下播放键就可以马上看到结果了。
你可以经由这套软件来制作交互式多媒体。
甚至是交互式网页,让你的成品就是与众不同。
(注:如果您要从网页里头看到Virtools的作品,您必须安装其WebPlayer的播放程序。
这是一套免费的软件。
安装玩WebPlayer之后,您就可以透过IE来观看经由Virtools所完成的作品了(见附图一,附图二))。
Virtools 在程序里头总共分成几个区域(见附图三)。
左上角为3D Layout 区。
你可以在这一区里头看到3D 对象在整个环境里头的运作情形。
也可以在这一区里头针对个别对象做编辑(移动,旋转,缩放…。
等)动作。
选取对象的方法很简单而直接,你只要使用鼠标点选你想编辑的对象,当对象外围出现立方体框架的时候,就表示你已经将它选取了(见附图四)。
新增场景里头的工具(摄影机。
灯光…。
等),以及镜头位置的调整。
右边的Building Blocks区可以说是在Virtools里头让你的3D对象产生互动效果的神奇武器。
里头分门别类就有19项之多。
不管是针对人物角色,摄影机,灯光,控制器…。
等。
都有相关的行为模块可以选择。
你只要将适当的行为模块赋予到适当的3D对象,则该对象变会具备该模块的特性。
举例来说吧。
一个3D的人物在游戏里头需要具备哪些属性呢?因为它需要能够有动作,因此必须对它指定”Movement(动作)”行为模块。
而我们也必须有办法对它来做操控的动作,因此我们需要对它指定”Co ntroller(控制)”行为模块。
另外,我们也得针对角色做某些限制与设定,比如让角色始终贴近地面上而不是浮在半空中或是沉到地面下,因此我们必须对它指定”Constraint(限制)”行为模块。
而当你对3 D对象指定了行为模块后,底下的Schematic区里头就会产生相关的模块方块出来。
让你很容易的辨识这些行为模块(见附图五)。
这些动作如果不是利用3D引擎来做设定,而是由程序人员以指令方式来编写的话。
想必得花费不少时间。
以下笔者就大致介绍一下如何在Virtools里头将刚刚所提到的这些行为模块指定到角色身上。
在附图六里头,你可以看到有一个3D的角色在里头(见附图六)。
这个角色以及背景对象是怎么来的呢?它是由Data Resource里头以鼠标拖拉到3D Layout所产生的。
你可以注意到在Building Block标签的右边多了一个Demo Resource的标签。
相关的模型就被放置在这个地方。
你可以自行设定Resource目录,不过在目录的架构上是有一定的规范的。
比如人物角色就必须要放在Character里头,而其动作则需要放在Character目录里的Animation目录里。
声音文件必须放在Sounds目录里头…。
等。
如果你没有按照规定来放置你的相关档案的话,你所新增的Resourc e数据里头将空无一物(见附图七)。
我们继续刚刚的话题。
为了让人物可以在画面上做动作。
因此我们必须要告诉Virtools它本身具有哪些动作。
在Characters->Animations里头有四组动作,我们用鼠标全部选取之后拖拉进3D Layout窗口里头,并给予这个人物角色。
此时,这个人物角色就已经具备有四组动作了(见附图八)。
接下来,我们要在Virtools里头指定相关的动作对应。
虽然我们已经告诉Virtools这个角色具备四组动作,但是Virtools没有那么聪明,光凭文件名称就可以知道这是什么动作,因此我们必须对这个3D角色指定行为模块。
我们切换到Building Block区,在Characters->Movement里头找到Character Controll er这个行为模块,将它拖拉给这个3D人物。
此时会弹出一个参数编辑面板,在此,你就可以指定相关的动作告知Virtools那个文件名称要对应到哪个动作(见附图九)。
按下右下方的播放键,你可以发现你的角色目前已经会做出动作了。
不过另外一个问题来了。
这个角色的动作可不是只有一个,我们明明有指定走路的动作啊。
要怎么让他走呢?喔~原来我们忘了对它指定控制的方式。
我们在Building Block的Controller里头,选择Keyboard(键盘)->Keyboard Control ler。
并指定此行为模式给3D人物(见附图十)。
接着按下Virtools右下方的播放键。
并以键盘右边的上下左右键来控制,你会发现人物角色已经可以自由的游走整个区域了(见附图十一)。
接下来的问题是。
人物角色可能因为当初在3D软件里头输出时,位置不是摆放的很适当,因此人物看起来似乎是浮在半空中的。
因此我们必须告诉Virtools,请它将人物贴在地面上。
不过我们必须要先告诉Virtools什么是地面。
在画面中,你可以很清楚的看到这间房间的地板。
当然这个地板对象理所当然的就是我们所谓的地面了。
我们选取这个地板对象,在Level Manager区里头找到这个地板对象的名称之后,使用鼠标右键选择Add Attribute,并在其选单的Floor Manager里头选择Floor,按下Add Selected按钮,这个地板对象便具有地面属性了(见附图十二)。
当然,指定地面属性还是不够的,因为我们的角色并没有被要求要被贴紧地面,因此我们必须要告诉Virtools要让角色贴紧地面做动作。
我们在Building Block区里头的Character->Constraint里头选择C haracter Keep On Floor这个行为模块,并将此行为模块赋予我们的3D角色。
接着,按下播放键,你会发现人物已经不再浮在半空中,而是紧贴着地面做动作了(见附图十三)。
以上只是简单的针对人物角色的一些处理状况做说明,其实要设定得更深入的话,你还有许多工作需要去做。
比如主角目前并没有设定碰撞侦测的行为模式,因此当他碰到障碍物(比如墙壁,或是最明显的,他身后的计算机对象)的时候,他将会使出”超能力”直接穿墙而过(见附图十四);
又或是因为你没有针对摄影机指定跟随3D角色的行为模式,因此摄影机将固定在某个地方。
当你的角色离开摄影机的能见范围之后,角色就看不见了(见附图十五)…。
当然,这些问题Virtools都帮你想好了。
也因此,你都可以在Building Block区里头找到解决的方法。
当然,在要能够利用Virtools这套软件之前,还有一个先前的准备工作,就是关于3D模型的部份。
Vi rtools支持LightWave 3D,Maya以及3D Max,因其针对了这三套软件都有编写输出到Virtools的外挂程序。
这表示如果你是这几套动画软件其中之一的使用者的话,你就可以很轻松的在你所擅长的动画软件里头完成所有模型建构以及动画制作的工作,然后将完成的模型或是动作输出到Virtools里头。
在此笔者将以LightWave输出到Virtools的流程做一个大概的说明。
首先,你必须在Modeler里头产生一个角色模型。
设好骨架以及Weight Map之后,进入Layout以产生Bone(见附图十六)。
接着在Scene->Generics里头找到Virtools_Export_Layout这个外挂程序(注:Virtools的LW输出外挂程序是一个。
DLL的档案格式,你可以使用Add Plugin指令将它加入,它在Layout以及Modeler各有一个)。
在此必须说明的,在输出角色相关数据的时候,建议你将模型以及动作分开储存。
这样日后比较好做归类整理。
在此我们先来输出模型部份。
当开启Virtools的输出程序后,我们只勾选Export O bjects,Export Bone以及Export As Character三个选项,并确定其它选项没有被勾选。
如此才能输出”干净”的模型数据(见附图十七)。
按下确定之后,请将它存放于Resource目录的Characters里头(见附图十八)。
关于Resource的新增,你可以在Virtools的Resources选单里头选择Create New Data Resource选项,Vi rtools在你给它一个名称之后,便会自动建构出这个Resource数据夹里头所有相关的目录。
接着,你可以开始对你的角色产生一些基本动作。
比如站立,走路…。
等。
调整好动作之后,我们一样执行这个输出程序。
这一次我们只勾选Export Animation Only选项,并在下面的Start Frame以及Ending Frame里头设定这个动作的开始以及结束画面数(见附图十九)。
按下OK之后,会出现要你指定存盘位置的对话框,请将它存放在Resource数据夹里头Characters->A nimations这个目录底下(见附图二十)。
还记得吗?刚才我们是将模型档案存放在它的上一层Characters里头的。
进入Virtools,我们开启Resource数据库,你可以在Characters里头找到刚刚我们输出的3D角色,使用鼠标将角色拖进3D Layout窗口里头。
接着在Animations里头,你也可以找到我们输出的动作档案,一样的将它们指定给这个3D角色(见附图二十一)。
上一篇:
Virtools 实例教程:摄像机的环道跟踪设置(英文) - Virtools
下一篇:封装VT 文件到一个EXE 文件中的方法 - Virtools 接下来的做法跟之前提到的一样。
当你指定Character Controller 以及Keyboard Controller 行为模式给这个3D 人物之后,你的角色就可以在画面里头自由的做出你设定的动作了。
如何,Virtools 是不是非常的有趣呢?当然,这对我们这些从事3D 方面工作的人来说,确实是一个很不错的工具,至少它提供了我们一个简易的编辑环境,让我们可以很简单的将3D 物件透过Virtools 让它们开始有了生命而不须要去学习复杂的程序语法。
或许有人会质疑使用这样的软件可以做出什么样的成品呢?关于这样的疑问,相信你只要到国内代理商爱迪斯科技或是国外开发厂商Virtools 的网站里头,你就能够找出答案了。
在学习的过程中,建议你多去参考Virtools 里头的范例档案,因为这些档案都会有它想要表现出来的效果,而表现出这些效果所需要用到的行为模块,正是我们所要参考的地方。
另外,国内的代理公司爱迪斯科技,也有将一些说明文件做了中文化的动作。
这些都是在学习时不可或缺的参考数据。