VR开发实战+AR与VR开发实战+Unity 3D网络游戏实战+Unity虚拟现实开发实战 4本
YL0623 9787111551317 9787111549963
9787111553304 9787121305047
内容简介
本书由在虚拟现实领域具有丰富实战经验的技术专家编写,虽然在方兴未艾的虚拟现实领域,新产品、新技术日新月异、层出不穷,但是万变不离其宗。本书既包含了虚拟现实领域近百年的发展概况,又立足开发实战,对必要的理论知识进行了简单的介绍,特别是书中大篇幅的实战干货,为广大对虚拟现实有兴趣的开发人员提供了**的学习资料。由于书中对开发工具Unity、设计建议、数学知识等内容都有相关介绍,所以只要有基础的开发人员,都可以通过阅读本书熟悉虚拟现实开发技术。本书不但对Cardboard、Oculus VR、HTC Vive 均有相应教程,还以Vive 开发为例深入介绍了各类型虚拟现实产品开发的实战案例,从观赏应用到虚拟现实单机游戏,再到联机游戏,涵盖了虚拟现实开发领域所需要的大部分开发技术。实战部分还在一定程度上深入各平台的SDK 内部,同时也为开发人员继续了解各平台SDK 提供了入门指南。
作者简介
冀盼:毕业于哈尔滨工业大学,前工行软件开发中心IEPA应用负责人,多年应用架构设计经验,负责工行门户网站、手机银行、个人网银等产品设计开发,现任奥秘游戏CTO,负责奥秘IT产品规划、技术研究、技团队管理,其团队研发的探索解谜游戏《画境》,是HTC Vive首届VR内容开发大赛获奖作品。谢懿德:毕业于天津大学,知名虚拟现实公司奥秘游戏的资深架构师,在学生时代就热爱图形图像的研究与网络架构设计,毕业后多年一直从事网络应用相关开发,曾是工行融e联客户端核心技术人员。对于VR(虚拟现实)有着丰富的实战经验和技术积累,也是HTC Vive,届内容大赛获奖作品《画境》的核心设计开发人员。
目录
1 虚拟现实的前世今生 1
1.1 初探 ......................................................................................................... 1
1.2 缓慢发展 ................................................................................................. 2
1.3 虚拟现实又火爆了 ................................................................................. 6
1.3.1 主机VR 的“三国演义” ............................................................................ 6
1.3.2 群雄逐鹿 ....................................................................................................... 7
1.4 虚拟现实可以干什么 ............................................................................. 8
1.4.1 培训教育 ....................................................................................................... 8
1.4.2 运动 ............................................................................................................... 8
1.4.3 游戏 ............................................................................................................... 9
1.4.4 电影 ............................................................................................................... 9
1.4.5 心理治疗 ..................................................................................................... 10
1.4.6 广告 ............................................................................................................. 10
1.4.7 虚拟现实直播 ............................................................................................. 10
1.5 虚拟现实产品介绍 ............................................................................... 11
1.5.1 主体硬件 ..................................................................................................... 11
1.5.2 各种配件 ..................................................................................................... 12
1.6 小结 ....................................................................................................... 15
2 虚拟现实设计初探 16
2.1 虚拟现实技术难点 ............................................................................... 16
2.1.1 晕动症 ......................................................................................................... 16
2.1.2 视疲劳 ......................................................................................................... 18
2.1.3 成像延时 ..................................................................................................... 18
2.1.4 畸变成像 ..................................................................................................... 19
2.2 虚拟现实应用设计时要考虑的因素 ................................................... 20
2.2.1 刷新率和帧数的影响 ................................................................................. 20
2.2.2 分辨率影响 ................................................................................................. 20
2.2.3 场景复杂度影响 ......................................................................................... 21
2.2.4 摄像机控制 ................................................................................................. 23
2.2.5 自我认知冲突 ............................................................................................. 24
2.2.6 更自然的交互 ............................................................................................. 24
2.2.7 音乐、音效的使用 ..................................................................................... 26
2.2.8 多人联机 ..................................................................................................... 27
2.3 小结 ....................................................................................................... 27
3 认识HTC Vive 28
3.1 HTC Vive .............................................................................................. 28
3.2 运行环境 ............................................................................................... 28
3.2.1 硬件环境 ..................................................................................................... 28
3.2.2 软件环境 ..................................................................................................... 29
3.3 简述Lighting House 原理 .................................................................... 30
3.4 将Vive 连接到电脑 ............................................................................. 30
3.5 房间设定 ............................................................................................... 33
3.6 小结 ....................................................................................................... 37
4 Unity 简介 38
4.1 Unity 入门 ............................................................................................. 38
4.1.1 Unity 简介 ................................................................................................... 38
4.1.2 下载及安装 ................................................................................................. 38
4.1.3 Unity 5 授权 ................................................................................................ 41
4.1.4 Unity 的语言及跨平台原理 ....................................................................... 42
4.2 Unity 编辑器使用简介 ......................................................................... 43
4.2.1 编辑器界面 ................................................................................................. 43
4.2.2 工具栏 ......................................................................................................... 44
4.2.3 Asset Store ................................................................................................... 45
4.2.4 菜单栏 ......................................................................................................... 47
4.2.5 常用工作视图 ............................................................................................. 50
4.3 Unity 脚本以及脚本事件调用 ............................................................. 54
4.4 Unity 物体系统简介 ............................................................................. 55
4.5 创建并发布一个简单的游戏 ............................................................... 56
4.6 Unity 中的全局光照 ............................................................................. 61
4.6.1 全局光照与局部光照 ................................................................................. 61
4.6.2 全局光照的实现问题 ................................................................................. 61
4.6.3 预计算的GI ................................................................................................ 62
4.6.4 烘焙GI ........................................................................................................ 62
4.6.5 预计算的GI 与烘焙GI 的关系 ................................................................. 62
4.6.6 Unity 的几种光源 ....................................................................................... 62
4.6.7 GI 实战 ........................................................................................................ 63
4.7 Unity 地形编辑器 ................................................................................. 67
4.8 Unity 中的粒子系统 ............................................................................. 70
4.9 小结 ....................................................................................................... 73
5 三维空间的数学基础 74
5.1 学习的目的 ........................................................................................... 74
5.2 空间数学的基本概念 ........................................................................... 74
5.2.1 点、矢量与标量 ......................................................................................... 75
5.2.2 笛卡尔坐标系 ............................................................................................. 75
5.3 构建测试项目 ....................................................................................... 76
5.4 矢量运算 ............................................................................................... 81
5.4.1 矢量和标量的乘法、除法 ......................................................................... 81
5.4.2 矢量的加法与减法 ..................................................................................... 84
5.4.3 矢量的模 ..................................................................................................... 86
5.4.4 矢量的归一化 ............................................................................................. 87
5.4.5 矢量的投影 ................................................................................................. 89
5.4.6 矢量的点积 ................................................................................................. 91
5.4.7 矢量的叉积 ................................................................................................. 93
5.5 小结 ....................................................................................................... 96
6 Vive 开发环境搭建及插件介绍 97
6.1 获取SteamVR 插件 ............................................................................. 97
6.2 将SteamVR 插件导入Unity ............................................................... 97
6.3 SteamVR 包简介 .................................................................................. 99
6.4 实现一个基本的VR 场景 ............................................................. 101
6.4.1 工程场景搭建 ........................................................................................... 102
6.4.2 添加VR 组件 ............................................................................................ 104
6.4.3 常用SteamVR 组件详解 .......................................................................... 105
6.4.4 通过事件监听实现拿、放、扔 ................................................................ 117
6.4.5 通过继承实现发射器效果 ....................................................................... 121
6.5 小结 ..................................................................................................... 123
7 Vive 开发:解密类游戏 124
7.1 游戏开发流程 ..................................................................................... 124
7.2 游戏策划 ............................................................................................. 125
7.3 游戏场景 ............................................................................................. 126
7.4 解密逻辑:激光发射 ......................................................................... 127
7.5 接收激光 ............................................................................................. 130
7.5.1 基础的接收脚本 ................................................................................... 130
7.5.2 接收并发射激光 ....................................................................................... 132
7.5.3 接收激光后开门 ....................................................................................... 132
7.5.4 接收激光后关卡胜利 ............................................................................... 133
7.6 制作接收和发射激光的预制体 ......................................................... 134
7.7 操作狮子旋转 ..................................................................................... 137
7.8 完成剩余场景布置 ............................................................................. 139
7.9 效果演示 ............................................................................................. 142
7.10 小结 ................................................................................................... 144
8 Vive 开发:,人称射击类游戏 145
8.1 策划 ..................................................................................................... 145
8.2 游戏场景 ............................................................................................. 145
8.3 创建怪物 ............................................................................................. 146
8.4 Unity 中的自动寻路 ........................................................................... 149
8.4.1 Navigation ................................................................................................. 149
8.4.2 Nav Mesh Agent 组件 ............................................................................... 150
8.5 添加怪物自动寻路 ............................................................................. 151
8.6 添加怪物动画控制器 ......................................................................... 154
8.7 怪物行为控制 ..................................................................................... 157
8.8 游戏管理类 ......................................................................................... 160
8.9 怪物攻击 ............................................................................................. 162
8.10 玩家攻击 ........................................................................................... 164
8.10.1 添加手柄手枪模型 ................................................................................. 164
8.10.2 添加手枪开枪动画 ................................................................................. 165
8.10.3 实现开枪逻辑 ......................................................................................... 167
8.10.4 添加开枪脚本 ......................................................................................... 170
8.10.5 设置怪物的层级(Layer) .................................................................... 170
8.11 游戏重玩逻辑 ................................................................................... 171
8.12 添加背景音乐与音量调整 ............................................................... 174
8.13 小结 ................................................................................................... 175
9 Vive 开发:旅游观光应用 176
9.1 策划 ..................................................................................................... 176
9.2 游戏场景 ............................................................................................. 176
9.3 虚拟空间内移动传送 ......................................................................... 177
9.3.1 为什么要传送和传送的实现方式 ............................................................ 177
9.3.2 传送的实现原理 ....................................................................................... 177
9.3.3 实现位置点选取 ....................................................................................... 179
9.3.4 实现游客传送
内容简介
本书旨在为AR和VR程序开发者提供全面的参考资料,要求读者具备C#及Unity3D的基础知识,书中包含大量真实案例,操作步骤详尽,代码清晰。本书适用于高校计算机相关专业学生学习AR及VR技术,同时也适用于企业开发人员。
作者简介
张克发,毕业于烟台大学软件工程学院,曾在杭州、上海等地参与多款大型游戏的开发,擅长Android开发、Unity 3D、Node.js等技术,有丰富的AR、VR开发经验,曾主导开发多款AR、VR产品。目前担任ARinChina(增强现实中国)教育事业部总监,以及北京加速想象力教育咨询有限公司CTO。
赵兴,毕业于西安邮电大学数学系,擅长Unity 3D开发与算法研究,目前在ARinChina担任AR、VR开发工程师。
谢有龙,在ARinChina担任AR、VR开发工程师,擅长HTC Vive、Hololens等AR、VR技术。
目录
前言
作者简介
,部分
AR开发
第1章 AR技术简介 / 2
第2章 基于Vuforia SDK开发AR应用 / 4
2.1 准备Vuforia开发环境 / 4
2.2 创建Vuforia案例 / 7
2.3 创建AR视频 / 14
2.4 文字识别 / 15
2.5 柱形识别 / 18
2.6 立方体识别 / 21
2.7 3D物体识别 / 24
2.8 云识别 / 26
2.9 智能地形 / 29
2.10 虚拟按钮 / 33
2.11 帧标记识别 / 37
2.12 自定义目标识别 / 40
第3章 AR内容交互 / 46
3.1 动态加载AR模型 / 46
3.2 模型脱卡功能的实现 / 50
3.3 手势控制 / 53
第4章 AR互动大屏:透明视频的实现 / 57
4.1 使用AE制作带Alpha通道的视频 / 57
4.2 编写可播放透明视频的Shader / 59
4.3 开启摄像头并实现互动大屏的视频播放 / 64
第5章 AR动画:AR与Flash动画的结合 / 68
5.1 准备GAF插件 / 68
5.2 实现动画播放 / 69
5.3 用AR方式实现扫描 / 70
第6章 AR游戏开发:卡牌对战 / 71
6.1 多图识别生成模型 / 71
6.2 卡牌对战功能的实现 / 74
第7章 涂色类AR开发 / 87
7.1 UV的概念 / 87
7.2 使用Photoshop绘制涂色的识别图 / 88
7.3 使用3D Max处理模型的UV / 89
7.4 搭建Vuforia AR开发环境 / 94
7.5 核心功能之通过C#脚本获得变量 / 96
7.6 核心功能之通过C#脚本向Shader传递变量 / 101
7.7 在Unity中完善项目 / 104
第8章 使用陀螺仪模拟SLAM功能 / 106
8.1 SLAM的概念 / 106
8.2 模拟SLAM功能的实现 / 106
第9章 Unity与原生代码之间的交互 / 110
9.1 Unity与Android原生代码之间的交互 / 110
9.2 Unity与iOS原生代码之间的交互 / 115
第10章 使用HiAR SDK开发AR应用 / 123
10.1 搭建开发环境 / 123
10.2 导入SDK / 124
10.3 创建HelloWorld / 126
10.4 导出Android工程 / 130
10.5 导出iOS工程 / 135
10.6 使用本地识别包 / 137
10.7 开发云识别应用 / 140
10.8 制作云识别内容 / 143
10.9 创建视频AR应用 / 147
10.10 使用HiAR创建涂色类AR应用 / 149
10.11 多图识别 / 152
10.12 动态加载 / 154
10.13 设置场景中心点 / 156
第11章 其他AR SDK简介 / 159
11.1 基于Wikitude SDK开发AR应用 / 159
11.2 基于VoidAR SDK开发AR应用 / 163
第12章 AR创建工具:找趣(realcast)浏览器 / 178
12.1 什么是找趣 / 178
12.2 找趣后台 / 178
12.3 创建场景 / 181
12.4 制作场景 / 183
12.5 如何使用找趣 / 187
12.6 管理场景/项目 / 187
12.7 事件交互的定义 / 189
12.8 模型动画的播放 / 191
第二部分
VR开发
第13章 VR技术简介 / 194
第14章 基于Google Cardboard开发VR应用 / 197
14.1 Cardboard SDK for Unity环境配置 / 197
14.2 利用Cardboard创建VR场景 / 200
14.3 Cardboard中GUI的设置 / 201
14.4 Cardboard中3D物体的选取 / 203
14.5 Cardboard中凝视触发操作的实现 / 204
14.6 Cardboard中全景相册的实现 / 209
14.7 Cardboard中全景视频播放的实现 / 211
第15章 基于HTC Vive开发VR应用 / 214
15.1 Vive设备的安装 / 214
15.2 搭建Vive开发环境 / 217
15.3 创建Vive游戏场景 / 218
15.4 Vive中的手柄交互 / 220
15.5 功能开发之扳机键(Trigger) / 225
15.6 功能开发之触摸板(Touchpad) / 228
15.7 功能开发之功能键(ApplicationMenu) / 230
15.8 功能开发之手柄振动(TriggerHapticPulse) / 230
15.9 功能开发之瞬移(Teleporter) / 231
15.10 功能开发之左右侧键(Grip) / 236
15.11 功能开发之The LabRenderer / 237
第16章 基于HTC Vive实现房间漫游 / 239
16.1 准备工作 / 239
16.2 基本平台搭建 / 239
16.3 导入房间模型 / 240
16.4 基于Vive手柄的场景移动 / 241
16.5 基于Vive手柄的场景旋转 / 244
16.6 手柄与场景物体的交互 / 245
第17章 基于HTC Vive开发投篮游戏 / 250
17.1 准备素材 / 250
17.2 场景搭建 / 250
17.3 导出与运行 / 264
第18章 其他VR设备简介 / 266
18.1 Oculus VR简介 / 266
18.2 GearVR简介 / 267
18.3 大朋VR简介 / 268
18.4 PSVR简介 / 269
内容简介
本书在一开始便提出一个明确的学习目标,便是要制作一款完整的多人对战游戏,然后一步一步去实现它。全书分为3个部分:
,部分“单机游戏”:第1章至第5章,主要在于开发一款功能完整坦克单机游戏。除了让坦克行走、开炮,还将介绍基于代码和资源分离的界面系统、敌人AI。了解开发单机游戏的知识,也是为接下来的网络开发学习奠定基础。
第二部分“网络原理”:第6章至第8章,主要介绍网络通信的原理,开发客户端的网络模块和服务端程序框架。这套框架具有较高的通用性,可以运用在多种游戏上。
第三部分“网络游戏”:第9章至第12章,主要讲解房间系统和同步系统的逻辑实现,将单机坦克游戏改造成多人对战网络游戏。
作者简介
罗培羽,广州四三九九信息科技有限公司项目负责人、主程序,参与《卡布魔镜》《卡布西游》《卡布仙踪》等多款游戏的开发工作。对游戏程序开发有着深入了解,对游戏项目的组织和管理有着一定的实战经验。目前关注休闲手机游戏、虚拟现实和现实增强、独立游戏等领域。
曾组织团队开发3D仙剑同人游戏《仙剑5前传之心愿》,该项目为目前仅有的一款成功的3D仙剑同人,引起仙侠游戏圈的普遍关注。发布后获得游侠网单机RPG类下载排行第四名,仙剑官方也给予高度评价。
自2009年开始,发布《教你用vb制作rpg游戏》、《教你制作3DRPG游戏》、《掌握X3D》、《不会电脑也汇编》等大量教程。2004年出版专著《手把手教你用c#制作rpg游戏》,该书为《十二五全国高校数字游戏设计精品教材》系列之一。
目录
第1章 掌握Unity3D基本元素
1.1 简单的游戏
1.1.1在场景中创建一个立方体
1.1.2编写可以使立方体运动的程序
1.1.3测试游戏
1.1.4总结
1.2 资源导入
1.3 山体系统
1.4 灯光
1.5 材质
1.6 预设
1.6.1制作预设
1.6.2例子
1.7 声音
1.7.1音源
1.7.2接收器
1.7.3简单播放器
1.8 GUI
1.8.1用Unity3D编写HelloWorld程序
1.8.2用Unity3D编写登录框
1.9导出游戏
第 2 章 驾驶梦想中的坦克
备用章节名:坦克控制单元
2.1行走控制
2.1.1Unity3D的脚本
2.1.2获取输入操作
2.1.3坐标变换
2.2 相机跟随
2.2.1跟随的数学原理
2.2.2相机跟随的功能实现
2.2.3鼠标控制相机的角度
2.2.4滚轮调整相机与坦克的距离
2.3 坦克的物理特征
2.3.1 Unity3D的物理引擎
2.3.2 车轮碰撞器
2.4 驾驶坦克
2.5转动的轮子
2.6滚动的履带
第3章 开炮击毁敌人
备用章节名:火炮系统
3.1 旋转的炮塔
3.2 俯仰的炮管
3.3 开炮!
3.3.1制作炮弹
3.3.2制作爆炸效果
3.3.3炮弹逻辑
3.3.4开火
3.4 坦克的控制类型
3.5 摧毁敌军
3.6 准心
3.7 生命指示条
3.8 击中提示
3.8.1谁发射了炮弹
3.8.2被谁击中
3.8.3击杀提示
3.9 炮弹的音效
3.9.1射击音效
3.9.2爆炸声音
第4章 进击的人工智能
备用章节名:人工智能
4.1 实现人工智能的一般方法
4.1.1有限状态机
4.1.2分层有限状态机
4.2 搜寻目标
4.2.1编写AI类
4.2.2在Tank中调用AI类
4.3 向敌人开炮
4.3.1旋转的炮塔
4.3.2俯仰的炮管
4.3.3开炮!
4.4 路点和路径
4.4.1路点
4.4.2路径
4.4.3一种生成路径的方法
4.4.4给坦克指定路径
4.5 走向目的地
4.6 使用NavMesh计算路径
4.6.1NavMesh的原理
4.6.2生成导航图
4.6.3生成路径
4.7 行为决策
4.8 战场
4.8.1战场逻辑
4.8.2两军对峙
第5章 代码分离的界面系统
5.1 了解Unity UI系统(UGUI)
5.1.1 Canvas画布
5.1.2 EventSystem
5.1.3 RectTransform
5.1.4 其他UGUI组件
5.1.5 事件触发
5.2 制作坦克游戏界面
5.3 界面基类PanelBase
5.3.1 代码与资源分离的优势
5.3.2 界面系统的设计
5.3.3 PanelBase的设计
5.4 界面管理器PanelMgr
5.4.1 层级管理
5.4.2 打开面板OpenPanel
5.4.3 关闭面板ClosePanel
5.5 TitlePanel和InfoPanel
5.6 调用界面系统
5.7 胜负面板
5.8 设置面板
第6章 网络基础
6.1 七层网络模型
6.1.1 应用层
6.1.2传输层
6.1.3网络层
6.1.4数据链路层
6.2 IP与端口
6.3 TCP协议
6.3.1 TCP连接的建立
6.3.2 TCP的数据传输
6.3.3 TCP连接的终止
6.4 Socket套接字
6.5 同步Socket程序
6.5.1 新建控制台程序
6.5.2编写服务端代码
6.5.3编写客户端程序
6.6 异步socket程序
6.6.1 连接类(state)
6.6.2 异步服务端
6.6.3 开启服务端
6.6.4 编写客户端程序
6.7 Mysql
6.7.1 Mysql基础入门
6.7.2 留言板服务端程序
6.7.3 调试程序
6.8 类的序列化
6.9 定时器
6.10 线程互斥
6.11 通讯协议和消息列表
6.11.1 通讯协议
6.11.2 服务端程序
6.11.3 客户端场景
6.11.4 消息列表
6.11.5 客户端程序
6.11.6 调试
第7章 游戏服务端框架
7.1服务端架构
7.1.1 总体架构
7.1.2游戏流程
7.1.3连接数据结构
7.1.4数据库结构
7.1.5项目结构
7.2 数据管理类DataMgr
7.2.1 数据库结构
7.2.2 玩家数据
7.2.3 Player的初步版本
7.2.4 连接数据库
7.2.5 防止sql注入
7.2.6 Register注册
7.2.7 CreatePlayer创建角色
7.2.8 登录校验
7.2.9 获取角色数据
7.2.10 保存角色数据
7.2.11 调试
7.3 处理粘包分包
7.3.1 Conn类
7.3.2 ServNet网络处理类
7.3.3 ReceiveCb的沾包分包处理
7.3.4 发送消息
7.3.5 启动服务端
7.3.6 客户端程序
7.4 心跳
7.4.1 时间戳
7.4.2使用定时器
7.4.3心跳消息
7.4.4调试
7.5 协议
7.5.1协议基类
7.5.2字符串协议
内容简介
21世纪以来,虚拟现实技术得到了高速的发展,这门学科涉及计算机图形学、多媒体技术、传感技术、人工智能等多个领域,具有很强的交叉性。虚拟现实技术被认为是21世纪发展为迅速的、对人们的工作生活有着重要影响的计算机技术之一,在教育、医疗、娱乐、军事、建筑、规划等众多领域中有着非常广泛的应用前景。本书详细介绍了虚拟现实应用的基本原理及其在游戏和桌面应用程序中的应用。
目录
译者序
审校者简介
前言
第1章万物皆可虚拟1
1.1虚拟现实对你来说意味着什么2
1.2头戴式显示器的类型4
1.2.1桌面VR4
1.2.2移动VR4
1.3虚拟现实与增强现实的区别5
1.4应用与游戏5
1.5本书涵盖的内容8
1.6VR体验类型9
1.7VR必备技能9
小结10
第2章 物体和缩放比例12
2.1开始使用Unity12
2.1.1新建Unity项目13
2.1.2Unity编辑器13
2.1.3默认世界坐标系14
2.2创建简单的透视图15
2.2.1添加立方体15
2.2.2添加平面16
2.2.3添加球体和材质17
2.2.4改变场景视图19
2.2.5添加照片20
2.2.6给地平面着色21
2.3测量工具22
2.3.1随手保留一个单位立方体22
2.3.2使用网格投影器22
2.3.3测量Ethan角色23
2.4从Blender 实验中导入25
2.5Blender简介25
2.5.1立方体28
2.5.2UV纹理图片28
2.5.3导入Unity30
2.5.4观察者31
小结32
第3章 虚拟现实的构建和运行33
3.1虚拟现实设备集成的软件34
3.1.1Unity对虚拟现实的内置支持34
3.1.2设备特有的SDK34
3.1.3开源虚拟现实项目 34
3.1.4WebVR35
3.1.53D世界35
3.2创建MeMyselfEye预制件36
3.3为 Oculus Rift构建项目37
3.4为 Google Cardboard构建项目37
3.4.1配置Android环境38
3.4.2配置iOS38
3.4.3安装Cardboard的Unity包38
3.4.4添加摄像机39
3.4.5构建设置39
3.4.6试玩模式39
3.4.7构建并在Android中运行40
3.4.8构建并在iOS中运行40
3.5不依赖于设备的点击器类41
3.6虚拟现实设备的运行原理42
3.6.13D立体视图42
3.6.2头部跟踪45
小结47
第4章 基于凝视的操控48
4.1步行者Ethan49
4.1.1人工智能Ethan49
4.1.2Navmesh 烘焙50
4.1.3镇上的游走者51
4.1.4插曲—Unity编程简介51
4.1.5RandomPosition脚本53
4.1.6“僵尸”Ethan55
4.2向我看的方向行走56
4.2.1LookMoveTo脚本57
4.2.2添加反馈光标59
4.2.3观察者60
4.3如果眼神可以杀人61
4.3.1KillTarget脚本61
4.3.2添加粒子效果63
4.3.3清理工作64
小结64
第5章 世界坐标系UI66
5.1可重用的默认canvas67
5.2护目镜HUD71
5.3十字光标73
5.4挡风玻璃HUD75
5.5游戏元素UI77
5.6信息框79
5.7响应输入事件的游戏内仪表板82
5.7.1用按钮创建仪表板83
5.7.2连接水管与按钮 85
5.7.3用脚本激活按钮86
5.7.4用注视高亮显示按钮88
5.7.5注视并点击选择90
5.7.6注视并聚焦选择91
5.8带有头部姿势的响应式UI93
5.8.1使用头部的位置93
5.8.2使用头部的姿势95
小结98
第6章 ,人称角色99
6.1深入理解Unity角色100
6.1.1Unity组件100
6.1.2Unity 的Standard Assets102
6.2制作,人称角色104
6.2.1在直视的方向上移动105
6.2.2保持脚着地106
6.2.3不要穿透固体106
6.2.4不要在边缘坠落108
6.2.5跨越小物体并处理崎岖路面108
6.2.6开始和停止移动109
6.2.7使用头部姿势开和关109
6.3用户校准110
6.3.1角色的身高111
6.3.2玩家的真实身高112
6.3.3回到中心位置113
6.4保持自我感113
6.4.1身首分离114
6.4.2头部和身体115
6.4.3双脚115
6.4.4身体的虚拟角色117
6.4.5虚拟的David le 鼻子118
6.4.6声音提示119
6.5移动、传送和传感器120
6.6对付VR 晕动症122
小结123
第7章 物理组件和周边环境125
7.1 Unity的物理组件126
7.2 弹力球127
7.3 用头部射击131
7.4 蹦床与弹力球134
7.5 人类的蹦床135
7.5.1 像一块砖135
7.5.2 像一个人物角色136
7.6 插曲—环境和万物139
7.6.1 缥缈的天空140
7.6.2 行星地球140
7.6.3 企业标识140
7.7 升降机142
7.8 跳起来143
小结145
第8章 漫游和渲染146
8.1 用Blender构建147
8.1.1 墙体147
8.1.2 天花板150
8.2 用Unity组装场景153
8.2.1 画廊153
8.2.2艺术品部件154
8.2.3 展览计划156
8.3 添加图片到画廊中157
8.4 漫游动画160
8.4.1 Unity的动画系统160
8.4.2 脚本动画161
8.5 优化性能和舒适感163
8.5.1 优化实现和内容164
8.5.2 优化Unity渲染流水线166
8.5.3 优化目标硬件和驱动169
8.5.4 Unity Profiler170
小结171
第9章 利用360°172
9.1 360暗亩嗝教?73
9.2 水晶球173
9.3 魔法球175
9.4 全景图178
9.5 信息图179
9.6 等距圆柱投影182
9.7 地球仪183
9.8 照片球184
9.9 视野187
9.10 捕捉360岸嗝教?88
小结189
第10章 社交化的VR虚拟空间191
10.1 多玩家网络192
10.1.1 网络服务192
10.1.2 网络架构193
10.1.3 本地与服务器193
10.1.4 Unity的网络系统195
10.2 建立简单的场景195
10.2.1 创建场景环境196
10.2.2 创建虚拟角色的头部197
10.3 添加多玩家网络198
10.3.1 Network Manager和HUD198
10.3.2 Network Identity 和Transform198
10.3.3 作为一个主机运行199
10.3.4 添加出生点位199
10.3.5 运行两个游戏实例200
10.3.6 关联虚拟角色与,人称角色201
10.4 添加多玩家到虚拟现实202
10.4.1 Oculus Rift玩家202
10.4.2 Google Cardboard 玩家204
10.4.3 下一步206
10.5 构建和共享一个自定义的V
《沉浸式交互世界构建指南》 前言 我们正身处一个技术飞速发展的时代,数字世界与现实世界的边界日益模糊。虚拟现实(VR)和增强现实(AR)技术,作为这场变革的前沿力量,正以前所未有的速度改变着我们的沟通、娱乐、学习和工作方式。从身临其境的游戏体验到改变培训模式的行业应用,从突破时空限制的远程协作到开启全新艺术表现形式的数字创作,VR/AR的潜力似乎无穷无尽。 本书并非对现有VR/AR开发工具和技术的简单罗列,也不是对某些特定平台或引擎的深入解析。相反,它旨在为有志于构建沉浸式交互世界的内容创作者、开发者、设计师和技术爱好者提供一个更为宏观、系统且具有前瞻性的视角。我们将聚焦于构建引人入胜、功能强大且用户体验卓越的虚拟与增强现实体验背后,那些共通的、核心的设计理念、技术原理和实践方法。 本书不涉及具体某款VR/AR开发软件的详细操作教程,也非针对特定游戏引擎的流水线式开发指南。它所探讨的,是跨越平台和工具的普适性原则,是那些能够让你的创意从概念走向现实,并最终触动用户心灵的底层逻辑。无论你使用的是最新的VR一体机,还是通过智能手机体验AR应用,亦或是探索未来的混合现实(MR)空间,本书所传递的知识和思维方式,都将成为你构建沉浸式世界宝贵的财富。 第一章:沉浸式体验的基石——感知与交互的科学 理解沉浸感的本质,是构建任何优秀VR/AR体验的首要任务。沉浸感并非仅仅是视觉的逼真,它关乎用户在虚拟或增强环境中的整体感知和心理投入。本章将深入探讨构成沉浸感的关键要素: 视觉的欺骗与真实: 立体视觉与深度感知: VR/AR的核心在于模拟人眼的立体视觉。我们将解析双目视差、透视、纹理梯度、遮挡等视觉线索在构建三维空间感中的作用。探讨如何通过精准的摄像头建模、渲染技术和视差计算,让用户“看到”真实存在的三维世界。 视场角(FOV)与画面比例: 广阔的视场角是VR沉浸感的关键,它影响着用户对环境的感知范围。我们将讨论不同FOV对用户舒适度和空间感的潜在影响,以及如何通过合理的画面设置来优化视觉体验。 运动视差与头部追踪: 用户头部运动与画面同步是VR/AR最基本也是最重要的交互方式。本章将深入理解运动视差的工作原理,以及头部追踪技术如何实时反映用户的视角变化,从而建立“身处其中”的真实感。 听觉的引导与增强: 空间音频(3D Audio): 声音是引导用户注意力、营造氛围和增强现实感的强大工具。我们将探讨如何利用声源方向、距离衰减、混响等技术,在虚拟环境中模拟真实世界的声学特性,让用户“听”到声音的来龙去脉。 音效设计与情绪烘托: 合适的音效能够极大地影响用户的情绪和对事件的感知。本书将审视音效在传递信息、制造惊喜、烘托紧张气氛等方面的作用,以及如何在VR/AR环境中实现更具层次感和沉浸感的听觉反馈。 触觉的反馈与探索(Haptic Feedback): 触觉模拟的原理与应用: 触觉反馈是连接虚拟与现实的重要桥梁。我们将探讨不同类型的触觉技术,如振动、力反馈等,以及它们如何在VR/AR中模拟触摸、碰撞、纹理等物理感受,从而提升交互的真实性和深度。 触觉设计的考量: 并非所有交互都需要强烈的触觉反馈。本章将讨论何时以及如何使用触觉反馈,以避免用户疲劳或产生不适,并使其成为提升体验的有效手段。 本体感觉与运动的协同: 动晕症(Motion Sickness)的成因与缓解: VR/AR最常见的挑战之一是动晕症。我们将从本体感觉(Proprioception)和视觉信息冲突的角度,深入剖析动晕症的生理机制,并探讨在设计中如何通过优化运动模拟、提供舒适的导航方式来最大程度地规避和缓解。 身体的参与与自由度: 沉浸式体验鼓励用户用身体去探索和交互。本章将探讨如何设计允许用户进行自然肢体动作的交互方式,以及如何通过追踪技术捕捉这些动作,从而赋予用户更大的自由度和参与感。 第二章:虚拟空间的设计美学与叙事手法 构建一个引人入胜的虚拟世界,不仅需要技术上的支持,更需要精妙的设计和引人入胜的叙事。本章将关注如何将艺术、心理学和叙事技巧融于VR/AR空间的设计之中。 空间叙事与环境构建: “说故事”的环境: 虚拟环境本身就是叙事的一部分。我们将学习如何通过场景的布置、物品的摆放、光影的变化等细节,来暗示故事背景、人物性格或潜在的冲突,让环境成为沉默的讲述者。 动线设计与引导: 用户在虚拟世界中的移动和探索轨迹,是叙事流程的重要组成部分。本章将探讨如何设计合理的动线,引导用户发现关键信息、触发事件,并以一种自然且引人入胜的方式推进故事。 比例、尺度与空间感: VR/AR能够打破现实世界的物理限制,创造出前所未有的空间体验。我们将讨论如何巧妙运用比例和尺度,营造出宏伟、幽闭、神秘等不同的空间感受,并利用透视和深度信息强化空间的存在感。 用户界面(UI)与用户体验(UX)在沉浸式环境中的演变: “在空间中”的UI: 传统的2D UI在VR/AR中需要被重新思考。本章将探讨如何将UI元素融入3D空间,使其成为环境的一部分,而非突兀的叠加层。例如,将信息面板附着于物体,或在用户视野边缘提供上下文相关的提示。 自然交互的UI设计: 抛弃鼠标键盘,拥抱手部追踪、语音命令、眼球追踪等自然交互方式。我们将分析如何设计直观、易于理解的交互模式,让用户无需学习成本即可完成操作。 舒适度与易用性的平衡: 在设计交互的同时,必须时刻关注用户舒适度。本章将深入探讨如何避免视觉眩晕、操作疲劳等问题,确保用户能够长时间、愉快地沉浸在体验中。 叙事驱动的交互设计: “玩家”还是“观察者”?: 根据不同的体验类型,用户在虚拟世界中的角色定位也不同。我们将分析如何设计能够赋予用户主动权,让他们通过自己的选择和行动来影响故事走向的交互。 动态叙事与分支剧情: VR/AR的交互特性为动态叙事提供了土壤。本章将探讨如何构建能根据用户行为而产生不同结果的剧情线,增加体验的重玩价值和个性化。 情感连接与共鸣: 沉浸式体验的终极目标是与用户建立情感连接。我们将审视如何通过精心设计的剧情、角色塑造和情感反馈,引发用户的同情、好奇、惊喜甚至共鸣。 第三章:构建交互的骨架——技术原理与实现思路 在理解了沉浸感的核心要素和设计理念后,本章将聚焦于构建虚拟世界所需的技术基础和实现思路,但非具体的代码教学。 三维建模与资产创建: 从概念到模型: 了解3D模型在VR/AR中的作用,包括环境、角色、道具等。我们将探讨不同类型的3D模型(如多边形模型、雕刻模型)及其适用场景,以及模型拓扑、UV展开、材质纹理等对最终渲染效果的影响。 性能优化与资产管理: 高质量的3D资产会带来更高的性能要求。本章将介绍多边形数量控制、LOD(Level of Detail)技术、纹理压缩等优化手段,以确保体验流畅运行。 渲染管线与视觉效果: 光照模型与着色器: 模拟真实世界的光照是关键。我们将探讨全局光照、实时阴影、反射、折射等渲染技术,以及自定义着色器如何实现独特的视觉风格。 后期处理与视觉增强: 景深、运动模糊、色彩校正、辉光等后期处理效果能够显著提升画面的表现力。本章将分析这些技术在VR/AR中的应用,以及如何平衡视觉效果与性能。 物理引擎与碰撞检测: 模拟真实世界的物理规律: 重力、摩擦力、惯性等物理属性让虚拟世界更具真实感。我们将探讨如何利用物理引擎来模拟物体的运动和相互作用,实现逼真的碰撞和反应。 交互逻辑的实现: 碰撞检测是触发交互的关键。本章将分析如何设置碰撞体、触发器,以及如何根据碰撞事件来驱动游戏逻辑或故事发展。 网络同步与多人交互: 多人VR/AR的挑战: 构建多人沉浸式体验需要解决网络延迟、数据同步、状态一致性等难题。我们将审视常见的网络同步策略,如状态同步、帧同步等,及其优缺点。 构建共享的虚拟空间: 如何让多个用户同时在一个虚拟空间中进行交互,并感受到彼此的存在?本章将探讨玩家角色表示、动作同步、语音通信等方面的技术考量。 性能优化与平台适配: 不同硬件的性能瓶颈: VR/AR设备种类繁多,性能差异巨大。本章将强调针对不同硬件平台进行性能优化的重要性,包括CPU、GPU、内存等方面的瓶颈分析。 跨平台开发策略: 了解不同VR/AR平台(如PC VR、独立VR、移动AR)的特性和限制,并探讨如何制定合理的开发策略,以覆盖更广泛的用户群体。 第四章:交互设计的实践智慧与最佳实践 理论学习之后,本章将回归实践,分享在VR/AR交互设计中行之有效的智慧和已经被验证的最佳实践。 以用户为中心的交互设计流程: 需求分析与用户画像: 深入理解目标用户的需求、习惯和能力,是设计成功的基石。我们将探讨如何创建详细的用户画像,并在此基础上进行需求分析。 原型设计与迭代测试: 快速原型制作是验证设计理念最有效的方式。本章将强调从小规模、低保真原型开始,通过用户测试不断收集反馈,并进行迭代优化。 可用性测试与数据分析: 系统性的可用性测试能够揭示设计中的潜在问题。我们将讨论如何设计测试场景、招募测试用户,以及如何分析测试数据来指导设计改进。 导航与移动的艺术: 多种导航模式的取舍: 瞬移(Teleportation)、平滑移动(Smooth Locomotion)、瞬移+平滑组合等,每种导航方式都有其适用场景和优缺点。本章将深入分析它们的原理、用户体验和动晕症影响,并指导读者如何根据具体需求选择最合适的方案。 路径规划与引导: 在复杂环境中,为用户提供清晰的导航指引至关重要。我们将探讨如何设计引导线、地图、目标指示等,帮助用户轻松抵达目的地。 物体交互与操作逻辑: “抓取”与“使用”的直观性: 如何让用户能够自然地拿起、放下、操作虚拟物体?本章将深入分析不同抓取机制(如物理抓取、吸附式抓取)的设计考量,以及如何提供清晰的操作反馈。 复杂操作的简化: 对于需要多步操作的任务,如何将其简化为用户易于理解和执行的流程?我们将讨论基于上下文的操作提示、分阶段引导等设计方法。 信息呈现与反馈机制: 上下文相关的信息提示: 在用户需要时提供信息,而非一次性倾倒。本章将探讨如何设计动态、情境化的信息提示,避免信息过载。 多感官反馈的协同: 结合视觉、听觉、触觉的反馈,能够更有效地传达信息和增强交互的真实感。我们将分析如何设计一套协调一致的多感官反馈系统。 情感化设计与用户激励: 奖励与惩罚的设计: 合理的奖励机制能够激励用户完成任务、探索世界。本章将讨论不同类型的奖励(如虚拟道具、成就解锁),以及如何避免过度奖励带来的负面影响。 创造惊喜与情感共鸣: 意料之外的事件、感人的故事情节、富有情感的角色,都能够触动用户的心灵。我们将审视如何通过精心设计的叙事和交互,为用户带来难忘的情感体验。 结语 《沉浸式交互世界构建指南》并非止于技术工具的使用,它更是一次关于如何创造“体验”的探索。在这个快速发展的领域,持续学习和创新至关重要。本书提供的,是理解和构建沉浸式世界的底层逻辑和核心原则,是引导你成为一名优秀的虚拟与增强现实内容创作者的思考框架。 愿本书能够点燃你心中的创意火花,助你在构建令人惊叹的沉浸式交互世界的道路上,走得更远,做得更好。