Macromedia公司新近推出的Director 8.5 Shockwave Studio,为在线用户和离线用户带来了互动的三维世界。较之以前的版本,Director的最大变化就是加入了Shockwave 3D引擎。通过Director 8.5,可以创建交互的三维影片。
Shockwave 3D的应用范围很广。从简单的三维文字动画,到交互的三维游戏环境,都可以通过Shockwave 3D技术表现出来。通过Netscape Navigator浏览器或Microsoft Internet Explorer等支持Shockwave的浏览器,用户可以浏览你的互动影片。不过需要安装Shockwave播放器,这种免费的播放器在很多的网站都可以下载。
Director为Shockwave 3D加入了几百条控制Lingo,结合Director本身功能,无疑在交互能力上Shockwave 3D具有强大的优势。
创建Shockwave 3D场景
用户可以通过Lingo来创建Shockwave 3D场景,不过要想创建复杂一些的场景就必须借助3DS MAX或MAYA等三维软件。我们以3DS MAX为例,Discreet公司提供了输出Director W3D格式文件的插件,该插件适用于4.0以上版本,供用户免费下载。你可以在www.discreet.com/products/3dsmax/exporter/
register/下载。解压缩后将文件名为SW3D_Exp.dle的文件复制到“3ds max 4”目录下的“plugcfg”子目录中,即可完成该插件的安装。
启动3DS MAX4,创建一组静态物体。该场景中包含一个苹果(Apple)、一个花瓶(Vase)和三个梨子(Pear01、Pear02和Pear03)。选择菜单命令“File→Export”即可导出为Shockwave 3D Scene Export (*.W3D)格式的文件(如图1)。
控制Shockwave 3D世界
选择菜单命令“File→Import”导入刚才建立的场景文件,在角色表中选中该文件,并将它拖动到舞台上。我们要实现的效果是:当用户按下向左箭头时,摄像机镜头就会向左移动,屏幕上的场景就会发生相应的变化。按下其他三个方向的箭头也会产生相应的移动。

图1
要想实现如此的功能,离开了Lingo是无法想象的。对于英文不太好的朋友来说,这实在不是一个好消息。还好,Macromedia公司为我们提供了3D Behaviors。即使你一点也不懂得Lingo,也可以轻松的创建和控制三维环境。
在开始我们的实例前,我们要了解一下关于3D Behaviors的一些知识。Director 8.5中包含了两种不同类型的3D Behaviors:Trigger(触发器)和Action(动作)。当用户某一动作(如鼠标单击)发生时,Trigger将向系统发出信号,从而引起指定的Action的执行。

图2
在Director中,Action又分成三种:Local Action(本地动作)、Public Action(全局动作)和Independent Action(独立动作)。当你把一个本地动作赋给一个Sprite后,该动作只能被赋给同一Sprite的触发器所触发。与本地动作不同的是:公共动作能被任何触发器触发,不管触发器是被赋给同一Sprite还是其他的Sprite。公共动作使用和本地动作一样的触发器,而独立动作根本无须触发器触发即可执行。比方说你可以使用独立动作中的Automatic Model Rotation,让场景中的某个模型自动旋转;利用Model Rollover Cursor,当你的鼠标指向某个模型时,指针将改变形状。