虚拟仿真项目实战项目指导书Word文档下载推荐.docx
- 文档编号:21200332
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:11
- 大小:25.71KB
虚拟仿真项目实战项目指导书Word文档下载推荐.docx
《虚拟仿真项目实战项目指导书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《虚拟仿真项目实战项目指导书Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
车身反射材质的制作
1.在LevelManager/Materials里可以找到该车子模型的全部材质,carbody、car_window2、carwindow、carlogo、caritem。
2.因为我们要使用材质来制作车子的反射特效,但是真正的车子也有像轮胎那部分,是没有反射质感的,所以当我们在制作3D模型时,就要先考虑何处材质需要用到哪种特效,何处材质无需用到特效,把一个模型的材质,做有效的规划和管理,像这次的模型,caritem是车子轮胎和车头灯的材质,所以无需设置反射质感;
而其他的carbody(车体材质)、car_window2(车窗边缘材质)、carwindow(车窗材质)、carlogo(车子标志材质)都是需要设定制作反射质感效果的。
3.所以请先选择carbody,并快速点击鼠标左键两下,就可以开启其车身的材质设置窗口。
4.请载入VTrsc2.rsc/Textures/background002.tga来当反射材质的纹理图像,接着将carbody的材质设置窗口里的Texture,设定成刚刚加载的纹理文件background002.tga。
5.如果觉得车身的颜色太过黯淡可以调整材质的Emissive(放射)去设定其亮度,但此时会发现车身还没有明显的金属质感出现。
6.接下来要设定反射的贴图效果,所以请点击car_body材质设定栏里的Effect(特效)选项,然后选择其中的TexGen(纹理生成)。
7.接着在该TexGenType(纹理生成类型)中选择Reflect(反射),此时就可以转转镜头试试,会看到车子的车身表面产生了金属反射效果。
8.利用此方式也将car_window2、carwindow、carlogo等三个材质都设定成反射的效果。
镜像反射地板设定
1.载入VTrsc2.rsc/3DEntities/floor01.nmo地板对象于场景中,并设定好其初始定值。
2.点击LevelManager/Character/evocar对象,按下鼠标右键,此时会开启编辑菜单,选择AddAttributes(添加属性)。
3.在SelectAttributeType菜单里选择VisualsFX/ReflectedObject(反射对象),然后按下AddSelected(新增选择),这样就可以设定车子本身为一个会被反射的对象。
4.但因为这样增加属性是属于简便方式,如果对于属性是否设定完成存有怀疑,那就请单击该对象,然后按下鼠标右键打开编辑窗口,点击SEtup便会跳出该角色对象的设置窗口,然后选择左边选项的Attribute,便会跳出该对象的属性数据域,这样就可以明确的了解该对象到底设置了哪些属性,当然在该窗口也可以设定增加新的属性,只是这样比较麻烦而已,最后不要忘记了要再次设定一次车子的初始值。
5.接下来制定地板的镜像反射效果,点击floor对象,然后按下鼠标右键打开其编辑窗口,选择CreateScript,接着请点击Schematic(流程图)编辑窗口,就可以看到floor01对象的Script了。
6.加入BB/Visuals/FX/PlanarReflection(平面反射对象)于floor01的Script里,并与Start连接上。
7.鼠标左键双击PlanarReflection模块,可以打开该模块的设置窗口,设定对应的group群组与镜面反射的轴向,在此维持原本的设定即可。
接着按下窗口右下角的Play键可以执行所编辑的流程,但在此却发现并没有如预期中呈现地板镜像反射的效果。
8.其实平面镜像发射的效果是将需要反射的对象依照所设定的轴向对称地复制一份,也就是说并不是真的产生了反射,而是一种障眼法,所以,无法把效果显示出来原因非常简单,就是地板将下面所复制的对称对象遮住了,因此解决的方法就是把地板对象的材质设定成半透明就行了。
在此请打开floor01的材质设定,将Mode(模式)设定为Transparent(透明),接着设定Diffuse颜色项目的Alpha值为200。
9.再一次按下Play可以发现镜像反射的效果已经产生了。
摄像机的设定
1.请按下左边CreateCamera的按键创造一个新的摄像机,而此时会发现显示窗口已经变成该摄像机的视点,接着于LevelManager/Global/Cameras里找到该新增的摄像机,选择该摄影机,按下按键F2便可以重新命名,我们将摄影机的名称取名为Camera01。
2.左边的摄影机控制窗口可以调整摄影机的位置及其视野景深等,设定完后不要忘记要设定其初始值,接着创造该摄影机的Script,并加入BB/Cameras/Movement/KeyboardCameraOrbit(键盘环绕摄影机)。
3.打开KeyboardCameraOrbit模块窗口,将TargetReferential(参照目标)设定为evocar车子角色对象,MoveSpeed(移动速度)设为100,ReturnSpeed(返回速度)设为0,MinHorizontal(最小水平旋转角度)设为-1圈,MinHorizontal(最大水平旋转角度)设为1圈,MinVertical(最小垂直旋转角度)设为-30,MaxHorizontal(最大垂直旋转角度)设为15,ZoomSpeed(缩放速度)设为40,ZoomMin(缩放最小值)设为-40,ZoomMax(缩放最大值)设为10.
4.再用鼠标右键点击KeyboardCameraOrbit模块打开编辑菜单,请选择EditSettings(编辑设置)便可以打开其模块的按键对应控制窗口,在这里我们设定Limit(限制),Returns(返回),KeyRotateLeft(键盘左转)对应为A,KeyRotateRight(键盘右转)对应为D,KeyRotateUp(键盘上转)对应为W,KeyRotateDwon(键盘下转)对应为X,KeyZoomIn(键盘拉近)对应为Q,KeyZoomOut(键盘拉远)对应为E.
5.按下Play测试看看,这样就可以利用所设定的按键来控制摄影机的视角了。
灯头和头灯特效设定
1.请按下左边CreateLight的按键创造一个灯光,在LevelManager/Global/Lights找到新的灯光,命名为L_light(左车灯)后,于左方对象调整区,调整其位置和大小置于Evocar.nmo车子对象模型的左车灯的前面。
2.之后一样在LevelManager/Global/Lights里,点击L_light按下鼠标右键打开编辑窗口,点击Setup便会跳出L_light对象的设置窗口,把设置窗口中的Type,从Point(点光源)改为Spot(聚光灯),之后调整Spot方式特有的黄色方向线,使灯光的投射方向符合车子车灯的投射方式,最后任意调整设置窗口里的Influence/Range(照亮范围),完成后可按IC来设定初始状态。
3.加入VTrsc2/Textures/sun01.tga的亮光特效用Texture,之后一样点击LevelManager/Global/Light里的L_light,按下鼠标右键打开编辑窗口,点击CreateScript来开启L_light的Script,并加入BB/Lights/FX/LensFlare(镜头光晕),连接Start后打开LensFlare,把里面的FlareTexture(光斑纹理)设定成刚导入的sun01,而SizeScale(尺寸大小)设成X:
0.3、Y:
0.3。
4.按下界面右下角的Play键,便能看到车灯特效。
5.用上面方法,同样制造车子的右车灯,并取名为R_light,这样两个车灯就OK了。
6.接着,要在车子四周创造环境灯,一样按下左边CreateLight的按键创造一个新的灯光,取名为sky_light1,并随意调整其位置于车子四周,设定大小,Setup和确定初始IC,与车灯不同的是TYPE不需要更改设定,用Point(点光源)就可以了,设定好之后按下Play,在此却发现画面上并无任何变化。
7.原因在于之前在设定车子和地板的Material(材质)时,材质的Emissive(放射)调的太亮,应该调暗点才对,因为Emissive的作用,在于对应的Material是否自行发光,如果车子和地板上的Material全部发光,也代表车子和地板自己本身会自行发光。
如此,如果我们创造环境灯在车子和地板四周,光的效果就会被车子本身发出的光盖住,所以我们才会感觉没有变化。
由此可知,我们应该把车子和地板模型的全部材质(carbody、car_window2、carwindow、carlogo、caritem和floor01)的Emissive值都调整到少量自发光的数值,之后再按Play,就会发现已经有变化了。
8.利用创造环境灯sky_light1的方法,再创造其他三盏灯,分别取名为sky_light2、sky_light3、sky_light4,且让四盏环境灯分别放在车子的前后左右四周,再按下Play,这样特效灯和环境灯就设置完毕了。
车身变色和展示功能菜单设置
随意变换3D模型的颜色,在现今不管是单机游戏或是在线游戏,都是非常常见的一种功能,尤其是RPG类型游戏,开始游戏时,会要求玩家创造自己的角色,并且选择角色的发色和肤色等,就要用的此技术,而功能强大的VirtoolsDev开发工具,当然能轻松做出这种技术,现在我们就用最不耗效能的方法,把这种变换3D模型颜色的技术,用在我们刚刚创造好的车子模型上。
1.首先我们需要一个控制菜单,所以先按下左边的Create2DFrame,来创建一个2DFrame(平面的对象),并在LevelManager/Global/2DFrames找到新创建的2DFrame,并把它取名为modify_skin,之后调整它的位置和大小到画面上方。
2.因为我们创的2DFrame,现在还没有材质,所以是空心的,点击左边的CreateMaterial(创建材质),之后一样去LevelManager/Global/Materials找到新创的Material,并取名为modify_skin,开启LevelManager/Global/2DFrames/modify_skin的Setup设置窗口,把窗口里的Material,设成刚刚创立且取同名的modify_skin,并且在General/HomogeneousCoordinates选项里打X选取,这样2DFrame就会以屏幕比例为位置依据,最后在Position/ZOrder设为-2.
3.已经有材质后,可以在LevelManager/Global/2DFrames/modify_skin按右键选择Setup,来开启Materials/modify_skin的设置窗口,更改窗口的Diffuse,来调整Material的颜色,也由此改变2DFrame的颜色。
这样,大型菜单就制作完成了。
不过还需要制作大菜单里的小选项!
所以用上面说明的2DFrame、Material制作方法,来制作其他小选项吧,顺便当做练习。
4.而小选项的做法和大菜单一样,唯一不同之处在于2DFrame的Setup设置窗口里面的Position/ZOrder,要设定成-1,这样才能让小选项迭加在大菜单上。
5.小选项共需要11个,因为太多,而且做法都和以上叙述的一样,所以为了方便读者学习,请直接使用VTrsc素材里面已经帮读者做好的模块,删除刚才练习所创造的2DFrame、Material,直接加载VTrsc2.rsc/3DEntities/evo_modify_skin.nmo,之后会发现大菜单和11个小选项,不管是2DFrame对象本身还是Material,都已经创造完成!
不过12个2DFrame都还没有设定大小位置和初始IC,所以请一个一个设定大小,调到喜欢的位置,并到Setup窗口里的General/HomogeneousCoordinates选项里打X,以变成屏幕比例显示,之后初始IC。
6.现在我们就开始来制作菜单吧。
点击LevelManager/Global/2DFrames/modify_skin的大菜单2DFrame,按右键选择CreateScript开启2DFrames/modify_skin的Script。
7.加入BB/Controllers/Mouse/MouseWaiter(鼠标等待器)和BB/Interface/Screen/2DPicking(2D鼠标点击状态判断)。
8.接着让MouseWaiter的执行输入On和Start连接,2DPicking的执行输入In和MouseWaiter的执行输出LeftButtonDownReceived(接收到鼠标左键按下的信息)连接,如此当执行Play时,我们只要按下鼠标左键,MouseWaiter就会开启LeftButtonDownReceived而执行2DPicking。
9.点击2DPicking下方的Sprite数值输出端,按右键选择Copy,点击后再旁边空白处按右键选择PasteasShortcut(粘贴为快捷方式),来开启输出端Sprite对应快捷方式.
10.再点击刚刚创建出来的Sprite快捷方式,按鼠标右键选择ChangeParameterDisplaySpacebar(按空格键改变参数显示方式),跳出Spacebar的菜单后,请选择NameandValue(名字和数值),如此我们就可以轻松观察Sprite输出端的变化。
11.为了看Sprite输出端的变化,我们先按下Play,并且点击上面的大菜单和小选项,之后会发现我们点击的大小菜单2DFrames名称,都会显示在Sprite输出端上,所以简单的说,2DPicking是用来帮我们去的我们目前鼠标点击到什么对象的程序。
12.再加入BB/Logics/Streaming/SwitchOnParameter(转接参数)到2DFrames/modify_skin的Script里,并让2DPicking的执行输出端True,连接SwitchOnParameter的执行输入端In;
而2DPicking的执行输出端False连回MouseWaiter的执行输入端。
13.点击SwitchOnParameter的参数输入端Test,把数据类型从Float改成2DEntity,并且让2DPicking的Sprite输出端连到SwitchOnParameter的参数输入端。
因为SwitchOnParameter的作用在于,用参数输入端Test的参数值当一个参考点,来对比下方的其他参数值是否和它一样,如果有参数值和Test一样,就开启相对应的输出执行端。
14.如果不懂也没关系,首先先点击SwitchOnParameter打开设置窗口,并将Pin1设定成2DFrame的Car_Color1。
15.这样设定就表示当你执行Play时,用鼠标点击上面的红色小选项,点击的2DFrame名称Car_Color1,2DPicking马上就会抓到,并且在Sprite端输出给接受的SwitchOnParameter的Test端,而Test再比对Pin1是否有一样的参数,有就再开启Pin1的相应输出Out1,简单地说,就是当点击到红色小选项的2DFrame“Car_Color1”,Out1才会打开,而点击其他2DFrame,Out1都不会响应。
16.如果还是不懂也没有关系,首先点击SwitchOnParameter,按右键选取Construct,弹出菜单后,选择AddBehaviorOutput(增加状态输出),点击后会发现SwitchOnParameter多了一个参数输入端Pin1和执行输出端Out2,再打开SwitchOnParameter,能看到多了一个选择项。
17.把Pin2设定成2DFrame的“Car_Color2”。
18.如此设定后,在Play下,当我们用鼠标点击2DFrame的名字是“Car_Color1”的红色选项时,SwitchOnParameter就会只执行Pin1的Out1;
如果是按下2DFrame的名字是“Car_Color2”的蓝色选项时,SwitchOnParameter就理所当然会执行Pin2的Out2。
19.因为上面的小选项总共有11项,所以我们用创造Pin2的方法,来创造其他9个Pin,并且一一设定成2DFrame的“Car_Color3”、“Car_Color4”、“Car_Color5”、“Light_On”、“Light_Off”、“Reflection_On”、“Reflection_Off”、“Auto_Rotate_On”、“Auto_Rotate_Off”,如此当我们点击不同的2DFrame时,SwitchOnParameter就会开启相对应的Out,这样,菜单就完成了。
车身变色切换开关设定
接着就来说明11个2DFrame小选项的用途吧,“Car_Color1”~“Car_Color5”是颜色变换,“Light_On”和“Light_Off”是车灯开关,“Reflection_On”和“Reflection_Off”是镜像反射开关,“Auto_Rotate_On”和“Auto_Rotate_Off”是自动旋转开关。
我们就先来制作车身变色功能。
改变车身颜色,应该从车子模型的Materials里的颜色换起,而控制车身的Materials是carbody。
但是问题来了,因为我们已经设定carbody为Effect/TexGen功能方式的贴图了,这样的话,我们如果要换Materials的颜色,就会被以TexGen方式所贴的反射纹理破坏,变色的就只有反射层,车子本身不变色,但是如果不用反射纹理又会让车子没有反射质感。
所以为了解决这个难题,我们就是用更高级的Effect功能Combine2Textures(混合2张纹理),让一层是车子的反射层纹理,一层是车子的基本纹理。
1.因为我们要用到的功能Combine2Textures(混合2张纹理),需要用到两张纹理,所以首先按下左边的CreateTexture(创造纹理),来创造一个没有任何作用的空纹理当底图,而我们要变色用的就是此纹理,创造后打开新纹理的Setup设定界面,会发现两个黑框框,于左边的黑框按鼠标右键,选择InvertSlot(逆转),左边框框就会变成白色,之后任意取名后设定IC。
2.然后请开启Materials“carbody”的Setup设置窗口,把窗口上的Texture从background002改成刚创造的新纹理,把Effect从TexGen改成Combine2Textures,此时下方会让你选择第二张纹理Texture1,选回background002。
3.开启下方Params,并把Combine(结合方式)设定为成AddSigned2X(增加标记2X),TexGen(混合方式)设定为CubeMapReflact(六面体纹理反射),此时看到车子是白色,那是因为我们创的假纹理是白色的原因,虽然车是白色的,但一样拥有反射质感,此时别忘记了要重新设定初始值IC。
4.可以任意调整Materials“carbody”设置窗口的Diffuse,来更改车身颜色。
5.再来,就是设定“直接按2DFrame就能换颜色”的功能,请先加入BB/Logics/Streaming/ParameterSelector(参数选择器)到2DFrames/modify_skin的Script,来配合SwitchOnParameter的使用,并点击ParameterSelector的下方参数输出端,把数据类型从Float改为Color。
6.之后请打开ParameterSelector,把Pin0的颜色调成红色、Pin1的颜色调成蓝色,并把ParameterSelector的执行输入端In0和In1,分别连接上SwitchOnParameter的执行输出端Out1和Out2。
7.再加入BB/Materials-Textures/Basic/SetDiffuse(设定漫反射),打开后把Target(对象)设定成Materials的carbody,并且把SetDiffuse的执行输入端In和ParameterSelector的执行输出端Out连接起来,ParameterSelector的参数输出端Selected连接到SetDiffuse的参数输入端DiffuseColor。
8.点击上方红色的2DFrame或者蓝色的2DFrame,就可以随按随换颜色了,举例说明假设当我按下红色的2DFrame时,2DPicking马上就会抓到红色2DFrame的文件名,并传送给SwitchOnParameter,之后SwitchOnParameter会开启2DFrame的文件同名的对应输出Out1,Out1会传给ParameterSelector的执行输入端In0,开启In0设定的颜色参数红色、再传给SetDiffuse所指定的对象carbody,并且因此改变carbody的颜色来变换车身颜色。
9.已经会制作两个颜色变换了,剩下三个当然轻而易举,点击ParameterSelector后按右键选择Construct,在弹出菜单中选择AddBehaviorInput(增加状态输入),会发现和SwitchOnParameter类似,增加了执行输入端In和参数输入端Pin,所以一样再增加两次AddBehaviorInput,之后再打开ParameterSelector,把新的执行输入端Pin2、Pin3、Pin4,分别设定成黑色、黄色、绿色,然后把新的执行输入端In2、In3、In4,分别接上SwitchOnParameter的执行输出端Out3、Out4、Out5,如此,五个变换颜色的功能就制作完成了,需要变色的时候按下Play后任意选择按上方变换颜色的2DFrame即可。
车灯开关功能设定
1.接下来,开始制作下一个功能:
车灯的开关!
车灯是用两部分组成的障眼法,一部分是发亮的光,另一部分是特效图片的光。
所以我们先解决关闭或打开特效图片光的部分吧,其实要关闭特效图片非常简单,L(R)_lightScript的LensFl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟 仿真 项目 实战 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)