实验步骤
选择Resources/Open Data Resource,选择virtools实验/ VTdemorsc.rsc,这样便可以加载本实验的素材数据库了。
场景的建立
载入VTdemorsc/3D Entities/QuadPatch01对象,调整其位置、方向和大小,然后按下Set IC For Selected设定其初始值,此时Level Manager窗口里的QuadPatch01对象的IC处会显示X也就是已经设定其初始值了。同时对象相应的Materials、Textures和Meshes(用于描述对象的
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
面材质与几何形状)也被载入。
为场景加入光源,点击左侧工具栏的Create Light工具创建一个光源,命名为Main Light,并调整其位置及参数。
此时对象QuadPatch01是“虚”的,如果把带有物理属性的物体放在上面,会透过“地面”“掉下去”,所以接下来为其加入真实的“地面”效果。在Level Manager的3D Objects中右键点击QuadPatch01,选择Create Script,创建QuadPatch01的脚本QuadPatch01 Script,双击打开,向其中加入模块Building Blocks/Physics/Creation/Physicalize,将其in端与start连接。
双击模块为其设置参数,其中选中Fixed,使QuadPatch01对象在运行时是固定的,不受重力等影响,否则就会在运行时从场景中“掉下去”,选中Enable Collision允许其它对象与之碰撞,这样就相当于为后面加入的汽车、跳板对象设置了一个地面。将Collision Group命名为Floor,表示QuadPatch01对象所属的碰撞组的名字为Floor,属于同一个平碰撞组的对象之间不会发生碰撞。其它参数如摩擦力、弹力、重量等可以使用默认值。
接下来向场景中加入一块结冰的地面,载入VTdemorsc/3D Entities/Box01对象,并为其创建一个脚本Box01 Script,加入一个Physicalize模块与Start连接。
双击设置其参数,由于结冰的地面比较滑,所以将摩擦力改为0.1,其余设置与QuadPatch01 Script相同。
加入汽车模型
载入VTdemorsc/3D Entities/car body对象,以及左前轮VTdemorsc/3D Entities/ wheel_FL、右前轮VTdemorsc/3D Entities/wheel_FR、左后轮VTdemorsc/3D Entities/ wheel_BL、右后轮VTdemorsc/3D Entities/ wheel_BR。
注意四个轮子和车子主体的三色轴线要分别朝向同一方向,轮子的名字可以改变,但必须要包括FL、FR、BL、BR四组字母,因为后面脚本中要加入的操纵汽车的模块Physics Car需要据此来获得车轮对象。接下来选择菜单Editors中的Hierarchy Manager,将四个轮子对
象拖至car body对象,这样四个轮子对象便成为车体对象的Children对象,与车体对象成为一个整体(注意每次修改Hierarchy Manager后,要右键点击修改的对象,选择Set Initial Conditions on Hierarchy来保存修改)。为车子加入主视角摄像机,在左侧面板中点击Create Camera,创建一个新摄像机并命名为Inside Camera,将其Perspective参数设为24mm,移动到车头的上方,在Hierarchy Manager将Inside Camera拖至car body,这样Inside Camera将固定在车头上。
下面我们让汽车动起来。为对象car body创建脚本car body Script,为了操控车子加入模块Building Blocks/Controller/Keyboard/Switch on Key,将模块On端与Start链接,点击鼠标右键选择Construct->Add Behavior Output 0加入一个输出端,多次点击直到模块具有6个输出端。
双击模块设置参数如图,分别用于控制车子前进、后退、左转、右转、刹车、加速。接着向脚本中加入模块Building Blocks/Physics/Special/Physics Car,将其On端与Start相连,双击打开设置参数,其中BODY Parameters为车身参数数组,WHEEL - SUSPENSION Parameters为车轮参数数组,ENGINE - STEERING Parameters为引擎参数数组。下面我们载入已经设定好的参数数组VTdemorsc/3D Entities/BODY Parameters、VTdemorsc/3D Entities/WHEEL - SUSPENSION Parameters、VTdemorsc/3D Entities/ENGINE - STEERING Parameters,可以在Level Manager中的Arrays找到。将Physics Car中的相应参数设置好后,我们的车子就具备了各项物理属性。然后将模块Switch on Key的输出端与模块Physics Car相应的输入端链接。由此车子已经可以在场景中“驰骋”了。
下面为车子加入一个跟随的第三视角,新建一个摄影机命名为Follow Camera,将其Perspective设为Custom,Field of View设为50,并将其放置在车子的后上方。
建立脚本Follow Camera Script,拖入模块Building Blocks/Cameras/Montage/Set As Active Camera和Building Blocks/3D Transformations/Constraint/Look At,将Set As Active Camera模块的In端与Start链接,使得运行时初始的默认摄像机为Follow Camera。将Set As Active Camera模块的Out端与Look At模块的In端链接,Look At模块的参数Referential设为car body,从而将Follow Camera的拍摄目标设为车身。为了使摄像机随着拍摄目标的移动而旋转,将Look At模块的Out端与In端链接,形成循环。
此时摄像机只能旋转,为了使其始终与车子保持一定距离跟随车子移动,载入模块Building Blocks/3D Transformations/Constraint/Keep At Constant Distance,双击设置参数,Position中的Y设为8,使得摄像机镜头距水平面的竖直距离为8,Referential值设为car body,与车子保持的距离Distance设为15。
接下来为了使视角能够在Follow Camera与Inside Camera之间进行切换拖入两个Building Blocks/Cameras/Montage/Set As Active Camera模块和两个Building Blocks/Controller/Keyboard/Key Event模块,如图连接起来,将两个Key Event模块的Key Waited参数设为Enter,第一个Set As Active Camera模块的Target参数设为Inside Camera,第二个Set As Active Camera模块的Target参数设为Follow Camera。由此运行时,按下Enter键,视角将在Inside Camera和Follow Camera间切换。
加入跳板模型
载入VTdemorsc/3D Entities/Planche1对象作为跳板的底板,载入VTdemorsc/3D Entities/ Planche2作为跳板的斜面,载入弹簧对象VTdemorsc/3D Entities/ Spring。按上文提到的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
在Hierarchy Manager中将Planche1和Spring设置为Planche2的Children。
为Planche2创建教本Planche2 Script,拖入两个模块Building Blocks/Physics/Creation/
Physicalize分别用于设置斜面和底板的物理属性,拖入模块Building Blocks/Physics/
Creation/Set Physics Hinge链接斜面和底板的一端,拖入模块Building Blocks/Physics/
Creation/Spring设置弹簧的物理属性。
设置第一个Physicalize模块的参数,在碰撞组的名字处输入Planche。
设置第二个Physicalize模块的参数,在模块上点击右键,选择Add Target Parameter,然后左键双击设置参数,将Target设为Planche1,碰撞组为Planche。
设置模块Set Physics Hinge的参数,将Object2设为Planche1,将Joint Referential设为Planche2。
设置模块Building Blocks/Physics/Creation/Spring参数如图。
加入吊桥模型
载入VTdemorsc/3D Entities/ Bridge_Jump对象,为其创建一个脚本Bridge_Jump Script,并拖入一个Physicalize模块,参数如图设置。在Level Manager的树型文件目录中右键点击Bridge_Jump对象,选择复制,粘贴后会在目录中出现一个名为Bridge_Jump.Copy的对象,改名为Bridge_Jump2,在场景中将其拖放到Bridge_Jump对面的适当位置。
载入VTdemorsc/3D Entities/ Bridge_Board对象,并将其在场景中拖放到与Bridge_Jump对象连接的位置。
创建脚本Bridge_Board Script,拖入一个Physicalize模块,设置该桥板的物理属性,参数如图设置,
再拖入一个Set Physics Hinge模块与之连接,参数设置如图,使得Bridge_Board与Bridge_Jump链接起来。
复制Bridge_Board并命名为Bridge_Board2,在场景中拖放到如图位置,与Bridge_Board连接起来。
修改其Set Physics Hinge模块的参数如图,由此两个桥板被链接起来。
按照此方法创建8块桥板Bridge_Board~Bridge_Board7并链接起来。最后为了将桥墩Bridge_Jump2与Bridge_Board7链接起来,在Bridge_Jump2的教本中加入一个Set Physics Hinge模块,参数如图设置。