《汽车虚拟仿真项目实战项目指导书.docx》由会员分享,可在线阅读,更多相关《汽车虚拟仿真项目实战项目指导书.docx(66页珍藏版)》请在三一办公上搜索。
1、虚拟仿真项目实战案例指导虚拟仿真项目实战项目名称:汽车虚拟仿真展示设计第一部分 课程目的Virtools Dev开发工具除了进行多媒体和游戏编辑制作外,更能灵活的应用到各行各业的商品展示上,此章利用简单的汽车样品展示范例,来说明Virtools Dev开发工具在商品展示上的便利性,更以此范例,让初学者轻松上手Virtools Dev开发工具,认识编辑流程。第二部分 制作过程对象的建立和初始设定1 请选择Resources/Open Data Resource,选择光盘里的素材/VTrsc2.rsc,这样便可以加载本书的教学素材数据库了。2 载入的车子对象VTrsc2.rsc/Character
2、s/EVOcar.nmo,并将之调整到适当的位置、方向和大小,然后按下Set IC For Selected设定其初始值,此时Level Manager窗口里的evocar角色对象的IC处会显示X也就是已经设定其初始值了。车身反射材质的制作1 在Level Manager/Materials里可以找到该车子模型的全部材质,car body、car_window2、car window、car logo、car item。2 因为我们要使用材质来制作车子的反射特效,但是真正的车子也有像轮胎那部分,是没有反射质感的,所以当我们在制作3D模型时,就要先考虑何处材质需要用到哪种特效,何处材质无需用到特
3、效,把一个模型的材质,做有效的规划和管理,像这次的模型,car item是车子轮胎和车头灯的材质,所以无需设置反射质感;而其他的car body(车体材质)、car_window2(车窗边缘材质)、car window(车窗材质)、car logo(车子标志材质)都是需要设定制作反射质感效果的。3 所以请先选择car body,并快速点击鼠标左键两下,就可以开启其车身的材质设置窗口。4 请载入VTrsc2.rsc/Textures/background002.tga来当反射材质的纹理图像,接着将car body的材质设置窗口里的Texture,设定成刚刚加载的纹理文件background002
4、.tga。5 如果觉得车身的颜色太过黯淡可以调整材质的Emissive(放射)去设定其亮度,但此时会发现车身还没有明显的金属质感出现。6 接下来要设定反射的贴图效果,所以请点击car_body材质设定栏里的Effect(特效)选项,然后选择其中的Tex Gen(纹理生成)。7 接着在该Tex Gen Type(纹理生成类型)中选择Reflect(反射),此时就可以转转镜头试试,会看到车子的车身表面产生了金属反射效果。8 利用此方式也将car_window2、car window、car logo等三个材质都设定成反射的效果。镜像反射地板设定1 载入VTrsc2.rsc/3D Entities/
5、floor01.nmo地板对象于场景中,并设定好其初始定值。2 点击Level Manager/Character/evocar对象,按下鼠标右键,此时会开启编辑菜单,选择Add Attributes(添加属性)。3 在Select Attribute Type菜单里选择Visuals FX/Reflected Object(反射对象),然后按下Add Selected(新增选择),这样就可以设定车子本身为一个会被反射的对象。4 但因为这样增加属性是属于简便方式,如果对于属性是否设定完成存有怀疑,那就请单击该对象,然后按下鼠标右键打开编辑窗口,点击SEtup便会跳出该角色对象的设置窗口,然后选
6、择左边选项的Attribute,便会跳出该对象的属性数据域,这样就可以明确的了解该对象到底设置了哪些属性,当然在该窗口也可以设定增加新的属性,只是这样比较麻烦而已,最后不要忘记了要再次设定一次车子的初始值。5 接下来制定地板的镜像反射效果,点击floor对象,然后按下鼠标右键打开其编辑窗口,选择Create Script ,接着请点击Schematic(流程图)编辑窗口,就可以看到floor01对象的Script了。6 加入BB/Visuals/FX/Planar Reflection(平面反射对象)于floor01的Script里,并与Start连接上。7 鼠标左键双击Planar Refl
7、ection模块,可以打开该模块的设置窗口,设定对应的group群组与镜面反射的轴向,在此维持原本的设定即可。接着按下窗口右下角的Play键可以执行所编辑的流程,但在此却发现并没有如预期中呈现地板镜像反射的效果。8 其实平面镜像发射的效果是将需要反射的对象依照所设定的轴向对称地复制一份,也就是说并不是真的产生了反射,而是一种障眼法,所以,无法把效果显示出来原因非常简单,就是地板将下面所复制的对称对象遮住了,因此解决的方法就是把地板对象的材质设定成半透明就行了。在此请打开floor01的材质设定,将Mode(模式)设定为Transparent(透明),接着设定Diffuse颜色项目的Alpha值
8、为200。9 再一次按下Play可以发现镜像反射的效果已经产生了。摄像机的设定1 请按下左边Create Camera的按键创造一个新的摄像机,而此时会发现显示窗口已经变成该摄像机的视点,接着于Level Manager/Global/Cameras里找到该新增的摄像机,选择该摄影机,按下按键F2便可以重新命名,我们将摄影机的名称取名为Camera01。2 左边的摄影机控制窗口可以调整摄影机的位置及其视野景深等,设定完后不要忘记要设定其初始值,接着创造该摄影机的Script,并加入BB/Cameras/Movement/Keyboard Camera Orbit(键盘环绕摄影机)。 3 打开K
9、eyboard Camera Orbit模块窗口,将Target Referential(参照目标)设定为evocar车子角色对象, Move Speed(移动速度)设为100,Return Speed(返回速度)设为0,Min Horizontal(最小水平旋转角度)设为-1圈,Min Horizontal(最大水平旋转角度)设为1圈, Min Vertical(最小垂直旋转角度)设为-30,Max Horizontal(最大垂直旋转角度)设为15, Zoom Speed(缩放速度)设为40,Zoom Min(缩放最小值)设为-40,Zoom Max(缩放最大值)设为10.4 再用鼠标右键点
10、击Keyboard Camera Orbit模块打开编辑菜单,请选择Edit Settings(编辑设置)便可以打开其模块的按键对应控制窗口,在这里我们设定Limit(限制),Returns(返回),Key Rotate Left(键盘左转)对应为A,Key Rotate Right(键盘右转)对应为D,Key Rotate Up(键盘上转)对应为W,Key Rotate Dwon(键盘下转)对应为X,Key Zoom In(键盘拉近)对应为Q,Key Zoom Out(键盘拉远)对应为E.5 按下Play测试看看,这样就可以利用所设定的按键来控制摄影机的视角了。灯头和头灯特效设定1 请按下左
11、边Create Light的按键创造一个灯光,在Level Manager/Global/Lights找到新的灯光,命名为L_light(左车灯)后,于左方对象调整区,调整其位置和大小置于Evocar.nmo车子对象模型的左车灯的前面。 2 之后一样在Level Manager/Global/Lights里,点击L_light按下鼠标右键打开编辑窗口,点击Setup便会跳出L_light对象的设置窗口,把设置窗口中的Type,从Point(点光源)改为Spot(聚光灯),之后调整Spot方式特有的黄色方向线,使灯光的投射方向符合车子车灯的投射方式,最后任意调整设置窗口里的Influence/R
12、ange(照亮范围),完成后可按IC来设定初始状态。3 加入VTrsc2/Textures/sun01.tga的亮光特效用Texture ,之后一样点击Level Manager/Global/Light里的L_light,按下鼠标右键打开编辑窗口,点击Create Script来开启L_light的Script,并加入 BB/Lights/FX/Lens Flare(镜头光晕),连接Start后打开Lens Flare,把里面的Flare Texture(光斑纹理)设定成刚导入的sun01,而Size Scale(尺寸大小)设成X:0.3、Y:0.3 。4 按下界面右下角的Play键,便能看
13、到车灯特效。5 用上面方法,同样制造车子的右车灯,并取名为R_light,这样两个车灯就OK了。6 接着,要在车子四周创造环境灯,一样按下左边Create Light 的按键创造一个新的灯光,取名为sky_light1,并随意调整其位置于车子四周,设定大小,Setup和确定初始IC,与车灯不同的是TYPE不需要更改设定,用Point(点光源)就可以了,设定好之后按下Play,在此却发现画面上并无任何变化。7 原因在于之前在设定车子和地板的Material(材质)时,材质的Emissive(放射)调的太亮,应该调暗点才对,因为Emissive的作用,在于对应的Material是否自行发光,如果车
14、子和地板上的Material全部发光,也代表车子和地板自己本身会自行发光。如此,如果我们创造环境灯在车子和地板四周,光的效果就会被车子本身发出的光盖住,所以我们才会感觉没有变化。由此可知,我们应该把车子和地板模型的全部材质(car body、car_window2、car window、car logo、car item和floor01)的Emissive值都调整到少量自发光的数值,之后再按Play,就会发现已经有变化了。8 利用创造环境灯sky_light1的方法,再创造其他三盏灯,分别取名为sky_light2、sky_light3、sky_light4,且让四盏环境灯分别放在车子的前后左
15、右四周,再按下Play,这样特效灯和环境灯就设置完毕了。 车身变色和展示功能菜单设置 随意变换3D模型的颜色,在现今不管是单机游戏或是在线游戏,都是非常常见的一种功能,尤其是RPG类型游戏,开始游戏时,会要求玩家创造自己的角色,并且选择角色的发色和肤色等,就要用的此技术,而功能强大的Virtools Dev开发工具,当然能轻松做出这种技术,现在我们就用最不耗效能的方法,把这种变换3D模型颜色的技术,用在我们刚刚创造好的车子模型上。1 首先我们需要一个控制菜单,所以先按下左边的Create 2D Frame,来创建一个2D Frame(平面的对象),并在Level Manager/Global/
16、2D Frames找到新创建的2D Frame,并把它取名为modify_skin,之后调整它的位置和大小到画面上方。 2 因为我们创的2D Frame,现在还没有材质,所以是空心的,点击左边的Create Material(创建材质),之后一样去Level Manager/Global/Materials找到新创的Material,并取名为modify_skin,开启Level Manager/Global/2D Frames/modify_skin的Setup设置窗口,把窗口里的Material,设成刚刚创立且取同名的modify_skin,并且在General/Homogeneous C
17、oordinates选项里打X选取,这样2D Frame就会以屏幕比例为位置依据,最后在Position/Z Order设为-2.3 已经有材质后,可以在Level Manager/Global/2D Frames/modify_skin按右键选择Setup,来开启Materials/modify_skin的设置窗口,更改窗口的Diffuse,来调整Material的颜色,也由此改变2D Frame的颜色。 这样,大型菜单就制作完成了。不过还需要制作大菜单里的小选项!所以用上面说明的2D Frame、Material制作方法,来制作其他小选项吧,顺便当做练习。4 而小选项的做法和大菜单一样,唯
18、一不同之处在于 2D Frame的Setup设置窗口里面的Position/Z Order,要设定成-1,这样才能让小选项迭加在大菜单上。5 小选项共需要11个,因为太多,而且做法都和以上叙述的一样,所以为了方便读者学习,请直接使用VTrsc素材里面已经帮读者做好的模块,删除刚才练习所创造的2D Frame、Material,直接加载VTrsc2.rsc/3D Entities/evo_modify_skin.nmo,之后会发现大菜单和11个小选项,不管是2D Frame对象本身还是Material,都已经创造完成!不过12个2D Frame都还没有设定大小位置和初始IC,所以请一个一个设定大
19、小,调到喜欢的位置,并到Setup窗口里的General/Homogeneous Coordinates选项里打X,以变成屏幕比例显示,之后初始IC。6 现在我们就开始来制作菜单吧。点击Level Manager/Global/2D Frames/modify_skin的大菜单2D Frame,按右键选择Create Script开启2D Frames/modify_skin的Script。7 加入BB/Controllers/Mouse/Mouse Waiter(鼠标等待器)和BB/Interface/Screen/2D Picking(2D鼠标点击状态判断)。8 接着让Mouse Wait
20、er的执行输入On和Start连接,2D Picking的执行输入In和Mouse Waiter的执行输出Left Button Down Received(接收到鼠标左键按下的信息)连接,如此当执行Play时,我们只要按下鼠标左键,Mouse Waiter就会开启Left Button Down Received而执行2D Picking。9 点击2D Picking下方的Sprite数值输出端,按右键选择Copy,点击后再旁边空白处按右键选择Paste as Shortcut(粘贴为快捷方式 ),来开启输出端Sprite对应快捷方式.10 再点击刚刚创建出来的Sprite快捷方式,按鼠标右
21、键选择Change Parameter Display Spacebar(按空格键改变参数显示方式),跳出Spacebar的菜单后,请选择Name and Value(名字和数值),如此我们就可以轻松观察Sprite输出端的变化。11 为了看Sprite输出端的变化,我们先按下Play,并且点击上面的大菜单和小选项,之后会发现我们点击的大小菜单2D Frames名称,都会显示在Sprite输出端上,所以简单的说,2D Picking是用来帮我们去的我们目前鼠标点击到什么对象的程序。12 再加入BB/Logics/Streaming/Switch On Parameter(转接参数)到2D Fr
22、ames/modify_skin的Script里,并让2D Picking的执行输出端True,连接Switch On Parameter的执行输入端In;而2D Picking的执行输出端False连回Mouse Waiter的执行输入端。13 点击Switch On Parameter的参数输入端Test,把数据类型从Float改成2D Entity,并且让2D Picking的Sprite输出端连到Switch On Parameter的参数输入端。 因为Switch On Parameter的作用在于,用参数输入端Test的参数值当一个参考点,来对比下方的其他参数值是否和它一样,如果有
23、参数值和Test一样,就开启相对应的输出执行端。14 如果不懂也没关系,首先先点击Switch On Parameter打开设置窗口,并将Pin 1设定成2D Frame的Car_Color1。15 这样设定就表示当你执行Play时,用鼠标点击上面的红色小选项,点击的2D Frame名称Car_Color1,2D Picking马上就会抓到,并且在Sprite端输出给接受的Switch On Parameter的Test端,而Test再比对Pin 1是否有一样的参数,有就再开启Pin 1的相应输出Out1,简单地说,就是当点击到红色小选项的2D Frame“Car_Color1”,Out1才会
24、打开,而点击其他2D Frame,Out1都不会响应。16 如果还是不懂也没有关系,首先点击Switch On Parameter,按右键选取Construct,弹出菜单后,选择Add Behavior Output(增加状态输出),点击后会发现Switch On Parameter多了一个参数输入端Pin1和执行输出端Out2,再打开Switch On Parameter,能看到多了一个选择项。17 把Pin 2设定成2D Frame的“Car_Color2” 。18 如此设定后,在Play下,当我们用鼠标点击2D Frame的名字是“Car_Color1”的红色选项时,Switch On
25、Parameter就会只执行Pin 1的Out1;如果是按下2D Frame的名字是“Car_Color2”的蓝色选项时,Switch On Parameter就理所当然会执行Pin2的Out2。19 因为上面的小选项总共有11项,所以我们用创造Pin2的方法,来创造其他9个Pin,并且一一设定成2D Frame的“Car_Color3”、“Car_Color4”、“Car_Color5”、“Light_On”、“Light_Off”、“Reflection_On”、“Reflection_Off”、“Auto_Rotate_On”、“Auto_Rotate_Off”,如此当我们点击不同的2D
26、 Frame时,Switch On Parameter 就会开启相对应的Out,这样,菜单就完成了。 车身变色切换开关设定 接着就来说明11个2D Frame小选项的用途吧 ,“Car_Color1”“Car_Color5”是颜色变换 ,“Light_On”和“Light_Off”是车灯开关 ,“Reflection_On”和“Reflection_Off”是镜像反射开关 ,“Auto_Rotate_On”和“Auto_Rotate_Off”是自动旋转开关。 我们就先来制作车身变色功能。改变车身颜色,应该从车子模型的Materials里的颜色换起,而控制车身的Materials是car bod
27、y。但是问题来了,因为我们已经设定car body为Effect/Tex Gen功能方式的贴图了,这样的话,我们如果要换Materials的颜色,就会被以Tex Gen方式所贴的反射纹理破坏,变色的就只有反射层,车子本身不变色,但是如果不用反射纹理又会让车子没有反射质感。所以为了解决这个难题,我们就是用更高级的Effect功能Combine 2 Textures(混合2张纹理),让一层是车子的反射层纹理,一层是车子的基本纹理。1 因为我们要用到的功能Combine 2 Textures(混合2张纹理),需要用到两张纹理,所以首先按下左边的Create Texture(创造纹理),来创造一个没有
28、任何作用的空纹理当底图,而我们要变色用的就是此纹理,创造后打开新纹理的Setup设定界面,会发现两个黑框框,于左边的黑框按鼠标右键,选择Invert Slot(逆转),左边框框就会变成白色,之后任意取名后设定IC。2 然后请开启Materials“car body”的Setup设置窗口,把窗口上的Texture从background002改成刚创造的新纹理,把Effect从Tex Gen改成Combine 2 Textures ,此时下方会让你选择第二张纹理Texture1,选回background002。3 开启下方Params,并把Combine(结合方式)设定为成Add Signed 2
29、X(增加标记2X),TexGen(混合方式)设定为CubeMap Reflact(六面体纹理反射),此时看到车子是白色,那是因为我们创的假纹理是白色的原因,虽然车是白色的,但一样拥有反射质感,此时别忘记了要重新设定初始值IC。4 可以任意调整Materials“car body”设置窗口的Diffuse,来更改车身颜色。5 再来,就是设定“直接按2D Frame就能换颜色”的功能,请先加入BB/Logics/Streaming/Parameter Selector(参数选择器)到2D Frames/modify_skin的Script,来配合Switch On Parameter的使用,并点击
30、Parameter Selector 的下方参数输出端,把数据类型从Float改为Color。 6 之后请打开Parameter Selector,把Pin0的颜色调成红色、Pin1的颜色 调成蓝色,并把Parameter Selector的执行输入端In0和In1,分别连接上Switch On Parameter的执行输出端Out1和Out2。7 再加入BB/Materials-Textures/Basic/Set Diffuse(设定漫反射),打开后把Target(对象)设定成Materials的car body,并且把Set Diffuse的执行输入端In和Parameter Selec
31、tor的执行输出端Out连接起来,Parameter Selector的参数输出端Selected连接到Set Diffuse的参数输入端Diffuse Color。8 点击上方红色的2D Frame或者蓝色的2D Frame,就可以随按随换颜色了,举例说明假设当我按下红色的2D Frame时,2D Picking马上就会抓到红色2D Frame的文件名 ,并传送给Switch On Parameter,之后Switch On Parameter会开启2D Frame的文件同名的对应输出Out1,Out1会传给Parameter Selector的执行输入端In0,开启In0设定的颜色参数红色
32、、再传给Set Diffuse所指定的对象car body,并且因此改变car body的颜色来变换车身颜色。 9 已经会制作两个颜色变换了,剩下三个当然轻而易举,点击Parameter Selector后按右键选择Construct,在弹出菜单中选择Add Behavior Input(增加状态输入),会发现和Switch On Parameter 类似 ,增加了执行输入端In和参数输入端Pin ,所以一样再增加两次Add Behavior Input,之后再打开Parameter Selector,把新的执行输入端Pin2、Pin3、Pin4,分别设定成黑色、黄色、绿色,然后把新的执行输入
33、端In2、In3、In4,分别接上Switch On Parameter的执行输出端Out3、Out4、Out5,如此,五个变换颜色的功能就制作完成了,需要变色的时候按下Play后任意选择按上方变换颜色的2D Frame即可。车灯开关功能设定1 接下来,开始制作下一个功能:车灯的开关!车灯是用两部分组成的障眼法,一部分是发亮的光,另一部分是特效图片的光。所以我们先解决关闭或打开特效图片光的部分吧,其实要关闭特效图片非常简单,L(R) _light Script的Lens Flare程序能创造特效图片光,当然就能关闭。所以请读者观看程序Lens Flare ,会发现Lens Flare的执行输入
34、端Off,我们只要把开关灯光2D Frame对应的Switch On Parameter执行输出端Out6、Out7连接到Lens Flare的执行输入端On、Off,就能点击2D Frame来开或关。但是两个Lens Flare和Switch On Parameter被设置于不同的Script上,所以先点击L_light的Lens Flare按右键 Add Target Parameter(增加参考对象参数) ,再去R _light的Lens Flare执行一样的动作,按右键Add Target Parameter(增加参考对象参数)。2 请利用Cut/Paste (剪切/粘贴)的功能,把两
35、个Lens Flare从原本的Script,都移动到2D Frames/modify_skin的Script上连接 。之后打开会发现需要重新设定里面的值,我们把其中一个Lens Flare设定成Target为L_light,Flare Array为Null,Flare Texture为sun01,Size Scale X:0.3 Y:0.3;另一个Lens Flare 除了Target设成R_Light外 ,剩下的和之前的Lens Flare 一样。3 接下来,如之前所述,将开关灯光2D Frame对应的Switch ON Parameter执行输出端Out6、Out7连接到Lens Flar
36、e的执行输入端On、Off,这样当我们按下2D Frame/light_on 时,特效图片就会打开,按下2D Frame/light_off时,特效图片就会关闭。 4 灯光的第一部分完成,不过虽然现在已经可以开关特效纹理了,但是真正的光却还是发亮,所以请加入BB/Logics/Streaming/Parameter Selector(参数选择器)到2D Frames/modify_skin的Script上,并且一样点击Parameter Selector的下方参数输出端,把数据类型从Float改成Color 。读者会发现这步骤和之前制作变色车身一样,但是为何不用之前的Parameter Sel
37、ector在Add Behavior Input(增加状态输入)?其实是因为之后我们要连接的BB不是Set Diffuse(设定漫反射) 而是 Set Light Color(设置灯光颜色)。说到这里,可能读者会问,为何灯光的开关与否和灯光颜色有关系,其实之前也有说过,虚拟现实里的东西都是用障眼法合成的,所以不能用一般常识思考,当灯的颜色是白色时,因为白色是最亮的颜色,所以我们会感觉灯在发光;相反的若用黑色?黑色是最暗的颜色,当然我们就看不到,看不到就会感觉不发光,何况现实世界里面是没有黑色光这种东西,所以这是虚拟现实里面才有的障眼法,而此方法也广泛应用在在线游戏的日夜交替系统上。5 所以请加
38、入Set Light Color(设置灯光颜色)到2D Frames/modify_skin的Script上,并且打开Set Light Color,把Target(Light)设成L_light,并把Parameter Selector的执行输出端Out和Set Light Color的执行输入端In连接,Parameter Selector的参数输出端Selected和Set Light Color的参数输入端Color连接。6 打开Parameter Selector,把pIn0的颜色调成白色、pIn1的颜色调成黑色,并把Parameter Selector的执行输入端In0和In1,分
39、别连接上Switch On Parameter的执行输出端的Out6和Out7,这样当我们关掉车灯时,就会执行关掉光和关掉特效纹理。7 现在值设定了左车灯的Set Light Color ,所以请再加入一个Set Light Color,并且打开后把Target(Light)设成R_light,之后仿照上面的做法来连接,车灯开关功能就大功告成了,按下Play来测试吧。 镜像反射地板开关设定1 接下来我们要来制作镜像反射的开关,而镜像反射开关和我们刚才制作的车灯开关有一点雷同,就是镜像反射开关用到的BB程序,像floor01 Script的Planar Reflection(平面反射对象)一样有
40、一个 Off的执行输入端,所以我们参照之前的动作,点击Planar Reflection后按右键选择Add Target Parameter(增加参考对象参数),之后用Cut/Paste(剪切/粘贴)的功能 ,把Planar Reflection从floor01 Script移动到2D Frames/modify_skin的Script上连接Start,并且打开Planar Reflection把Target设定成floor01 。2 把镜像反射开关2D Frame对应Switch On Parameter的执行输出端Out8、Out9连接到Planar Reflection的执行输入端On、
41、Off,之后镜像反射开关也完成了,按下Play试试吧。自动旋转开关功能设定1 剩下最后一个功能“自动回转”。虽然自动回转很简单,但是因为我们之前设置了一个Keyboard Camera Orbit(键盘控制摄影机环绕旋转)来操作摄影机。如果我们直接设定自动回转,自动回转会因为Keyboard Camera Orbit 的关系而失效,所以我们的思考逻辑要变成,当我们点了自动回转开始的2D Frame后,首先要关闭Keyboard Camera Orbit再开启自动回转;相反的,如果我们点击了自动回转关闭的2D Frame,会执行自动回转先关闭,再开Keyboard Camera Orbit来恢复
42、操作。有了思考逻辑,就来制作吧!请加入两个BB/Logics/Calculator/Identity(宣告)到2D Frames/modify_skin的Script上,并且分别和Switch On Parameter 的执行输出端Out10、Out11连接。2 分别点击两个Identity 的参数输入端pIn0 ,并把数据类型从Float改成Boolean,改好后打开Out10所连接的Identity,把选项打“X”选取。3 请参照移动灯光的BB程序Lens Flare或镜像反射的BB程序Planar Reflection的方法,把这次要使用开关的Keyboard Camera Orbit,
43、从Camera01 Script移动到2D Frames/modify_skin的Script上连接Start ,别忘了换Script后要重新设定程序的内容,虽然麻烦,但是当做是练习吧,把Keyboard Camera Orbit打开,新的Target请设定为Camera01,Target Referential(参照目标)设定为evocar车子角色对象,Move Speed(移动速度)设为100,Return Speed(返回速度)设为0,Min Horizontal(最小水平旋转角度)设为-1圈,Max Horizontal(最大水平旋转角度)设为1圈,Min Vertical(最小垂直旋
44、转角度)设为-30,Max Vertical(最大垂直旋转角度)设为15,Zoom Speed(缩放速度)设为40,Zoom Min(缩放最小值)设为-40,Zoom Max(缩放最大值)设为10。4 把Keyboard Camera Orbit拖到Identity后面,并且让Out10连接的有打X的Identity执行输出Out,连接上Keyboard Camera Orbit的执行输入Off;而Out11连接的另一个Identity,执行输出Out请连接上Keyboard Camera Orbit的执行输入On。5 设定好后,当我们按下自动回转开始的2D Frame时,虽然还是不会旋转,但
45、是已经能够关掉Keyboard Camera Orbit了。现在我们来设定自动回转,加入BB/Logics/Streaming/Binary Switch(布尔转接) 到2D Frames/modify_skin的Script,之后让Binary Switch的执行输入In ,和Out10连接的打X的Identity执行输出Out,两个Identity的pOut0参数输出一起都连接到Binary Switch的参数,注意!不是参数输入端,而是连到参数,之后打开Binary Switch把Condition框框里的X取消掉。6 加入BB/3D Transformations/Basic/Rota
46、te Around(盘旋)和BB/3D Transformations/Constraint/Look At(注视)到2D Frames/modify_skin的Script上,并且把Binary Switch的执行输出True连到Rotate Around 的执行输入In,Rotate Around的执行输出Out连到Look At的执行输入In,而Look At的执行输出Out ,连回 Binary Switch的执行输入In,做成一个循环。7 打开Rotate Around和的Look At调整设定 ,把两个BB里的Target(3D Entity)都设给Camera01,Refernt
47、ial都设给evocar,而Look At的Follow Speed(跟随速度)调整成100%。8 自动回转功能就已经完成99%了,可能读者还不太懂为何要这么做,我们就来研究原理吧,当我们按下自动回转开始的2D Frame ,Switch On Parameter的执行输出端Out10就会自动启动,之后经过打X的Identity,该Identity因为有打X,所以是Boolean的True ,当True 传给Binary Switch时,Binary Switch就会启动执行输出端True,也因此启动了连接在后的Rotate Around和的Look At,而打X的Identity也会自动启动
48、到Keyboard Camera Orbit的Off,这就是之前所思考到的路径,关Keyboard Camera Orbit再开Rotate Around。而相反的按下自动回转关闭的2D Frame,Switch On Parameter的执行输出端Out11会启动,自后经过没X的Identity,没X的Identity是false,所以传给Binary Switch后,只会开启执行输出端False,则True会关闭,而Binary Swtich执行输出端False后面没有接程序,所以就不会执行任何动作,没有X的Identity启动时,也会启动Keyboard Camera Orbit的On,所以这就是全部自动回转功能的流程。9 但是为何都如此完整了还是99