自动化跑车大制作(下)

IT商界

  上期我们在3DS MAX中完成了自动化跑车的模型制作,这一期我们将继续Cult3D Designer(下简称Cult3D)后半部分的工作。

  利用Cult3D制作三维互动效果

  运行Cult3D选择“File→Add Cult3D Designer File”,选择car.C3D文件,将三维模型导入到Cult3D中。

  1.拖动Event Map窗口左侧的World Start Event图标到Event Map窗口中。

  2.展开Actions窗口中的Object Motion选项,拖动Arcball到World Start图标上。

  3.拖动Scene Graph窗口中的dummy_车身到Arcball图标上。

  这时你的Event Map窗口应当如图1所示。

  此时点击预览窗口的播放按钮。就可以通过鼠标单击、右击或者齐按左右键来分别旋转、放大和移动汽车了。

  下面实现的效果是:当按下车门时,将打开车门。

  1.加入一个Left Mouse Click事件。

  2.在Event Map窗口中右击该事件图标,选择Change Name选项,更名为“Open”。

  3.双击“Open”图标,在弹出的对话框中,选择“车门1”对象作为触发事件的对象(如图2),单击OK按钮。

  4.拖动Actions窗口中Object Motions选项下的“Rotation XYZ”图标到“Open”图标上。

  5.拖动“dummy_door1”物体到“Rotation XYZ”图标上。

  接下来设置车门旋转的速度。

  1.右击“Rotation XYZ”图标(或者双击)打开旋转设置窗口。

  2.如图3所示设置旋转方向为绕Z轴旋转40度,动画时间为2000ms。

  预览,此时除了可以旋转移动汽车外,还可以打开车门目的地看(图4)。不过,当你再次单击时将出现问题:车门不是关闭了,而是旋转的角度更大了。解决的方法是再次加入一个鼠标单击事件,它将实现相反的旋转方向,这样就能关闭车门了。

  具体步骤和上面的过程类似。

  1.加入一个Left Mouse Click事件。

  2.将该事件更名为“Close”。

  3.双击“Close”图标,在弹出的对话框中,选择“车门1”对象作为触发事件的对象,单击OK按钮。

  4.拖动Actions窗口中Object Motions选项下的“Rotation XYZ”图标到“Close”图标上。

  5.拖动“dummy_door1”物体到“Rotation XYZ”图标上。

  6.打开新的“Rotation XYZ”图标的设置窗口。

  7.设置旋转方向为绕Z轴旋转-40度,动画时间仍为2000ms。

  你的Event Map窗口应当如图5所示,或许你的某个图标的位置和图上不一样,没有关系,但它们之间的关系必须是一致的。

  在预览窗口中,你会发现车门并不像我们所希望的那样旋转,事实上,车门一点反应也没有,连动都不能动了。这是很正常的现象,因为我们让电脑同时执行两个完全相反的动作,这在逻辑上也是站不住脚的。当我们按下鼠标时,系统无法判断是执行Open行为还是执行Close行为。

  我们所要做的是让这两件事情分开来执行,一次只执行一件事情。

  解决的方法是让Close事件在开始时失效,这样Open事件就能够执行了。

  1.右击“Close”事件图标。

  2.在弹出的菜单中,取消“Initial Activation”选项。

  此时“Close”图标将变灰色(如图6所示)。

  在预览状态下,你会发现我们又回到了先前的状态,那是因为我们让Close事件失效了,因此每单击一次,车门的旋转角度变得更大了。

  我们要实现的是第二次单击车门的时候,车门关上。怎样才能让计算机理解我们的意图呢?具体做法是当第一次点击车门的时候激活“Close”事件,并且同时使“Open”事件失效,这样当我们第二次点击车门的时候,车门就会乖乖的地关上。

  1.展开Actions窗口中的Event选项(图7)。

  2.拖动“Activate Event”到Event Map窗口中的“Open”图标上。

  3.拖动“Close”事件到“Activate Event”图标。

  4.回到Actions窗口,拖动“Deactivate Event”图标到“Open”事件。

  5.拖动“Open”图标到“Deactivate Event”图标。

  最终关系如图8所示。

  刚才的最后一步很重要,那么,怎样才能确保我们把“Open”图标拖回到“Deactivate Event”图标呢?右击“Deactivate Event”图标,选择Parameters选项,参数窗口应当如图9所示。

  预览一下我们所做的工作。第一次点击车门时,车门打开,第二次点击时,车门关闭。然而,当我们第三次点击时,车门继续往里旋转。问题出在哪里呢?

  让我们来分析一下Cult3D运行时的详细过程。

  第一次单击:

  将车门沿Z轴旋转40度;

  激活“Close”事件;

  使自己本身失效。

  第二次单击:

  将车门沿Z轴旋转-40度;

  和第一次单击比较一下,是不是少了些什么?问题就出在这里,我们要让第二次单击执行和第一次单击同样的任务。

  1.拖动一个“Activate Event”到“Close”图标上。

  2.拖动“Open”事件到新建的“Activate Event”图标上。

  3.回到Actions窗口,拖动“Deactivate Event”图标到“Close”事件。

  4.又是一个重要的步骤:拖动“Close”事件到新建的“Deactivate Event”图标上。

  最后的关系图如图10所示。

  现在,单击预览窗口下的播放按钮,体验一下完美的感觉吧(图11)。

  最后的工作你可以发布成Internet文件,并可以在其他程序(如Director)中使用了。

  这项技术可以用于任何物体,你完全可以创作出更酷的实例来。关键是要理解事件的激活与失效。