精华内容
下载资源
问答
  • 2014年3月,Facebook宣布以20亿美元收购虚拟现实设备Oculus Rift的制造商Oculus VR,沉寂已久的虚拟现实行业重新进入人们的视野。2015年1月,微软黑科技产品M...

    2014年3月,Facebook宣布以20亿美元收购虚拟现实设备Oculus Rift的制造商Oculus VR,沉寂已久的虚拟现实行业重新进入人们的视野。

    2015年1月,微软黑科技产品MR(混合现实)头显—HoloLens与Windows 10系统同时发布。

    在2017年6月的WWDC上,苹果重磅推出了ARKit,这让iOS一夜之间成为最大的AR平台,更让虚拟现实进入更多开发者的视野。同年在Google I/O大会上,Google推出了与ARKit对标的ARCore,这延续了智能手机时代的激烈竞争态势。

    在接下来的几年,因为相关技术发展的滞后,虚拟现实行业陷入了长达三年的暗黑时代。

    但进入2020年之后,5G技术在全球,特别是在中国得到了广泛的应用。作为5G技术的最佳应用场景之一,AR/VR内容的需求再次爆发,这也让该行业的从业人员为之一振。以苹果为首的众多科技公司在这一领域的技术耕耘终于得到了回报。iPad Pro和iPhone 12 Pro系列中均搭配了全新的LiDAR激光扫描雷达,其他国内外厂商也纷纷跟进。5G和激光扫描技术的迅速商用让虚拟现实行业走出阴霾,迎来春天的黎明。

    今天为大家推荐《Unity AR/VR开发:实战高手训练营》

     

    01

    编辑推荐

    涵盖Unity AR/VR开发主流平台/工具、必会知识、亮眼案例,以及重难点,你要的都在!

    1)Unity开发必会知识:C#开发、虚拟世界构建、UI界面、动画系统、物理引擎、音乐/音效。

    2)主流AR、VR开发平台/工具:OculusQuest、Vuforia SDK开发、ARFoundation(ARKit/ARCore)、VoxelSense

    3)亮眼AR/VR案例:虚拟直播、iWatchAR、跨平台AR塔防游戏、AR汽车引擎模拟应用

    4)AR/VR开发难点:动作捕捉原理与应用

    02

    本书特色


    目前,市面上有关AR/VR开发的图书相对较少,现有的图书主要针对有经验的开发者,而本书的内容对于零基础的开发者也十分友好,从基础概念到使用Unity进行AR/VR开发,书中都有介绍。

    与只重视概念讲解,不重视实际操作的Unity开发图书不同,本书从基本知识到进阶技能再到AR/VR实战开发,每一部分都会融入大量的实战讲解。

    有经验的Unity开发者可以直接学习AR/VR实战项目的相关内容。针对Oculus Quest、Vuforia、AR Foundation(涵盖ARKit/ARCore)、全身动捕技术平台、VoxelSense等几个主流的AR/VR平台和SDK,本书都会通过实战项目进行讲解。

    03

    作者简介


    王寒,资深苹果平台开发者、国内较早的iOS与VR/AR应用开发者、腾讯课堂讲师、知乎专栏“灵猫学编程”作者、蛮牛游戏开发专栏作者。著有《Cocos2D权威指南》《虚拟现实:引领未来的人机交互革命》《Unity AR/VR开发:从新手到专家》等书。2013年开始接触AR/VR技术,对主流游戏引擎及VR/AR交互技术有一定的研究,包括Unity3D、Unreal4、ARKit、ARCore等,目前已获得数个相关领域的技术专利,并在申请和动捕及多感知人机交互相关的技术专利。长期负责虚拟现实相关项目的内容开发和技术培训,如基于VR/AR平台(HTC VIVE、Oculus、HoloLens和ARKit)开发的教育类应用Project Minsky、未来教室、Cute Mimi等。张义红香港理工大学博士,东华大学信息学院副院长、副研究员,主要研究方向为增强现实、图像处理与模式识别。王少笛魔珐科技技术负责人、虚拟数字人探索者、国内首批虚拟现实爱好者、知乎专栏“动作捕捉技术”作者。曾任职于赛隆空间科技,担任产品设计与开发总负责人,主要面向市场主流设备(HTC VIVE、Oculus、Hololens等)开发教育类相关应用,目前已上线的产品有Project Minsky、未来教室、消防安全VR版等。

     

    04

    适合读者


    对AR/VR开发感兴趣,但是之前并没有任何Unity3D开发经验的初学者。

    对AR/VR开发感兴趣,并且已经具备一定Unity3D开发经验的开发者。

    对AR/VR开发感兴趣,想了解项目开发整体流程的管理者或团队成员。

     

    05

    插图摘录

    06

    目录

    前言

    第一部分 Unity开发基础知识

    第1章 虚拟现实开发技术入门2

    1.1 什么是虚拟现实2

    1.2 虚拟现实的技术基础3

    1.2.1 立体显示技术4

    1.2.23D建模技术5

    1.2.3 自然交互技术6

    1.3 主流的虚拟现实设备7

    1.3.1Oculus 系列8

    1.3.2HTC VIVE系列9

    1.3.3Sony PlayStation VR11

    1.3.4 其他VR设备12

    1.3.5Microsoft HoloLens12

    1.3.6AR眼镜设备12

    1.4 主流的虚拟现实开发工具13

    1.4.1 虚拟现实开发平台简介13

    1.4.2 第三方工具和SDK14

    1.5 虚拟现实应用开发的基本流程和注意事项16

    1.5.1 基本流程16

    1.5.2 注意事项18

    1.6 本章小结19

    第2章 你人生的第一款Unity3D游戏20

    2.1 常用3D游戏引擎介绍20

    2.1.1 什么是游戏引擎20

    2.1.2 游戏引擎架构基础21

    2.1.3 主流3D引擎对比分析28

    2.2Unity的授权、服务与安装29

    2.2.1Unity的授权类型和服务29

    2.2.2Unity的安装29

    2.3Unity编辑器入门34

    2.3.1 界面布局34

    2.3.2Unity的工具栏38

    2.3.3 顶部菜单栏41

    2.4Unity3D中的核心概念43

    2.4.1 场景43

    2.4.2 游戏对象44

    2.4.3 组件44

    2.4.4 预设体45

    2.5 实战项目:《梦幻天堂》游戏的设计与实现45

    2.5.1 《梦幻天堂》的策划与设计45

    2.5.2 创建一个新项目46

    2.5.3 搭建游戏场景47

    2.5.4 添加游戏角色50

    2.5.5 预览游戏效果52

    2.5.6 在Windows平台编译运行52

    2.5.7 在Android平台编译运行53

    2.5.8 在iOS平台编译运行55

    2.6 本章小结  56

    第3章 无往不利:在Unity中使用C#进行编程57

    3.1 游戏脚本语言概述57

    3.1.1 游戏脚本语言的诞生57

    3.1.2Unity3D所使用的脚本语言58

    3.1.3C#的开发环境58

    3.2C#的基本语法和使用58

    3.2.1 变量和数据类型58

    3.2.2 表达式与运算符61

    3.2.3 流程控制68

    3.2.4 函数71

    3.2.5 类、对象和方法74

    3.3Unity的脚本系统77

    3.3.1 创建脚本77

    3.3.2 事件函数79

    3.4 本章小结82

    第二部分 Unity开发核心技能

    第4章 创建一个虚拟的新世界84

    4.1 创建基础的游戏场景84

    4.1.1Unity中的地形引擎84

    4.1.2 基本几何体的使用92

    4.1.3 添加天空盒93

    4.2 创建Unity之外的游戏资源94

    4.2.13D模型、材质和动画的创建工具94

    4.2.2 音效创建工具97

    4.2.3 其他资源创建工具98

    4.3 导入外部的游戏资源98

    4.3.12D图像文件的导入和设置99

    4.3.23D模型的导入和设置99

    4.3.33D动画的导入和设置100

    4.3.4 音频和视频的导入和设置101

    4.3.5Unity资源包的导入和导出101

    4.4Unity光照系统102

    4.4.1 灯光组件简介103

    4.4.2 常见的光源类型103

    4.4.3 灯光组件属性简介105

    4.4.4 全局光照109

    4.4.5 烘焙109

    4.4.6Lightmap的使用111

    4.4.7Light Probe的使用112

    4.4.8Reection Probe的使用114

    4.5 粒子系统117

    4.5.1 粒子系统简介117

    4.5.2Shuriken粒子系统118

    4.6 着色器120

    4.6.1 着色器简介120

    4.6.2Unity中的标准着色器121

    4.6.3 创建自定义的着色器129

    4.6.4Shader Graph133

    4.7 后期处理135

    4.7.1Post Processing简介135

    4.7.2 如何在Unity项目中添加Post Processing136

    4.8 本章小结140

    第5章 游戏中的UI系统141

    5.1Unity中的UI系统简介141

    5.2UGUI中的静态视觉元素142

    5.2.1Canvas142

    5.2.2Image144

    5.2.3Text147

    5.2.4TextMeshPro148

    5.3 交互UI对象149

    5.3.1Button 150

    5.3.2Toggle154

    5.3.3Slider156

    5.3.4 其他交互控件159

    5.4 本章小结159

    第6章 让角色活灵活现:Unity中的动画系统160

    6.1Unity动画系统概述160

    6.2Legacy动画系统概览160

    6.3Mecanim动画系统概览161

    6.3.1Mecanim动画系统的特性161

    6.3.2Mecanim动画系统中的核心概念161

    6.3.3Blend Tree163

    6.3.4Retarget和Avatar164

    6.3.5Mecanim动画系统的工作流程164

    6.4Mecanim动画系统的使用165

    6.5 本章小结170

    第7章 最简单的游戏AI:Nav Mesh寻路系统171

    7.1Unity寻路系统概述171

    7.2Nav Mesh烘焙设置175

    7.3 添加障碍物:Nav Mesh Obstacle179

    7.4 穿越障碍物:Off Mesh Link180

    7.5 本章小结181

    第8章 真实世界的法则:物理引擎182

    8.1 物理引擎概述182

    8.2Unity物理引擎的核心构成183

    8.2.1Rigidbody183

    8.2.2Collider189

    8.2.3Raycast196

    8.3 本章小结198

    第9章 且听风吟:音乐和音效199

    9.1Unity Audio系统概述199

    9.2Audio Source200

    9.2.1Audio Clip200

    9.2.2 在Unity中播放音频201

    9.2.3Audio Listener203

    9.33D音效203

    9.4 实战:通过脚本播放音效204

    9.5Audio Reverb Zone206

    9.6 本章小结207

    第三部分 Unity AR/VR开发实战

    第10章 实战:基于Oculus Quest设备的Beat Music音乐节奏游戏210

    10.1Oculus Quest内容平台简介210

    10.1.1Oculus Store平台210

    10.1.2SIDEQUEST平台211

    10.2 创建你的第一个Oculus Quest项目211

    10.2.1 开始前的准备211

    10.2.2 创建Oculus Quest项目并导入资源212

    10.2.3 添加OVRCameraRig214

    10.2.4 完成项目的其他设置216

    10.2.5 在Oculus Quest设备上编译运行224

    10.3Beat Music游戏的策划和设计230

    10.4Beat Music游戏的实现230

    10.4.1 创建项目并进行开发和测试环境的搭建230

    10.4.2 创建游戏场景230

    10.4.3 通过按压按钮实现场景切换233

    10.4.4 在主场景中实现类似切西瓜的效果238

    10.4.5 添加控制器的震动效果242

    10.4.6 计算玩家的得分243

    10.4.7 添加背景音乐和音效247

    10.4.8 完善游戏并测试248

    10.5 将游戏发布到Oculus Store或SIDEQUEST249

    10.6 本章小结252

    第11章 实战:使用动捕技术实现虚拟直播253

    11.1 动捕技术发展史253

    11.1.1 动捕的诞生253

    11.1.2 百家争鸣的动捕时代255

    11.1.3 主流的动捕技术原理257

    11.1.4 混合动捕261

    11.2 光惯混合动捕原理262

    11.2.1 光惯混合技术的缘起262

    11.2.2 动捕数据解析262

    11.3Perception Neuron Studio 光惯混合动捕设备的使用263

    11.3.1 软件安装与配置264

    11.3.2 纯惯模式动捕267

    11.4 动捕数据后期处理269

    11.4.1 使用动捕软件进行动捕数据初修270

    11.4.2 重定向272

    11.4.3 动捕数据的实时传输275

    11.5 实战:用惯性动捕开发虚拟现实项目279

    11.5.1 开始前的准备279

    11.5.2 创建新项目并导入资源280

    11.5.3 使用动捕文件驱动模型282

    11.5.4 使用动捕数据实时驱动模型285

    11.5.5 虚拟形象抠绿288

    11.5.6 添加真实场景并测试292

    11.6 本章小结293

    第12章 实战:使用Unity和Vuforia SDK开发iWatch AR应用294

    12.1Vuforia SDK 简介294

    12.1.1 什么是Vuforia294

    12.1.2Vuforia的功能模块简介295

    12.1.3Vuforia的授权类型295

    12.1.4Vuforia的工具和资源295

    12.1.5Vuforia支持的平台296

    12.2 你的第一款Vuforia AR应用297

    12.2.1 开始前的准备297

    12.2.2 创建项目并安装Vuforia298

    12.2.3 配置项目并进行测试299

    12.3iWatch手表试戴AR应用的策划308

    12.4iWatch 手表试戴AR应用的实现308

    12.4.1 创建项目并导入所需资源308

    12.4.2 创建并导入图像识别目标数据库309

    12.4.3 设置Image Target310

    12.4.4 添加手表的3D模型311

    12.4.5 设置手部遮挡312

    12.4.6 添加更换手表的UI312

    12.4.7 添加用于切换手表的代码313

    12.4.8 编译运行315

    12.5 将游戏应用发布到 App Store和安卓应用市场315

    12.6 本章小结315

    第13章 实战:使用AR Foundation开发跨平台AR塔防游戏316

    13.1AR Foundation简介316

    13.2iOS ARKit简介318

    13.2.1 什么是ARKit318

    13.2.2ARKit的功能特性318

    13.2.3ARKit所支持的设备及平台319

    13.3ARCore简介320

    13.3.1 什么是ARCore320

    13.3.2ARCore的功能特性320

    13.3.3ARCore所支持的设备322

    13.4 你的第一款AR Foundation应用—Hello AR322

    13.4.1 开始前的准备322

    13.4.2 下载并打开官方示例项目323

    13.4.3 下载并导入所需的资源包323

    13.5 实战:跨平台AR塔防游戏ARDefense的设计与实现329

    13.5.1ARDefense的设计329

    13.5.2 开始前的准备329

    13.5.3 创建新项目并导入所需资源330

    13.5.4 放置基地331

    13.5.5 添加游戏的核心逻辑机制333

    13.5.6 外星飞船来袭336

    13.5.7 向飞船发起攻击340

    13.5.8 在设备上进行测试342

    13.6 本章小结342

    第14章 实战:开发AR汽车引擎教育应用343

    14.1VoxelSense桌面级交互平台开发概述343

    14.1.1VoxelTracker V4交互平台简介344

    14.1.2VoxelTracker V4交互平台技术原理345

    14.1.3VoxelTracker V4空间交互笔交互详解346

    14.2 配置 VoxelTracker V4 的开发测试环境346

    14.2.1 安装VoxelTracker V4硬件346

    14.2.2 安装VoxelStation A600硬件349

    14.2.3 下载并安装VoxelSense SDK350

    14.3 实战:AR汽车引擎教育应用的设计与实现350

    14.3.1AR汽车引擎教育应用的设计351

    14.3.2 创建项目并进行基本设置351

    14.3.3 新建汽车引擎场景351

    14.3.4 实现汽车引擎放大/缩小354

    14.3.5 获取内容帧数366

    14.3.6 查看实际运行效果367

    14.4 本章小结370


    扫码关注【华章计算机】视频号

    每天来听华章哥讲书

    更多精彩回顾

    书讯 | 8月书讯(上)| 这些新书不可错过

    书讯 | 8月书讯(下)| 这些新书不可错过

    资讯 | Rust跨界前端全攻略

    书单 | 2021半年盘点,不想你错过的重磅新书

    干货 | Rust跨界前端全攻略

    收藏 | 快收藏!!整理了100个Python小技巧!!

    上新 | 【新书速递】深入浅出Pandas,用好Python必备

    点击阅读全文购买

    展开全文
  • 之前三次方有比较过关于Unity与Unreal(深度分析 | Unity和Unreal的比较),主要是从宏观角度(偏游戏应用)来分析的,对于ARVR开发,到底选择哪一个好?使用两个引擎分别开发的代表性XR作品有哪些呢? 图片来源...

    之前三次方有比较过关于Unity与Unreal(深度分析 | Unity和Unreal的比较),主要是从宏观角度(偏游戏应用)来分析的,对于ARVR开发,到底选择哪一个好?使用两个引擎分别开发的代表性XR作品有哪些呢?

    图片

    图片来源:https://circuitstream.com/blog/unity-vs-unreal/

    有很多三次方的用户在后台问我们开发创作XR应用,到底是选择Unity引擎还是Unreal啊????三次方创作组的“强力输出”---Kirito(大帅哥一枚哦)为我们整理了这份文章,帮助大家更好的选择好工具进行XR创作。可参考:

    https://circuitstream.com/blog/unity-vs-unreal/

    图片

    如果你想开发商用或个人XR应用,现在就是最好的时机。Unity3D和Unreal这样的3D游戏引擎使得没有XR开发经验的小白也可以快速创造出ARVR应用。最初,这些软件是用于开发3D电子游戏的,但是由于VR/AR开发与游戏开发有很多相似之处,这些游戏引擎就被XR开发群体采用了。

    那么你应该选择什么引擎?Unity3D和Unreal还是其他引擎?虽然有其他选择(CryEngine、ApertusVR、Amazon‘s Sumerian),但是Unity3D和Unreal Engine 4在XR开发市场上占据主导地位。它们最大的优势就是这两个游戏引擎都可以免费使用。

    本文帮助你客观地选择一个最适合的引擎。虽然本文是从一个虚拟现实开发者的角度出发的,但是对游戏开发者也会有所启发。

    两种引擎介绍

    关于Unity

    图片

    Unity3D第一版于2005年发布,从那时开始,它就成了世界上最流行的2D、3D开发平台。这有一些统计数据:

    • 60%的AR/VR内容和50%的手游是由Unity3D开发的

    • 过去12个月有超过240亿次安装

    • 支持28个平台(从iOS、Oculus到Window混合现实等等)

    由于它在移动端的广泛应用,一直有传言说它只擅长移动端项目开发。这主要是因为Unity3D过去非常重视移动市场,尤其是苹果和谷歌的应用商店崛起期间。但实际上,过去几年它已经升级成了全能开发平台,可以胜任任何复杂的XR项目开发。

    疑问:Unity只擅长移动端VR/AR开发

    解答:Unity还适用于交叉平台以及复杂XR项目(比如,奥迪的物流和车辆配置培训)

    关于UE

    图片

    作为一款游戏引擎,Unreal有悠久的历史,可以追溯到1998年。有相当多的3A大作比如《虚幻竞技场》、《杀出重围》等都是用它开发的。它已经升级了好几代,之前还有Unreal 2、Unreal 3。2015年推出免费的Unreal 4。

    小贴士:当时是Unreal向每季度营收超过3000美金的游戏收取5%的版权费用,而建筑、汽车、电影、电视、直播、培训、模拟等非游戏项目是不收费的。(当前收费政策有变化。)

    参见官网:

    https://www.unrealengine.com/zh-CN/

    现在,独立开发者和大型工作室都用Unreal 4创建项目,用于游戏、教育、商业解决方案等。现在人们普遍认可,Unreal 4已成为构建百万级项目,尤其是电子游戏项目的强力工具。

    图片

    2020年用Unreal Engine 4引擎开发的3A游戏大作

    还有一些非常流行的游戏也是用UE4构建的,比如《堡垒之夜》。UE4所属公司Epic Games也在积极部署移动游戏领域,并且推出了“虚幻引擎开发者资助计划”。同时还有VR游戏,比如《蝙蝠侠:阿卡姆VR》。

    疑问:Unreal Engine 只擅长3A游戏开发

    解答:Unreal Engine 4也适用于VR/AR以及2D/3D移动应用开发。

    近年来,Unity3D和Unreal Engine都弥补了他们的弱点,所以在他们中二选一并不是一项简单的任务。下面我们探讨一下XR开发中两个引擎的差异。

    哪个引擎的基础环境最好?

    为了准确的比较这两个引擎,你得明白不仅是技术,引擎本身的基础环境也很重要。比如资源商店、指导文档、技术社区等。下面我们分别讨论:

    1、资源商店

    虚拟环境是需要用真实或想象世界中的虚拟对象来填充的,下图是某能源公司VR培训项目的场景:

    图片

    你可以用Maya, Blender 或者 3ds Max建模软件从草图开始创建3D物体,也可以直接从资源商店购买模型。Unreal Engine的资源市场大概有16000个项目

    图片

    Unity的资源商店大约是Unreal Engine的4倍,包括超过37000个3D资源

    图片

    虚幻引擎资产往往更倾向于成品游戏制作。其中许多以前曾在AAA游戏中使用过。在这些资产中,有城堡,科幻技术和怪物等模型。

    图片

    小tip:如果你在开发场景相对梦幻或者科幻的游戏,并且在资源商店找到了相应资源,这就成了一个决定性因素。同时,如果你正在开发VR商业应用,图像质量相比于现实相关度和迭代速度来说不那么重要,那么Unity3D的资源商店会有更多选择。这里很容易找到现实模型、场景模板等商业环境,不用在花钱雇人从草图开始建模了。

    图片

    下图是Unity资源商店里的一个喷气发动机的3D模型,可以用于喷气发动机保养的VR培训中。

    图片

    图片

    在资源上,Unity3D是非常齐全的。但Unreal Engine也在追赶,Epic Games 最近发布了一包Quixel MegaScans资源,包含了Quixel库中的10000种贴图材料。

    2、指导文档和培训

    Unity3D和Unreal Engine 4都有非常详细的XR开发指导文档:

    U3D的:

    https://docs.unity3d.com/Manual/XR.html

    UE4的:

    https://docs.unrealengine.com/en-US/SharingAndReleasing/XRDevelopment/VR/index.html

    但真正有教学价值的是培训课程。虽然二者都有XR的培训课程,但Unity的课程数量要明显更多。比如,Udemy上有大约2200门Unreal开发课程,而Unity有5500门。虽然大多数课程都是教你开发游戏的,但一些基础知识也可以用于其它应用开发。对于商业和企业开发,则倾向于用Unity,因为它的资源丰富、容易上手。

    3、开发者社区

    近年来,开发者们在不断扩展XR内容的边界。虽然两款引擎都尽力为开发者提供了指导文档和培训课程,但开发者社区也是不容忽视的因素。Bug、错误、崩溃、看不懂的谜之代码每天都在发生,谁来帮你解决这些问题?尤其是你独立开发的时候?——其他开发者。

    这就是开发者社区至关重要的原因,尤其是在新兴的XR行业。Unity3D存在时间比Unreal长,所以自然就有更大的开发者社区。比如,Unreal社区有12000+的C++编程话题,4600+个话题扩展到了AR/VR开发。而Unity社区有128000+编程话题,6100+扩展到了VR开发。也就是说,发生问题时,在Unity社区中更可能找到帮你解决问题的人。

    还有一点,UE4社区分为用Blueprint的非编程开发者和用C++的开发者,且前者占多数,大约是后者的2倍。用C++的不会用Blueprint,用Blueprint的也不懂C++,两种人群割裂开来,无法解决对方人群的问题。反过来Unity的开发者都用C#,所以有经验的开发者可以很容易解决初学者的问题。这也是我们一般从Unity开始教XR开发的原因。

    图片

    4、开发流程

    两个引擎在XR开发上有许多共同点,主要的区别有以下几点。

    1. C# VS C++或Blueprint

    这是两款引擎最大的区别了,虽然Unity还可以用一些其它语言,但C#是主要的。C#和C++哪个更好,已经争论了多年,坦白的说,这个争论没有意义。两种语言都能用于XR开发,就看哪个你用的顺手了。然而对于初学者,C#要更容易上手。

    我们注意到,用UE4需要建两个脚本文件,一个用于声明,一个用于定义。看起来是有点复杂。下面是用Blueprint的脚本系统,不需编程:

    图片

    几乎UE4的指导文档中的每一部分都有C++和Blueprint例子。学Blueprint非常容易,但要想使用UE4的大部分功能,建议学习C++,把Blueprint的结果和代码联系起来。

    小贴士:Unity3D也有个小插件:Playmaker,和Blueprint一样是可视化脚本。

    C#的另一个优势是,90%的VR/AR开发公司都用C#,意味着有更多的代码和测试结果参考。

    5、 平台源代码资源:Unreal Engine VS Unity3D

    这两个平台的代码资源都足够丰富,提供的工具和工作流对于XR开发来说绰绰有余,无需修改。然而,二者还是有一个重要区别的——UE4是开源引擎,U3D不是。这就意味着,你可以根据需要修改UE4的源码,还免费。然而U3D的代码虽然也能看,但是要想编辑就需要有企业许可了。虽然开源对一些大作来说有吸引力,但对于小开发团队,需要认真考虑是否真的有必要修改引擎源码,否则一个小小的修复升级就可能带来雪崩式Bug。如果你只需要U3D的一些常用功能,大多数情况下平台的原装脚本和插件就足够了。

    6、图形效果对比

    如果我们回到2012年,UE4刚刚发布的时候,它的图形效果绝对空前。当U3D主要专注于独立游戏和移动游戏开发时,UE4主要用于3A游戏开发。从那时起,就一直传言:如果你想要写实主义画面,就要用UE4。

    疑问:如果你想要极佳的画面,就选UE4?

    解答:UE4和U3D都能创作写实主义场景,都提供创作极佳视觉效果的工具包。

    也就是说,UE4在图形效果上是有一点优势的。所有在UE4上可以拿来就用的项目,比如资源、场景、教学项目都看起来效果更好。U3D资源你可能需要对获取到资源稍作调整来优化效果。渲染、光照、材料...... 一开始,在UE4中需要的这些设置工作要比U3D少。然而,如果你用Blueprint,复杂的流程节点会导致显示出错。大量节点、复杂的数学模型、循环迭代会导致运行变慢。

    下面是个例子,相比于C++,用Blueprint会造成FPS降低。不过,启用多线程和本地化进程后,这种差异似乎被消除了。

    图片

    用C++和Blueprint的效果对比

    总的来说,你完全可以用U3D达到同样的效果。这一点上两个引擎都可以在视觉效果上表现完美。

    用UE4和U3D开发的著名XR项目

    两款引擎都被用到过3A游戏和独立游戏开发中,近年的很多知名游戏也是由UE4或U3D开发的。然而,这两年还发生了戏剧性的变化,两款引擎不仅被用于娱乐产业,也开始应用于实用项目和商业项目。由于XR技术的进步,商务、教育、制造业都开始使用XR应用来优化流程、提高效益。

    1、用UE4开发的XR项目

    例如,医药开发公司C4X Discovery用UE4来把分子数据可视化,进而加快了新药开发进度。用VR使复杂数据可视化使得研究人员能从新的视角观察成分,更容易发现设计缺陷。

    图片

    用VR使复杂数据可视化还有许多应用。比如加拿大航空公司,使用UE创作了VR场景,用于给客户展示头等舱的服务。

    值得一提的是这个项目97%使用Blueprint做的,没有用编程。这是因为,用于展示的VR项目是比XR培训更容易实现,XR培训需要更加复杂的交互,VR更多的是观察。

    2、用U3D引擎的XR项目

    德国汽车巨头奥迪,开发了有20个训练项目、多语言可选的VR培训模型,来优化物流、服务和生产培训流程。

    图片

    奥迪的VR培训很受员工喜欢,提高了员工的学习效率、动力以及目标。

    总部在美国的全球有机物、化学中间体生产厂商INVISTA,利用U3D做的XR项目来模拟工作环境,用VR培训员工,以减少培训时长、节约原材料成本、减少设备停机时间。

    波音、通用电气、美国空军也用基于U3D开发的VR/AR应用来提高人员训练效率,这样不仅记得牢,而且还安全、可以减少设备停机。当然还有丰田汽车:丰田汽车通过Unity、Microsoft HoloLens 2和AI技术提高汽车生产各环节效率

    然而,也有公司用U3D做展示项目的。下面是宝马2019展示案例,猜一猜哪个是模型哪个是真车?

    图片

    总结

    过去几年,两款引擎都在突飞猛进,弥补缺点、紧跟产业潮流。以前是用U3D做移动项目,用UE4做3A游戏。但现在情况已经发生了很大变化。两款引擎都可以几乎完美地用于XR和独立项目开发。都能做出极佳的视觉效果、都能兼容许多平台。虽然U3D可以兼容更多平台,可以跨平台开发。但两款引擎都对当前市场上的XR技术进行了针对性优化。

    很多开发者表示Unity是不错的选择,因为好上手。选哪个,需要看你以前的经验和现在项目的环境。你熟练掌握C++吗?是的话可以用UE4。

    如果你只是个新手,那用C#和Unity更现实一点,它的开发者社区更大,ARVR代码库也很多、相关的项目也很多。如果你的应用注重表现力和图形效果,比如3A级别的主机游戏或者商用虚拟展示,那么可能UE4加上Blueprint是个不错的选择。另一方面,如果你的项目十分复杂,需要很多定制、迭代、原型和优化,学习U3D可能是不错的选择。

    展开全文
  • java_install_0.png java_install_1.png 3、安装android开发平台 安装sdk开发包: android-sdk_r24.4.1-windows 在sdk安装包内找到并打开: SDK Manager.exe 初次打开要更新一下新包: sdk_0.png 4、配置Unity3d的...

    ❗前情提要:

    注意!软件安装路径下不能有中文!

    软件提取:

    1、安装Unity3d

    先后安装:

    UnitySetup64-5.6.2f1

    UnityStandardAssetsSetup-5.6.2f1(安装时关闭防火墙和Unity)

    UnitySetup-Android-Support-for-Editor-5.6.2f1.exe

    安装时主要点击“下一步”即可,首次使用Unity需注册。

    bda244267314

    UnitySetup.png

    bda244267314

    UnityStandardAssetsSetup.png

    bda244267314

    UnitySetup-Android.png

    2、安装JAVA开发平台

    安装:

    jdk-8u144-windows-i586_8.0.1440.1

    配置环境变量:

    变量名“JAVA_HOME”,变量值“E:\jdk”(jdk的安装路径)

    变量名“Path”,添加变量值“%JAVA_HOME%\bin”

    bda244267314

    java_path_0.png

    bda244267314

    java_path_1.png

    验证java是否成功安装:

    快捷键win+r,输入cmd

    在cmd中分别输入:“java”、“java -version”、“javac”

    安装成功会有以下输出。

    bda244267314

    java_install_0.png

    bda244267314

    java_install_1.png

    3、安装android开发平台

    安装sdk开发包:

    android-sdk_r24.4.1-windows

    在sdk安装包内找到并打开:

    SDK Manager.exe

    初次打开要更新一下新包:

    bda244267314

    sdk_0.png

    4、配置Unity3d的Android运行环境

    (1)进入Unity3d,新建项目

    (2)打开 edit --> preferences --> External Tools,点击Browse,选择sdk和jdk路径文件夹

    bda244267314

    unity_android_hj_0.png

    (3)新建场景/打开已有场景,打开 File --> Build Settings,切换至Android,点击“Switch Platform”,点击“Add Open Scenes”。

    bda244267314

    unity_android_hj_1.png

    点击“Player Settings”,修改Company Name,“Other Settings”中,修改Identification-Package Name,例如:com.yuhui.sj

    bda244267314

    unity_android_hj_2.png

    修改完成后,点击Build。保存打包为.apk文件。

    将.apk文件安装到手机即可使用。

    bda244267314

    unity_android_hj_3.png

    5、导入、导出项目

    bda244267314

    export_package.png

    大功告成!!!

    实践笔记,内容仅供参考,如有错误欢迎指正~谢谢

    展开全文
  • UE4-VR开发手册入门篇

    千次阅读 2021-03-23 11:35:00
    2.5 附录——面向对象编程思想 面向对象(OOB)编程是区别于传统的面向过程编程的一种编程思想,它的主要特点是封装、继承、多态,以其高度的灵活性与代码可复用性迅速提升了编程开发者的开发效率,利用面向对象...

     

    1.搭建UE4(虚幻4)引擎平台

    注册Epic Game Luncher账号,并于服务器\\win-c:\Public_Raid\软件\UE4中将Epic GameLuncher安装在本地,由于国内网络限制,不建议使用官方UE4的安装包,下载速度会很慢。

    安装完成后进行UE4引擎安装,效果如图1-1:

     

    图1-1

    (注:由于UE4引擎较大,请耐心等候安装)

    1. 初次使用UE4编辑器进行设置

    2.1 基础设置

    由于互联网原因,建议开启离线模式,如图2-1所示:

     

    图2-1

     

    2.2 创建项目的设置

    创建项目,由于项目需求,我们一般选择游戏模式,如图2-2所示

     

    图2-2

    2.3 创建新的项目

    默认选择空白蓝图模板,其他模板是UE4官方给初学者使用的测试用模板,包含蓝图函数和各种模型,可以进行使用学习,一般使用空白模板。如图2-3所示。

    由于开发环境比较复杂,不建议开启光线追踪,设置如2-4所示。

     

    图2-3

     

    图2-4

    面板下方可以对项目存储路径于项目名称进行设置,设置完成后进入UE4编辑页面,这里使用的是蓝图设计界面,蓝图设计完毕后编译完成可以转入Visual Studio进行C++代码设计,如图2-5所示。

     

    图2-5

    2.4 蓝图类的内容

    下方是蓝图类与对象的存放位置,每新建一个类或者对象就在下方进行显示,类型常见的有蓝图类,动画类,模型类,媒体类,人工智能类等等,游戏开发中可以利用这些类实例化一个对象,如图2-5所示分别实例化了三个对象,一个是AI_controller机器人控制类,一个是FPP_ACTOR玩家对象,一个是ROBOT_ACTOR机器人对象,双击这些对象可以进入这个实例化对象里面对应出的方法(如图2-6所示)与可视化动态界面(如图2-7所示)。

     

    图2-6

     

    图2-7

    其中2-6的界面是蓝图的主要界面,里面用于构造这个实例化对象的各种方法、属性与变量。左上角是组件,用于添加各种可视化子组件,绑定在这个对象里面,比如绑定摄像机,绑定骨骼,绑定模型与箭头等等;右边是对这个对象或者组件的固有属性进行设置,包括物理属性,渲染属性,模型属性,以及事件触发。左下方是对这个蓝图的图表视图进行设置,包括定义组件内容,定义构造函数。点击每一个构造函数里面可以进入一个新的子界面,定义这个函数的内部算法与结构,包括输入变量,输出变量,计算方法,获取参数等等。举个例子,比如图中开枪射击对机器人造成伤害的FIRE方法,我们首先构造FIRE函数在左边,封装起来方便调用。然后双击进入FIRE方法内部,如图2-8所示。

     

    图2-8

    左边是FIRE函数的起始位置,触发FIRE函数就会触发两个分支(SEQUENCE)条件,分别是THEN0触发射击动画,THEN0触发计算伤害。

    触发THEN0射击动画则是调用“播放蒙太奇动画”(Play Anim Montage)方法,调用主界面下方对象库中的开火动画。

    触发THEN1计算伤害则是调用摄像机的轴方向进行计算射击弹道,然后IFELSE判断,如果(IF)击中玩家就造成伤害(Make Damage),否则(ELSE)就无反应不造成伤害。

    通过上述例子可以知道,流程图可以对应成蓝图设计,蓝图设计需要学会面向对象编程思想。

     

    2.5 附录——面向对象编程思想

    面向对象(OOB)编程是区别于传统的面向过程编程的一种编程思想,它的主要特点是封装、继承、多态,以其高度的灵活性与代码可复用性迅速提升了编程开发者的开发效率,利用面向对象编程思想可以做到一次开发,多次复用,继承复用,减少不必要的开发时间。

    面向对象编程的主体是类(class),而这个类是一个抽象的概念,需要通过将这个类实例化变成一个对象(object)才能进行实际应用,比如前面内容中提到的蓝图类,蓝图类下面的一个子类ACTOR类可以实例化成玩家对象(FPP_ACTOR)和机器人对象(ROBOT_ACTOR),每个子类里面可以直接继承父类的方法,比如ACTOR类可以继承蓝图类的所有方法,整个UE4引擎提供给蓝图的方法都可以调用。在这个基础上还可以构建ACTOR对象的私有方法,比如上面内容提到的FIRE方法,这个内容是UE4里面没有的,需要调用UE4的基础方法进行重新构建创造出的新方法。而我们每次重新生成一个新的ACTOR对象,都可以调用这个方法进行使用。同理机器人可以自己构建内部方法。

    并且通过子类继承父类的方法,可以在新的对象内部继承另外一个对象的方法,比如玩家也可以继承机器人的Make Damage方法,让其他人对自己造成伤害。

     

    1. 蓝图方法的构建
      1. 方法的三要素

    上一章我们提到过类可以实例化成为一个对象,对象内部可以构建不同的方法,在UE4中可以使用蓝图进行方法构造,也可以改成编译模式用Visual Studio进行C++编程构造。但无论如何进行构造方法,都离不开方法的三要素,分别是输入,输出,运算。

    输入(Input):将外部的数据或者对象输入进入该方法内部,成为一个变量,构造方法的时候需要定义输入的参数有什么内容,是什么类型。如图3-1右侧输入模块所示。

    输出(Output):将内部进行处理过的数据返回输出,给调用这个方法的类、对象或者方法一个明确的返回值。如图3-1右侧输出模块所示。

    运算(computing):将输入的数据在内部进行处理的流程。如图中蓝图所示,包括基础数据四则运算,包括复杂的代数运算与几何运算,甚至更复杂的引擎算法等等,都在图片中间进行运算。通过蓝图构建好的运算流程得到输出结果。

     

    图3-1

      1. UE4外部输入

    作为一款成熟的引擎,UE4有不俗的硬件兼容性和外部输入接收性,详细的外部输入操作为。主界面——编辑——项目设置,打开之后可以看到如图3-2所示的界面。

     

    图3-2

    由于项目需求大部分是HTC VIVE进行输入,可以在轴映射和操作映射中找到HTC VIVE的输入如图3-3所示

     

    图3-3

    对应的操作映射已经进行方法名构建了,构建完毕后需要使用的话在蓝图界面中调用“输入操作 方法名”例如VR手柄扳机键绑定后调用机枪开火方法(图3-4所示),按下则是调用之前写好的FIRE方法,放开则是调用之前写好的停止开火方法进行构造这个“输入方法FIRE”

     

    图3-4

      1. VR实际演示

    当构建好所有基础方法并且绑定好动画对象之后,就可以进行VR实机演示了,打开主界面如图3-5所示。修改游戏模式为VR游戏模式(C++代码中设定为VRMode),改好配置,进行延时,如图3-6所示效果图。

     

    图3-5

     

    图3-6

    基础的VR配置与实际输入检测就到这里结束。

    展开全文
  • UE4.24 VR开发基本设置

    2021-03-26 17:32:27
    用UE44.24 自己的VR模板进行开发时,发现在编辑器中运行VR时,头盔和手柄的操作都是OK的,但是打包后头盔和手柄会出现失效的问题。解决方法如下: 1、在project setting中,设置start in VR,如下图: 2、在打包...
  • VR开发篇】Unity3D 使用物理公式实现抛物线传送功能 发布时间:2021/03/22 作者:七夜丶 文章目录【VR开发篇】Unity3D 使用物理公式实现抛物线传送功能前言一、前期准备1、引擎及语言2、用到的物理公式二、核心...
  • Unity2020使用Steam VR开发HTC VIVE Cosmos

    千次阅读 2021-04-18 16:24:49
    Unity2020使用Steam VR开发HTC VIVE Cosmos版本配置手柄输入控制 版本 Unity:2020.2.1 HTC插件:最新版本2.0 配置手柄输入控制 2.0steamvr打包之后需要单独在steamvr中重新配置一下输入控制 选择自定义,编辑...
  • VR开发之使用VRTK实现基本的漫游和手柄射线功能

    千次阅读 多人点赞 2021-04-11 10:36:16
    之前我已经搭建好了VR开发的基本环境,不懂的可以看我之前的文章,下面开发实现发射射线和瞬移。 1、在【VRTK_Scripts】下添加空物体命名为【PlayArea】,为其添加VRTK组件【VRTK_DashTeleport】(个人比较喜欢用这个...
  • 多人VR开发 Photon

    2021-06-05 09:38:38
    文章目录前言一、多人VR 是什么?二、使用步骤1. 引入XR Interaction Toolkit2. 引擎设置VR3. 添加 xrrig --删除控制器Line4. 导入资源包---添加手模型到rig 下 https://drive.google.com/file/d
  • 在进行Unity VR应用程序开发过程中,有几个容易混淆的概念, 本文将尝试做一次区分,如果有任何疑问,读者可在文末留言共同讨论。这几个概念包括OpenVR 、OpenVR Desktop、OpenVR XR Plugin、SteamVR、SteamVR ...
  • VR开发心得积累

    千次阅读 2021-11-07 19:20:12
    Oculus是当之无愧的主流家庭VR解决方案代表,所以,我以Oculus为目标开始自己的VR游戏开发学习之旅。 目标 开发自己的第一款VR游戏,并且上架Oculus商店。 方法 寻找学习资源 最值接的学习资源自然是在Unity Hub上点...
  • VRTK开发日志 1. 初始配置 1.1 摄像头 创建空物体命名为VRTK,负责管理接收头显和手柄信息 添加VRTK_SDK Manager脚本 在VRTK物体下继续创建空子物体,命名为VRTK_Setup,负责管理头显的启动 添加VRTK_SDK ...
  • ACAA 认证VR开发工程师

    2021-04-22 16:52:38
    【概述】ACAA 认证 VR 开发工程师测试包括[VR 开发基础]和[VR 开发技能]两大部分,满分为 100 分,综合成绩 60 分为通过。其中,[VR 开发基础]为基于计算机的选择题,满分为 40 分,24 分为通过,要求必须通过本部分...
  • Unity VR开发中UI始终优先渲染不被物体遮挡 在用Vive开发VR的时候,3DUI很容易被场景中的物体遮挡,解决办法是使用一个Shader:Overlay.shader,这个shader很好找,很多博客里都有源码。我只说shader的使用:1.新建...
  • 这是一个易于使用的传送系统,适用于VR开发和 Unity 游戏引擎,我这里用的PicoVR一体机。 这是Unity 生成的 Navigation Mesh 作为玩家可以传送到的边界。因为这个过程是捎带Unity的工作,它是稳定的,可以在大多数...
  • 开发环境 Windows10 unity2020.3.3 pico neo pro 解决办法 project setting——>player——>other settings——>graphics APIs
  • 完整的视频演示:http://v.youku.com/v_show/id_XMTU4MTI5NTE4NA==.html再三强调一下,用互联网的服务器使用速度上会卡顿,建议最好的效果一定要下载sql数据库,本地建服务。 查询面板调用: ...
  • Unity2021开发VR容易混淆的几点概念

    千次阅读 2021-11-29 15:50:16
    最近在把项目从Unity2018升级到Unity2021,程序问题都好处理,但是唯独在VR上困惑了很久。...使用Unity开发VR就绕不过这么几个概念 广泛的概念 OpenVR:Steam提出来的概念,即将废弃,不过Unity上还是要使用Op
  • 由沈阳市和平区人民政府、华为技术有限公司共同主办的「第二届华为VR开发应用大赛」系列宣讲上海站于9月17日在沪成功举办。 上海站宣讲主要面向华东地区有参赛意向的XR开发者和研发团队,同时邀请了沈阳长白岛...
  • PicoNeo3开发VR项目

    2021-10-13 16:11:26
    一:导入PicoVRSDK 1.新创一个Unity工程(Unity版本最好选择2019.4以上版本,以及需配置好安卓环境),然后导入官方picoVRSDK; 2.渲染设置 Graphics APIs暂不支持Vulkan,对于OpenGLES2,OpenGLES3,开发者需要按照...
  • 9月9日,由辽宁省工业和信息化厅、辽宁省先进装备制造业基地建设工程中心、沈阳市人民政府指导,沈阳市和平区人民政府、华为技术有限公司主办的第二届华为VR开发应用大赛在沈阳广播电视台盛大启幕。 第二届...
  • 环境:Unity 5.3.4f1 (64-bit) GoogleVR SDK(version 2.0) 小米5 Android6.0前景提要今天想要在Unity的cardboard VR项目中添加Bloom特效。直接将这个特效像其他项目一样挂在了摄像机下,在未开启VR模式的情况下在PC...
  • Enviroment: Unity:2020.1.15 oculus develop guides: https://developer.oculus.com/documentation/unity/unity-import/ step1: In unityAssetStore,to get oculus intergration packet and download it. ...
  • 华为VR开发应用大赛正是专注VR相关应用实践和创新解决方案的全国性赛事,旨在助力基于5G云VR业务开展的云、管、边、端关键技术研究和攻关,拓展5G云VR在工业生产、商贸会展、医疗健康、教育培训、文娱
  • unity毕设之消防演练灭火功能的实现 主要使用VRTK实现手柄拾取灭火器,然后扣下手柄扳机喷射粒子系统灭火的一个过程 导入灭火器模型和喷射效果粒子系统 调整大小角度,查看喷射效果:
  • UE4是一款VR开发软件,近日UE4的软件工程师就这个软件的VR开发进行了一次讲解,这里说的是跟摄像机交互的方法。和摄像机进行交互同样的,在近处的平面投射也会从那个预订距离开始,来放弃任何已经被渲染为立体的碎片...
  • Android移动开发-VR全景照片简单实现

    千次阅读 2020-12-28 00:11:22
    Android移动开发-VR全景照片简单实现 VR技术的热度每年都在增长,在购物、旅游等方面运用度很高。该项目引用了Google的vr:sdk-panowidget依赖库,通过VrPanoramaView,简单实现在手机上查看全景照片,下面是项目介绍...
  • 篇博客讲述了我为UE4构建Ghost Mesh Plugin的开发过程。Ghost Mesh Plugin已经在Github上开源:https://github.com/NoahZuo/GhostMeshPlugin我已经制作了一个视频用于讲解该插件的使用方法,观看地址:...
  • Web端VR初介绍

    千次阅读 2020-12-22 04:11:31
    2016年最令科技界激动的话题,莫过于VR会如何改变世界。一些电影已开始涉足VR,让用户不仅能看到3D影像,更能以“移形换影”之术身临其境,带来前所未有的沉浸式观影体验;此外,游戏领域也开始VR化,用户再也不用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,871
精华内容 15,548
关键字:

vr开发