unity “星象台”室内场景

2015年01月21日 14:01 0 点赞 0 评论 更新于 2025-11-21 15:01

这两天学习时,我看到了Unity “星象台”室内场景的教程,其效果十分精美,在此分享给大家。

室外建筑模型与室内场景的区别

室外建筑模型主要聚焦于整体建筑外观的制作,注重模型的整体性,在结构上多以“大结构”呈现外观效果。而室内场景侧重于营造建筑的室内模型效果,更强调模型的结构性与真实性。这不仅要求模型结构制作精细,对模型比例也有更高要求。

在游戏中,室外建筑模型对于玩家而言显得高大,多用于中景和远景。即便玩家站在建筑下方,也只能看到建筑下层部分,上层结构等同于中景或远景。因此,建筑模型制作时,在模型面数和精细程度上以精简为主,追求大效果。而室内场景中,玩家与场景模型距离很近,场景内所有模型结构都在玩家视野范围内,这就要求场景模型比例与玩家角色匹配,贴图制作的结构绘制更精细、复杂且真实。

1. 场景模型的制作

本章将在Unity中制作一个封闭的室内场景,整体分为两大步骤:先在3ds Max中制作场景模型,再导入Unity引擎进行整体场景拼建。

室内场景基本墙体结构制作

在3ds Max视图中创建一个18边的基础圆柱体模型,将其塌陷为可编辑多边形,删除顶面和底面,然后反转剩余圆柱侧面的法线,通过编辑多边形命令制作成上下两层的室内结构。

墙围结构及地面模型结构制作

选中墙体模型,进入多边形Edge层级,选择下面的边缘,利用Cap命令制作底面。接着进入多边形面层级,选择底面,通过Detach命令将其分离,得到地面基础模型。对地面基础模型进行多边形编辑,在面层级下利用Inset命令逐级向内收缩,制作地面的分段层次结构。将中间的环形面利用Bevel命令向下挤出,使地面结构有凹凸起伏变化。同时,注意每个环形地面结构的包边制作,方便后期用贴图丰富结构细节。

立柱模型制作

在视图中创建8面的基础圆柱体模型,塌陷为可编辑多边形,通过Connect连接切线、Extrude挤出以及倒角等命令制作立柱下方的柱墩和上方的立柱结构。场景中的立柱一方面作为支撑结构,使整体建筑更客观真实;另一方面作为装饰结构,丰富场景细节。

立柱模型的复制与对齐

将墙体和地面模型对齐拼接,把立柱模型与墙体的一条纵向边线对齐。进入3ds Max层级面板,将立柱的Pivot轴线点对齐到地面中心,通过旋转复制的方式快速制作其他立柱模型。

模型贴图添加

室内整体框架模型完成后,为模型添加贴图。墙面使用四方连续的石砖贴图,立柱和横梁采用带有雕刻纹理的贴图。地面外围为木质贴图,中间是石砖贴图,内圈是带有雕刻纹理的石质贴图,最中心是一张带有完整图案的独立贴图。

屋顶结构制作

在3ds Max视图中创建一个半球模型,删除顶部的多边形面,上方再创建一个完整的半球模型,用Tube模型结构衔接两个半球。由于是室内结构,需将模型整体进行法线反转。

屋顶模型贴图添加

下层半球添加一张带有雕刻纹理的石砖四方连续贴图,顶层半球添加一张带有星座图案的完整独立贴图。

其他场景道具模型制作

还需制作一些其他的场景道具模型,如水 晶、地球仪、石像雕塑、书橱等,这些模型将在Unity引擎编辑器中导入调用并在室内场景中整合摆放。

2. 场景资源优化处理

场景模型制作完成后,正式导出为FBX文件前,需要对模型资源进行优化处理。在模型制作过程中,我们使用完整几何体编辑,当模型拼合到场景中时,由于室内场景空间和结构的原因,会出现相互遮挡的情况。例如,模型与室内场景地面相接的底部,或靠近墙面的多边形面,这些面片处于玩家视角永远看不到的死角区域,需要删除,以保证资源导入引擎后的优化显示。虽然每个模型删除的面片可能不多,但随着模型数量增加,优化处理十分必要。

上层立柱和横梁废面删除

选中室内场景上层立柱和横梁插入到墙壁内的多边形面片结构,利用顶视图可快速选取。经统计,仅场景上层结构就有300余面被选择,可见删除废面的重要性。

下层立柱和横梁废面删除

用同样的方法选择并删除场景下层装饰立柱与横梁和墙面相交的多边形面。

模型导出设置

模型资源优化处理结束后,进行导出操作。导出前需设置系统单位和比例大小,打开3ds Max菜单栏Customize(自定义)菜单下的Units Setup选项,点击System Unit Setup按钮,将系统单位设置为Centimeters厘米。调整好模型比例后,将所有模型的Pivot轴心点归置到模型中心位置,把模型位置调整到坐标系原点(0,0,0),统一模型名称与模型材质球名称。然后选择File文件菜单下的Export选项,逐一选择需要导出的模型,利用Export Selected命令将模型导出为FBX格式文件。

3. Unity3D模型的导入与设置

项目创建与资源文件夹设置

场景资源导出完成后,启动Unity3D引擎编辑器。点击File菜单下的New Project创建新的游戏项目,在弹出面板中设置项目文件夹路径和导入Unity预置资源。打开创建的项目文件夹,在Assets资源文件中创建Object文件夹,用于存放FBX模型和贴图资源。Object文件夹下的Textures文件夹存放模型贴图,Materials文件夹由系统自动生成,用于存放模型材质球。

模型导入与场景搭建

将各种资源文件拷贝到Assets目录后,可在Unity引擎的Project项目面板中查看和调用。将室内场景模型和各种场景道具模型从项目面板拖拽到Unity场景视图中。由于室内场景是封闭空间,使用Unity编辑器制作时无需创建Terrain地形,后续操作都在制作好的室内场景模型中进行搭建和拼接。

光源创建

默认状态下场景没有光源,模型显得灰暗,需创建一个基本光源方便操作和查看。点击GameObject游戏对象菜单,在Create Other选项下创建一盏Point Light点光源,在Inspector面板中将光源的Range(范围)设置为80,Intensity(强度)调大到5。此光源仅用于简单照亮场景,并非最终的布光设置。

材质Shader设置

在场景模型整合摆放前,需对所有导入的场景模型进行材质Shader设置。可在项目面板中选择模型,在Inspector面板中设置其材质和贴图参数,也可直接选择模型对应的材质球进行设置。

  • 选择望远镜模型的材质球,将Shader设置为Bumped Specular法线高光模式,设置主色调和高光颜色,利用Shininess参数设置高光的反光区域范围。
  • 用同样方法设置其他模型的Shader,将书橱和地球仪模型的材质球Shader设置为VertexLit顶点模式,分别设置材质的主色调、高光色、自发光颜色和高光反射范围。
  • 将水晶模型的材质Shader设置为Self - Illumin/Bumped Diffuse(自发光法线贴图模式),雕塑模型的材质Shader设置为Bumped Specular模式。由于整体场景主光源为蓝绿色,尽量将所有Shader的高光反射颜色设置为绿色。
  • 将场景中所有雕刻装饰结构(如立柱、横梁、大门、窗户模型等)的贴图Shader设置为Bumped Specular模式,以强调雕刻结构的纹理凹凸质感。
  • 将地面和墙体的石砖材质Shader设置为Bumped Diffuse模式。
  • 将屋顶中央独立贴图的材质Shader设置为Self - Illumin/VertexLit模式,配合后续粒子特效制作。

碰撞盒设置

从项目面板的预置资源中调出第一人称角色控制器,拖拽导入到室内场景中。由于场景未制作碰撞盒,运行游戏时角色控制器不能与场景发生碰撞反应。因此,需在Inspector面板中将Meshes选项下的Generate Colliders勾选,使室内场景生成与自身网格模型一致的碰撞盒,让角色控制器能在场景中正常活动。

场景模型摆放与整合

  • 将水晶模型移动到室内屋顶正中央,作为室内场景的虚拟主光源(主光源的视觉模型)。
  • 将望远镜模型移动到地面平台中央,让镜筒延伸出墙面的窗口。
  • 利用复制(Ctrl + D)的方式将雕塑模型和书橱模型紧靠墙壁间隔错落摆放。至此,室内场景的整体拼接和整合完成。

4. 场景光源、特效及输出设置

基本场景搭建完成后,需为场景添加光源和特效,增强室内场景的视觉效果,烘托整体氛围。室内场景与野外场景不同,野外场景有方向光模拟日光,而室内场景的光源基本来自室内,少数情况是光线透过窗户由室外射进室内。本章实例场景为全封闭结构,需设定一盏主体光源照亮全局环境,若干次级光源辅助照亮场景。

光源设置

  • 将房间屋顶正中央的水晶作为场景的虚拟主光源,在其附近创建一盏Point Light点光源照亮整个场景。可直接修改之前创建的点光源参数,将Range设置为60,光源颜色调为淡绿色,灯光强度设置为6,勾选Draw Halo形成光晕效果。
  • 将墙壁雕塑上的水晶作为次级虚拟光源,在其附近创建Point Light点光源辅助照亮场景,将Range设置为10,强度设置为2.5,利用复制方式快速完成其他次级光源制作。

天空盒子设置

点击Edit菜单下的Render Settings选项,在Inspector面板中为Skybox Material添加预置资源中的MoonShine Skybox,虽然场景为封闭室内环境,但从望远镜窗口可看到室外环境。

粒子系统设置

在场景视图中创建一个Particle System粒子系统,Shape选择Cone,调整发射器形状为圆饼状,激活Limit Velocity Over Time选项,将Speed参数设置为0,形成圆点粒子原地闪烁效果。将粒子发射器移动到屋顶的半球形穹顶内,模拟星空效果。

体积光特效添加与场景输出

在场景中央水晶下方添加一束体积光特效,至此室内场景制作完成。可利用File菜单下的Building Settings命令导出制作完成的游戏场景,输出为各个平台下可独立运行的游戏程序。

作者信息

feifeila

feifeila

共发布了 3994 篇文章