本教程系本人原创,欢迎转载,但务必请注明出处。U3D 开发交流群: 321301070

本篇文章我将会简单介绍下U3D RPG类游戏场景的搭建过程。
 
涉及到的U3D的基本知识:

GameObject: 组件的容器。U3D的特点就是一个组件架构,组件的概念就像搭建积木一样,你需要什么功能,我就提供一个组件给你。
当然,我这样的比方不一定恰当。
一个空GameObject本身并不提供任何东西,你需要什么,往上加你需要的组件就可以了。所以它是一个组件容器。
所以可以说,场景就是一堆GameObject搭建起来的。
Transform: 对应3D物体的位置,旋转,缩放三组向量。
Mesh Filter:网格模型组件,在这里指定需要渲染的3D 模型网格
Mesh Render: 渲染器,会要求指定对应材质,而材质则往往需要指定贴图和使用渲染器(Shader)
所以Mesh Filter和Mesh Render两个组件就包办了一个基本模型的渲染
Animation 组件:这个可以添加动画,一般是3D 软件软件中制作的骨骼动画,也可以是Unity自带动画系统制作出来的动画
一般上面材质对应的Shader会在Mesh Render组件下面显示出来,可以挑选满足要求的Shader来实现特殊的要求
U3D 粒子系统或者第3方的粒子插件,这个就不展开了。主要用于场景中渲染氛围。比如火光,烟雾,落叶等等。
这里有对应的详细文档 http://game.ceeger.com/Script/

下面是一个游戏的整体场景图。

接下来看下场景是如何布局的。

场景布局图

可以看到,整个游戏场景很大的。这里Grafika_xx代表了不同的场景区域。除开这些场景,还有一个相机和一个碰撞层。
相机是玩家看到的一个视图区域。碰撞层是为了提供碰撞检测。
3D 游戏一般为场景制作低模作为碰撞层,比如这里我们可以看到,这里只有一个Mesh Collider组件,而用于渲染的Mesh
Render并不存在,因为它并不需要渲染出来。

用低模制作的碰撞层图

接下来我们展开一个场景区域进行分析。
第一个区域场景图。

可以看到整个区域由一些房子,灯笼,风车等物体构成,还有几个粒子特效用于渲染氛围。
几个灯笼用于装饰用。

首先看看地面:
地面01_01,01_02等几个GameObject组合而成。我这里选择01_01作为例子,可以看到
这个物体都是由模型(Mesh Filter组件),渲染器组件Mesh Render组成。我们调整Transform组件的位置和旋转参数,
 将它们放在了合适的位置,就构成了地面的效果。见下面的效果图

由此可见,3D 场景的一般静态的物体就是通过3D 建模而后导入引擎,通过Mesh Filter以及Mesh Render组件就完成了渲染。
然而,游戏不可能物体都是静态的,比如这里的灯笼就会左右晃动。
这是通过动画组件来实现的。

我们展开灯笼的监视面板,会发现这里有一个动画组件。里面放置了我们预先制作好的骨骼动画。
动画这里勾选了Play Automatically, 会自动播放上面Animation 里面指定的动画,就实现了左右晃动的效果。
这里指的就是1代表的动画。

我们还会发现灯笼有一个红色的光晕效果,这个就是地下的【外发光特效】子物体来实现了。
展开【外发光特效】子物体,会发现上面有一个脚本组件ScaleAnimationOnObject, 可见这是一个做缩放效果的脚本
使用了一种特殊的Additive Shader 做高亮效果。再往下看就是灯笼得粒子特效了。
 
可见通过动画以及脚本和例子特效,就会让游戏场景的的GameObject动起来了。

最后简单总结下3D 场景的制作流程:
 
静态物体:建立GameObject, 添加Mesh Filter 组件指定网格模型, 添加Mesh Render 组件添加材质,并为材质指定贴图和渲染器  Shader.
   调整Transform 组件移动到合适位置,并可以做缩放和旋转操作来完成最终的摆放。
动态物体:渲染和静态物体是一样的。动态部分实现可以通过添加动画组件,然后添加在外面制作好的动画,通过制定Play Automatically 可以完成指定动画的播放。也可以通过脚本来根据需要来播放动画。一些特殊效果比如灯笼的发光效果需要通过脚本结合Shader来完成。
 3D 粒子特效对应游戏场景的氛围渲染尤为关键。
另外,添加相机用于场景漫游。添加低模用于构建碰撞层。让主角不要走入3D物体内部,避免穿帮。
 
当然,这里仅仅是一个简单介绍,一些比如光照部分,水流,火光等场景组件并未涉及。下次再说。
 
下面是另外一个场景,可以看到基本按照上面说的步骤来搭建场景的。

延伸阅读:
     1. https://www.zhihu.com/question/21638103
     2. https://www.zhihu.com/question/27603966

U3D 场景快速搭建教程相关推荐

  1. 基于Github的个人博客快速搭建教程

    总算下定决心要把博客搭建起来了,之前一直因为想找工作的原因,没有整.现在清闲下来了,再加上最近心态放松了,不太想学习了,所以想着找点东西玩儿. 个人博客的搭建是Hexo与Github配合进行搭建.通过 ...

  2. Linux自建steam饥荒服务器教程,【图片】Steam饥荒联机版专用服务器快速搭建教程_饥荒联机吧_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 首先,在Steam上下载Don't Starve Together Dedicated Server 2.如果游戏里面有存档(在Kei/DoNotStar ...

  3. github个人博客快速搭建教程

    文章目录 首先搭建起一个github博客 1 左上角标题及简介以及下方的介绍 2 评论和访客数 3 文章 4 Home Archives Categories 和 Tags 5 Collections ...

  4. 若依微服务版RuoYi-Cloud本地环境快速搭建教程

    参考若依官网文档:https://doc.ruoyi.vip/ruoyi-cloud/ 具体步骤: 一.下载RuoYi-Cloud源码 源码官方地址:https://gitee.com/y_proje ...

  5. 在ArcGIS中快速搭建三维场景教程(从数据获取到软件制作)

    Enterprise本地Web效果 一. 背景及目标 (1)背景:最近看到许多通过下载的GIS数据结合rhino等设计软件生成三维模型的教程,个人感觉其实这些设计软件用来快速生成三维模型,特别是对接的 ...

  6. 腾讯云轻量级服务器怎么搭建网站,腾讯云轻量应用服务器新手教程:快速搭建网站...

    原标题:腾讯云轻量应用服务器新手教程:快速搭建网站 腾讯云轻量应用服务器(Lighthouse)具备轻运维.开箱即用的特点,适用于小型网站.博客.论坛.电商以及云端开发测试和学习环境等轻量级业务场景, ...

  7. win10下快速搭建metasploitable3教程-简单版-已避坑

    最近搭建metasploitable3时遇到了诸多问题,有一说一不管是网上的教程还是官方的教程都tm全是坑,我也是服的,经过三天的折腾才tm装好靶场,网上有很多傻卵只会转发复制粘贴,坑人不浅,太智障了 ...

  8. 【游戏开发实战】Unity快速搭建体素风格关卡地图(Tile3D | 我的世界 | Voxel | 场景 | 编辑器)

    文章目录 一.前言 二.本文最终效果 三.MAST工具基本操作 1.工具下载:Modular Asset Staging Tool(MAST) 2.导入工具:Import 3.创建场景:Scene 4 ...

  9. Unreal Engin_画廊制作笔记_001<设计草图,利用BSP快速搭建简单场景>

    001设计草图,利用BSP快速搭建简单场景 本笔记开始记录所学的知识点以及细节操作等,分享下自己学习UE4的经验,也为了巩固知识,便于复习. 接下来我会以模块化的方式,根据步骤来分享学习制作的经验,如 ...

  10. 微塔式服务器esxi虚拟机黑群晖,[教程] 在ESXI上快速搭建本站最快的黑群辉(NAS)...

    [教程] 在ESXI上快速搭建本站最快的黑群辉(NAS) 2021-01-31 23:30:00 127点赞 252收藏 19评论 最近考试,比较忙.不得不说CS学生还是很苦逼的.上次不小心把带有另外 ...

最新文章

  1. R语言jitter函数为数据添加噪声(noise)扰动信息实战
  2. Monthly update for Dynamics 365 for Operation
  3. 无法打开物理文件 操作系统错误 5:拒绝访问 SQL Sever
  4. Windows内存修改初篇
  5. 光标移动事件。 gridview光标移动变色
  6. Android网络编程之——文件断点下载(暂停/继续/重新下载)
  7. Centos7配置AirPrint(解决手机执行多次打印后搜索不到打印机的情况)
  8. excel导入的数据中文字段转英文
  9. pointnet源码阅读:训练
  10. 计算某年母亲节是哪一天
  11. PDF打开后出现中文乱码情况
  12. 20180504_android传感器入门之光线传感器
  13. H5页面微信自动登录,和微信页面自定义分享样式
  14. SAP SMTP邮箱配置全过程
  15. Java按钮监听器ActionListener 事件监听教程.
  16. APQP , PPQP, ESO之间关系
  17. 8-14-粘包问题、(通过简单报头)解决粘包问题、定制复杂报头
  18. 七十七.ags4-1.1.15
  19. 直播一对一视频直播聊天
  20. SWUST OJ 617: 班级课程成绩计算

热门文章

  1. 2020-Point attention network for semantic segmentation of 3D point clouds
  2. Problem F: 求三角形面积-gyy
  3. IMF Fintech负责人:金融科技监管体制设计的五原则
  4. onclick和onfocus的区别
  5. 如何想领导说清楚DCMM到底有什么好处?
  6. Maven中创建同名项目:Failed to create a Maven project解决(IntelliJ IDEA)
  7. Java问卷调查管理系统(附数据库)
  8. 利用输入法输入汉字,如何统计字数
  9. 简单的MD5加密解密
  10. OSError: [WinError 127] 找不到指定的程序。 Error loading “C:\Anaconda3\envs\Machine_Learning\lib\site-package