我的订单|我的收藏|我的商城|帮助中心|返回首页
虚拟现实新闻>VR>行业资讯>培训教程

用Unity3D创建简单场景漫游(图)

文章来源:第三维度 作者: 发布时间:2011年11月11日 点击数: 字号:

    来源:第三维度
    作者:未知

    1.建模中使用的图片、文件、文件夹等以及模型中物体、材质等的名称都不能使用中文或者特殊符号,可以使用英文字母、数字、下划线等

    2.调整Max的单位为米

    3.烘培光影的设置

    4.模型的中的植物效果,第一种是单面片植物,需要设置其轴心为其物体的对称中心;第二种是十字交叉的植物效果;第三种则是到Unity3D编辑器中通过地形编辑器系统添加

    基本设置

    5.Fbx导出插件下载地址:

    http://usa.Autodesk.com/adsk/servlet/item?siteID=123112&id=10775855

    6.将Max文件中用到的图片都拷贝到Textures目录下,如

用Unity3D创建简单漫游(图)

     7.再打开Max文件,导出为FBX文件,使用默认设置,FBX文件也放置在和Max文件相同的目录下,如

用Unity3D创建简单漫游(图)

    导出的时候,可以将模型简单的分类,如地面、植被、楼房等,也可以将模型分为几个区域,如小区1,小区2,学校等等分开导出

    8.将包含Max文件、Fbx文件和Textures文件夹的文件夹拷贝到Unity3D项目的Assets目录下,如下图中红圈

用Unity3D创建简单漫游(图)

    在下一次用Unity3D编辑器开启本项目的时候,编辑器将自动导入/更新该文件夹中的信息,并生成Materials文件夹,如

用Unity3D创建简单漫游(图)

    9.启动Unity3D编辑器

    10.选择刚才拷贝进来的文件中的Fbx文件,如

用Unity3D创建简单漫游(图)

    修改其中的Meshes下的Scale Factor和Generate Colliders,如

用Unity3D创建简单漫游(图)

    点击其他Fbx文件或者单击其他区域将弹出如下的对话框

用Unity3D创建简单漫游(图)

    点击Apply即可,类似的方式设置其他Fbx文件

    注意,其中植物/植被类的Fbx文件不需要设置Generate Colliders项

    11.将Fbx文件直接拖放到Hierarchy区域,如

用Unity3D创建简单漫游(图)

    12.点击Hierarchy区域中的对象,同时将鼠标移动三维显示区域,同时点击键f,则该对象自动适配显示到三维区域中心,如

用Unity3D创建简单漫游(图)

    13.将全部fbx添加完成后,提高场景亮度如下

用Unity3D创建简单漫游(图)

    单击Ambient Light,如下 

用Unity3D创建简单漫游(图)

    调整为

用Unity3D创建简单漫游(图)

    即可设置完成

    14.设置第一人称浏览

    删除场景中Main Camera

用Unity3D创建简单漫游(图)

    将Project区域的Standard Assets下的Prefabs下的First Person Controller拖到Hierarchy区域中

用Unity3D创建简单漫游(图)

    点选First Person Controller,调整First Person Controller的位置到场景中合适的位置,并设置其高度为1.37到2.1左右

用Unity3D创建简单漫游(图)

用Unity3D创建简单漫游(图)

     设置First Person Controller的高度在场景中地面之上

用Unity3D创建简单漫游(图)

    15.点击运行,即可测试

用Unity3D创建简单漫游(图)

    修改视角控制键为右键

    16.打开Project区域中的StandardAssets下的CameraScripts下的MouseLook脚本,在

    在Quaternion originalRotation;

    void Update ()

    {
    if (axes == RotationAxes.MouseXAndY)

    {

    // Read the mouse input axis

    中添加一行代码修改为

    Quaternion originalRotation;

    void Update ()

    {

    if(Input.GetAxis ("Fire2")==0) return;

    if (axes == RotationAxes.MouseXAndY)

    {

    // Read the mouse input axis

用Unity3D创建简单漫游(图)

    如何取消浏览窗口上的右键菜单

    只要设置Unity对象的参数即可禁止右键菜单的显示,如下:

    <object id="UnityObject" classid="clsid:444785F1-DE89-4295-863A-D46C3A781394"

    width="600" height="450"codebase="UnityWebPlayer.cab#version=2,0,0,0">http://webplayer.Unity3d.com/download_webplayer/UnityWebPlayer.cab#version=2,0,0,0">

    <param name="src" value="MyDataFile.Unity3d" />

    <param name="disableContextMenu" value="true" />

    <embed id="UnityEmbed" src="MyDataFile.Unity3d" width="600" height="450"  type="application/vnd.Unity" pluginspage="http://www.Unity3d.com/Unity-web-player-2.x"  disableContextMenu="true" />

    </object>

    植物效果设置

    17.对于单面片的植物效果,需要设定其材质为Transparent/VertexLit类型,并为其添加公告板脚本

    设定前

用Unity3D创建简单漫游(图)

    设置材质类型为Transparent/VertexLit类型,如下

用Unity3D创建简单漫游(图)

    给单面片植物添加公告板脚本的方法是先选择该植物,然后点击菜单component下的scripts下的camera Facing Billboard即可,如下

用Unity3D创建简单漫游(图)

    设置材质类型和添加公告板脚本后,如下 

用Unity3D创建简单漫游(图)

    如果没有该脚本组件,可以打开脚本编辑器,拷贝如下代码到脚本中,保存到Assets\Scripts下,命名为CameraFacingBillboard.cs即可

    using UnityEngine;

     using System.Collections;
 
     public class CameraFacingBillboard : MonoBehaviour
     {
        public Camera cameraToLookAt;
 
    void Start()
     {
     cameraToLookAt = Camera.main;
     }
 
    void Update()
        {
        Vector3 v = cameraToLookAt.transform.position - transform.position;
        v.x = v.z = 0.0f;
        transform.LookAt(cameraToLookAt.transform.position - v);
        }
     }

    18.对于十字交叉的植物,需要将其材质设定为Nature/Vegetation Two Pass unlit类型

    设置前的效果

用Unity3D创建简单漫游(图)

    设置后的效果 

用Unity3D创建简单漫游(图)

    水面效果的设置

    19.创建一个网格面片 

用Unity3D创建简单漫游(图)

    20.给该水面面片设置水材质和水脚本,如

用Unity3D创建简单漫游(图)

    即可

    烘培光影贴图的处理

    21.Unity3D光影烘培的要求

    U3D的光影贴图使用的是3Dmax中的标准材质的自发光贴图通道来存储光影贴图相关参数,如

用Unity3D创建简单漫游(图)

    22.给每个物体都附上贴图,如果是纯色物体,也付给纯色贴图

    23.打光后,选择要烘培的物体

用Unity3D创建简单漫游(图)

    设置输出路径

用Unity3D创建简单漫游(图)

    添加烘培输出的贴图类型

用Unity3D创建简单漫游(图)

    添加“LightingMap”类型

用Unity3D创建简单漫游(图)

    设置烘培贴图大小和目标贴图位置为“自发光” 

用Unity3D创建简单漫游(图)

    设置烘培材质,选择“输出到源” 

用Unity3D创建简单漫游(图)

    点击“渲染”即可

    24.标准材质贴图的烘培光影处理

    a)物体据有标准材质 

用Unity3D创建简单漫游(图)


    b)烘培渲染后,物体具有两个贴图

用Unity3D创建简单漫游(图)

    c)导出Fbx即可

    25.多重子材质贴图的烘培光影处理

    a)物体据有多重子材质贴图 

用Unity3D创建简单漫游(图)

    b)渲染烘培后每个子材质都据有两个贴图 

用Unity3D创建简单漫游(图)


    c)选择该物体,执行“多维材质2标准材质.ms”脚本,将该多维材质物体按其材质数量分解为标准材质的多个物体,新物体的名字以“原多维材质物体名字~其材质名称”命名,如 

用Unity3D创建简单漫游(图)

用Unity3D创建简单漫游(图)

    点击“开始转换”,则将该物体从多维材质物体按期子材质分解为多个具有标准材质的物体 

用Unity3D创建简单漫游(图)

    d)将全部的具有多维材质类型的物体分解完成后,即可导出

    26.多个物体使用同一贴图的烘培光影处理

    因为我们在导入fbx文件到Unity3D编辑器中的时候,使用的都是按贴图来生成材质文件,所以多个物体使用同一贴图时会发生错误,修改其中任何一个的材质设置时,其他的使用该贴图的物体都会受到影响,解决的方法便是在Unity3D编辑器中生成一个具有该贴图的新材质,然后重新付给当前物体。

    27.在U3D编辑器中修改物体的材质类型为光影贴图

    设置物体的材质类型为Lightmapped/Diffuse 

用Unity3D创建简单漫游(图)

    根据物体的名称将对应的光影贴图拖动到Lightmapp域,其中标准材质物体的光影贴图名称是“其物体名称LightingMap.tga”;从多维材质类型转换过来的物体的光影贴图名称是“其物体名称中~符合前的部分LightingMap.tga”

用Unity3D创建简单漫游(图)

  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料