- 最后登录
- 2017-9-18
- 注册时间
- 2011-1-12
- 阅读权限
- 90
- 积分
- 12276
![Rank: 7](static/image/common//star_level3.gif) ![Rank: 7](static/image/common//star_level2.gif) ![Rank: 7](static/image/common//star_level1.gif)
- 纳金币
- 5568
- 精华
- 0
|
Macromedia公司新近推出的Director8.5ShockwaveStudio,为在线用户和离线用户带来了互动的三维世界。较之以前的版本,Director的最大变化就是加入了Shockwave3D引擎。通过Director8.5,可以创建交互的三维影片。
Shockwave3D的应用范围很广。从简单的三维文字动画,到交互的三维游戏环境,都可以通过Shockwave3D技术表现出来。通过NetscapeNavigator浏览器或MicrosoftInternetExplorer等支持Shockwave的浏览器,用户可以浏览你的互动影片。不过需要安装Shockwave播放器,这种免费的播放器在很多的网站都可以下载。
Director为Shockwave3D加入了几百条控制Lingo,结合Director本身功能,无疑在交互能力上Shockwave3D具有强大的优势。
创建Shockwave3D场景
用户可以通过Lingo来创建Shockwave3D场景,不过要想创建复杂一些的场景就必须借助3dsmax或maya等三维软件。我们以3DSMAX为例,Discreet公司提供了输出DirectorW3D格式文件的插件,该插件适用于4.0以上版本,供用户免费下载。你可以在www.discreet.com/products/3dsmax/exporter/
register/下载。解压缩后将文件名为SW3D_Exp.dle的文件复制到“3dsmax4”目录下的“plugcfg”子目录中,即可完成该插件的安装。
启动3DSMAX4,创建一组静态物体。该场景中包含一个苹果(Apple)、一个花瓶(Vase)和三个梨子(Pear01、Pear02和Pear03)。选择菜单命令“File→Export”即可导出为Shockwave3DSceneExport(*.W3D)格式的文件(如图1)。
控制Shockwave3D世界
选择菜单命令“File→Import”导入刚才建立的场景文件,在角色表中选中该文件,并将它拖动到舞台上。我们要实现的效果是:当用户按下向左箭头时,摄像机镜头就会向左移动,屏幕上的场景就会发生相应的变化。按下其他三个方向的箭头也会产生相应的移动。
![]()
要想实现如此的功能,离开了Lingo是无法想象的。对于英文不太好的朋友来说,这实在不是一个好消息。还好,Macromedia公司为我们提供了3DBehaviors。即使你一点也不懂得Lingo,也可以轻松的创建和控制三维环境。
在开始我们的实例前,我们要了解一下关于3DBehaviors的一些知识。Director8.5中包含了两种不同类型的3DBehaviors:Trigger(触发器)和Action(动作)。当用户某一动作(如鼠标单击)发生时,Trigger将向系统发出信号,从而引起指定的Action的执行
![]()
在Director中,Action又分成三种:LocalAction(本地动作)、PublicAction(全局动作)和IndependentAction(独立动作)。当你把一个本地动作赋给一个Sprite后,该动作只能被赋给同一Sprite的触发器所触发。与本地动作不同的是:公共动作能被任何触发器触发,不管触发器是被赋给同一Sprite还是其他的Sprite。公共动作使用和本地动作一样的触发器,而独立动作根本无须触发器触发即可执行。比方说你可以使用独立动作中的AutomaticModelRotation,让场景中的某个模型自动旋转;利用ModelRolloverCursor,当你的鼠标指向某个模型时,指针将改变形状。
制作实例
通过摄像机,你可以观察到你所建立起来的虚拟世界。和现实生活中的摄像机一样,你可以通过移动Director的摄像机,从不同的角度和距离观赏你的虚拟世界,就好像在其中漫步一样,感觉不错喔!
要想让摄像机产生向上、下、左、右等方向的移动,我们要用到库面板中的两个Behaviors。并且Director提供的参数窗口,可以让你精确地控制摄像机的移动:
1、单击工具栏上的库按钮,打开库面板(如图2),确保3DActionBehaviors处于显示状态。
2、拖动PanCameraHorizontalBehavior到舞台上的3D场景上,释放鼠标左键。
3、弹出一个对话框窗口,在DegreestoPanPerFrame后的输入框中,设置每帧移动的幅度为10。在“Whichgroupdoesthisbehaviorbelongto?”的文字框中输入Pan,创建一个名为Pan的组。需要注意的是:动作和它的触发器必须在同一个组内。
4、如果你这个时候单击播放按钮,事实上什么反应也没有。通常情况下,动作和触发器总是成对出现的。触发可以是键盘触发,也可以是鼠标触发。如果没有定义好键盘输入或鼠标输入发生,动作一般不会得以发生。(上文提到的独立动作除外)下面我们为PanCameraHorizontalbehavior添加触发器。在库列表中选择“3D→Triggers”,拖动KeyboardInput行为到舞台上的场景文件上。
5、弹出KeyboardInput参数设置窗口,在Whichkeywillbeused中选择LeftArrow,在SelectaGroupandItsAction中选择GroupPan-PanCameraLeft,即当用户按下左向箭头时,就将摄像机向左移动。
6、与上面的步骤类似,再次拖动KeyboardInput至场景文件上,在弹出的对话框中依次选择RightArrow和Pan-PanCameraRight即可设置当用户按下右向箭头时,将向右移动摄像机。
OK,现在就可以单击播放按钮,当你按下左向箭头时,就会看到场景左侧原来无法看见的部分。当你按下右向箭头时,镜头也会产生相应的运动。下面我们要做的就是让摄像机产生竖直方向的运动。
这次我们使用的是PanCameraVerticalbehavior行为,具体设置方法与上述类似,不再赘述。通过这一步骤我们将实现:当用户按下上向箭头(UpArrow)时,将镜头向上移动(PanCameraUp)。当用户按下向下箭头(DownArrow)时,将镜头向下移动(PanCameraDown)。 |
|