虚拟现实交互设计
上QQ阅读APP看书,第一时间看更新

2.1 3ds Max三维动画设计

虚拟现实交互设计的三维模型,需要通过三维设计软件来进行设计和制作。本部分的3ds Max三维动画设计主要针对三维建模、材质贴图、灯光照明、摄像机设置、动画设计、渲染烘焙、模型导出等环节进行分析和讲解,以明确三维动画设计的一般方法和原理。

2.1.1 三维建模

三维建模的主要内容是利用计算机设计软件构建一个虚拟的场景,三维设计软件有很多,常见的有3ds Max、Maya、Poser、Softimage、Rhino、LightWave 3D、ZBrush等,为了配合后期VR交互设计的过程,本书案例采用3ds Max软件作为使用对象。在虚拟现实的建模过程中,场景中的模型和物体应遵循游戏场景的建模方式创建简模。

虚拟现实(VR)的建模和做效果图、动画的建模方法有很大的区别,主要体现在模型的精简程度上。影响VR—DEMO最终运行速度的三大因素为:VR场景模型的总面数、VR场景模型的总个数、VR场景模型的总贴图量。在掌握了建模准则以后,设计者还需要了解模型的优化技巧。模型的优化不光是要对每个独立的模型面数进行精简,还需要对模型的个数进行精简,这两个数据都是影响VR-DEMO最终运行速度的元素之一,所以优化操作是必需的,也是很重要的。在3ds Max中的建模准则基本上可以归纳为以下几点。

①模型个数的精简:在模型创建完成以后,利用Attach(合并)命令和Collapse(塌陷)命令可以对后期同类材质或者同一属性的模型进行合并处理,以减少模型的个数。

②模型面数的精简:Plane(面片)模型面、Cylinder(圆柱)模型面、Line(线)模型面、曲线形状模型、bb-物体的表现形式尽量用少的面数和分段去表现。模型创建完成以后,删除模型之间的重叠面、交叉面和看不见的面。

2.1.2 材质贴图

在完成场景模型的建立之后,即可为该模型添加材质。在材质设计和制作过程中,最好利用3ds Max默认的标准材质进行制作,可在漫反射通道添加一张纹理贴图。材质的命名和其他参数可以根据项目的需要和个人习惯进行设置。

如果需要将物体烘焙为Lighting Map时,一般只能设置材质为:Advanced Lighting、Architectural、Lightscape Mtl、Standard类型;在做图必须要使用到其他材质时,一般需要将该物体烘焙为Complete Map。由于后期交互设计软件不能识别多维子物体材质,所以在材质制作过程中,最好利用UVW贴图展开功能进行贴图的绘制和表现。

物体的贴图格式只允许使用JPEG、BMP、TGA、PNG、DDS等格式的文件,不支持其他格式的图像贴图,如TIFF、PSD等类型的贴图文件。

材质贴图是设计流程一般包括以下几个步骤。

①材质属性确定,确定材质的属性类别,利用标准材质,在漫反射通道添加一个位图文件来模拟物体的表面纹理,若物体带有半透明属性,还需要在材质的不透明通道添加一个黑白位图遮罩。

②UVW贴图坐标调整,将材质赋予给场景中的模型,若发现纹理在模型表面显示不正确,可以为模型添加UVW贴图坐标修改器,根据模型的造型特征,选择合适的贴图坐标方式。

③UV贴图拆分,当为物体添加完UVW贴图坐标以后,还可以利用Unwrap UVW编辑修改器对模型的UV进行拆分,输出平面贴图到Photoshop中进行绘制,然后再指定给场景中的模型物体。

通过以上的当时基本可以完成物体材质的制作,对于物体表现特殊的高光和反射属性,可以不用调整,在后期交互设计软件中,可以调节出非常优秀的材质效果。

2.1.3 灯光照明

灯光照明设计主要是对场景创建灯光信息的过程,其目的在于照亮整个场景,增加场景的色调和氛围,由于灯光的布置有很多种方法,但这一切都需要结合实际项目来变化的,下面的场景布光方式仅供参考(图2-1)。

图2-1 灯光照明设计

以上布置灯光的方法先是把一个物体理解成一个Box,它由6个面组成,为了控制和表现每个面的明暗关系,可以在各个面都打了一盏灯,每个灯的参数不一样(图2-2)。也可以把整个场景理解成一个Box,细节部分可以通过添加辅助灯光进行局部调节。

图2-2 灯光参数设计

图2-2中各项灯光的参数设置如下:

1号灯是主灯建议亮度在0.8~1.0,色调可以偏暖,开启阴影。

2号灯是天光建议亮度在0.6左右,把环境色改成白色。

3号、4号灯是背光辅助灯模拟天空对物体的影响。亮度为0.1~0.3。

5号灯是照亮物体底部和顶部的。灯亮度为0.3~0.5。

6号、7号灯是照亮物体亮面的,目的是为了能让亮面更亮。灯亮度为0.1~0.3。

8号灯是照亮地面和物体顶部的。灯亮度为0.1~0.3。

跟室内制作一样,无论如何创建灯光,目的都在于渲染出好的灯光效果,所以灯光的照明设计也会因人而异,以上只是一种灯光照明的方法,仅供参考。

2.1.4 摄像机设置

在3ds Max场景中设置的摄像机可以输出到VRP中作为实时浏览的相机本书中同时出现“摄像机”“相机”,其中前者为软件3dx Max中术语,后者为软件VRP中术语,为便于软件操作,不作统一。。对于摄像机的参数也没有特别的要求,而且摄像机不是必须的,摄像机也可以选择在VRP编辑中进行制作。对于3ds Max中摄像机的创建主要有以下几个关键参数。

(1)目标摄像机的创建

目标相机由两个对象组成:摄像机和摄像机目标。摄像机代表你的眼睛,目标指示的是你要观察的点。设计者可以独立地变换摄像机和目标,但是摄像机总要注视它的目标。要创建目标摄像机,可进行如下操作。

①单击Create(创建)面板上的Cameras按钮。

②单击在Object Type(对象类型)卷展栏中的Target(目标)相机按钮。

③可以在任何视口中,优先在Top(俯视)视图,在要放置摄像机的地方单击鼠标,然后拖拽要放置目标地方释放鼠标

(2)自由摄像机的创建

自由摄像机是单个的对象,即摄像机。要创建自由摄像机,按如下步骤操作。

①单击Create(创建)面板的Camera(摄像机)按钮。

②单击在对象类型(Object Type)卷展栏上的Free(自由)按钮。

③单击任何视口来创建自由摄像机。

对于跟随路径的动画来说,使用自由摄像机就比目标摄像机容易,自由相机将沿路径倾斜——而这些目标相机是做不到的。可以使用Look At(注视)控制器把自由相机转变为目标相机。Look At控制器让你拾取任何对象作为目标。

(3)摄像机参数

定义两个相互关联的参数就可确定摄像机观察场景的方法,这两个参数是:视野(FOV)和镜头的焦距(Lens)。这两个参数描述单个摄像机的属性,所以改变FOV参数改变镜头参数,反之亦然。使用FOV从摄像机视图和摄影效果中取景。

(4)设置视野

视野(FOV)描述通过相机镜头所看到的区域。缺省状态下,FOV参数是相机视图锥体的水平角度。你可在FOV方向弹出按钮中指定FOV是否是水平的、对角的、竖直的,这使得匹配真实世界的相机的操作变得容易,对以上进行改变仅仅影响测量的方法,对相机的实际视图是没有效果的。

(5)设置焦距

焦距总是以毫米为单位来测量的。它指的是从镜头的中心到相机焦点的长度(焦点是捕获图像的地方),在3ds Max中,较小的Lens将创建一较宽的FOV,让对象显现得距相机较远。较大的Lens值创建较窄的FOV,且对象显示的距相机比较近。小于50mm的镜头被称为广角镜头,而长于50mm被称做长焦镜头。

相机也可以被设置为正交视图,在这个视图中是没有透视的。正交视图的好处是在视口中显示的对象是按它们的相对比例显示的。启动此这个选项后,相机会以正投影的角度面对物体。

Stack Lenses(预设镜头):以内建的预设镜头作为相机使用的镜头。

Type(类型):切换相机的类型。

Show Horizon(显示水平线):启动此选项后,系统会将场景中的水平线显示在屏幕上。

Show Cone(显示锥形视野):启动此选项后,系统会将代表相机覆盖视野的锥形物体显示在屏幕上。

Environment Ranges(环境范围):设定相机取景的远近区域范围。Near Range(最近范围):设定环境取景效果作用距离的最近范围。Far Range(最远范围):设定环境取景效果作用距离的最远范围。Show(显示):启动此选项,相机环境效果的作用范围将会以两个同心球来表示。Clipping Planes(切片平面):设定相机作用的远近范围。Clip Manually(手动切片):以手动的方式来设定相机切片作用是否启动。Near Clip(切片最近值):设定相机切片作用的最近范围。Far Clip(切片最远值):设定相机切片作用的最远范围。

2.1.5 动画设计

动画设计环节主要是针对场景中的模型做动画设置,主要有刚体动画、柔体动画和刚体动画三种形式。在3ds Max里创建的“路径动画”“精确的参数关键帧动画”“刚体动画”“Reactor动画”都属于“刚体动画”。在将此类动画模型导入到VRP编辑器中时,请按以下方法执行:将制作好的刚体动画模型添加到一个ABC组中,同时该ABC组命名为“VRP_rigid”。在对“刚体动画”模型进行导出时,请确定VRP导出面板中的“刚体动画”复选框为勾选状态,在执行导出操作后,程序会自动识别导出的刚体动画模型个数。

用户在3ds Max里应用“Noise(噪波)”“Path Deform(WSM)”“路径变形(世界空间)”等修改器制作的动画都属于模型点变形动画,通常也被称之为“柔体动画”。在将此类动画模型导入到VRP编辑器中时,请按以下方法执行:将制作好的柔体动画模型添加到一个ABC组中,同时该ABC组命名为“VRP_soft”。在对“柔体动画”模型进行导出时,请确定VRP导出面板中的“柔体动画”复选框为勾选状态,在执行导出操作后,程序会自动识别导出的柔体动画模型个数。

在对“骨骼动画”模型进行导出时,只需要单击VRP导出面板中的“导出骨骼动画…”按钮,然后在弹出的“另存为”对话框中为骨骼动画命名并存储,最后再在弹出的导出对话框中单击“确定”执行骨骼动画的导出。如果一个场景中有多个骨骼动画,用户需要选择一个骨骼动画,将其通过File | Save Seleted…的方式将多个骨骼动画存储成独立的3ds Max文件后,再按以上操作步骤进行骨骼动画的导出,最后再通过VRP编辑器里“导入物体…”命令将多个VRP文件进行合并,以得到一个完整的VR场景。

2.1.6 渲染烘焙

在3ds Max中为模型添加了材质和灯光之后,既可用3ds Max默认渲染器Scanline渲染,也可使用高级光照渲染。由于场景在VRP里的实时效果的好与坏取决于在3ds Max的建模和渲染的表现,因此渲染质量好坏和错误的多少都将影响场景在VRP中的实时效果。VRP对应用什么类型的渲染器进行渲染没有严格要求,使用高级光照渲染可以产生全局照明和真实的漫反射效果;但应用标准灯光模拟全局光照,使用Scanline进行渲染其效果也很好。

烘焙就是把3ds Max中的物体的光影以贴图的方式带到VRP中,以求真实感;相反,如果将物体不进行烘焙而直接导入到VRP中,其效果是不真实的。为加强真实感,可以利用高级光照渲染。在3ds Max中进行烘焙的工具是“渲染(Render)>渲染到纹理(Render To Texture)”命令。在对场景进行渲染,并感到对渲染效果满意的情况下,然后对场景进行烘焙。其操作步骤如下:

①在3ds Max中,选择需要烘焙的模型。

②单击“渲染(Render)>渲染到纹理(Render to Texture)”,或在关闭输入法状态下直接按下数字键“0”,随后便会弹出“渲染到纹理(Render to Texture)”对话框。

③依次进行相应的参数调节和修改,设置完毕后点击“渲染(Render)”开始烘焙。

在烘焙贴图选择中,主要有两种方式:Lightingmap和Completemap。Lightingmap的优点:贴图清晰,耗显存低,如果是VRP的话可以在软件里调节对比度来改善;缺点:只支持3ds Max默认的材质,光感稍弱,要设计表面丰富的效果的话就只能在Photoshop中绘制了,对美工要求很高。

Completemap的优点:光感好,支持3ds Max大部分材质,如复合材质和多维材质等,能编辑出很多丰富的效果。缺点:贴图模糊,耗显存高,不过可以通过增大烘焙尺寸来解决贴图模糊的问题。

既然是做虚拟现实,显存的优化是很重要的。所以室内和室外比较大的场景建议使用Lightingmap,在VRP里还可以调整和优化,小部件物体和产品可以考虑使用Completemap,本身物体小,数目也不多,就可以做出最佳最丰富的效果!

2.1.7 模型导出

以上的过程设计都是在3ds Max中进行的,接下来可以利用VRP-for-Max插件,把场景中的模型导出至VRP-Builder中。如果用户还没有安装VRP-for-Max插件,请参看VRP系统帮助中的相关文档进行安装。VRP-for-Max导出过程非常自动化,对用户没有任何特定的要求。导出场景方法也十分简单,在实用程序面板,选择VRP-for-Max导出插件,然后按照提示和需要进行下一步操作,即可完成导出设计。