摘要: 6月25日,由CSDN主办的“【VR技术开放日】VR开发从何入手”在北京辽宁大厦隆重举行,会议邀请到小米互娱VR技术专家房燕良、焰火工坊CTO王明杨、资深VR开发工程师王秋林、奥秘游戏CTO冀盼以及火石镇CEO卞安到场,以代码见代码,分享最为纯正的技术实践,详解如何开发出一款能真正供用户把玩的精品质游戏或应用。
自VR横空出世之后,一度受到外界热炒,从概念到技术再到生态布局,不仅成就了一场资本狂欢,业界也将2016年标榜为VR元年。但退去华丽的辞藻,归于本质,VR开发从何入手成为诸多入门级开发者面临的难题。
针对内容稀缺、工具选型、3D动画、性能优化等VR开发难题,全球最大中文IT社区CSDN于6月25日下午举办“【VR技术开放日】VR开发从何入手”,邀请到小米互娱VR技术专家房燕良、焰火工坊CTO王明杨、资深VR开发工程师王秋林、奥秘游戏CTO冀盼以及火石镇CEO卞安到场,以代码见代码,分享最为纯正的技术实践,详解如何开发出一款能真正供用户把玩的精品质游戏或应用。
首先,本次活动组织者CSDN唐小引分享了举办此次活动的初衷,以及CSDN一直以来为虚拟现实开发所做的种种努力,比如《程序员》杂志、VR知识库囊括的知识图谱等,从一定程度上解答了VR开发究竟该如何入手的问题。
用虚幻4在Gear VR上运行一个搭积木的游戏(PPT下载)、Demo源码
随后,开发3代自研引擎的小米互娱VR技术专家房燕良先生,直接以code形式展示了自己使用虚拟4开发VR游戏过程以及分享其开发中的宝贵经验。房燕良表示虚幻4相比虚幻3更加易学易用,与Unity并列成为国际顶尖引擎,且是免费开源的。无论设计游戏或开发VR应用,掌握引擎基础知识尤为重要。用虚幻4在Gear VR运行搭积木游戏,其核心为设计一些box并放置地上,配戴Gear VR运用视觉感官,移动盒子。
开发注意事项:
- 选用C++模板。若选用蓝图,后续打包会出现问题;
- 导入图片、表情等资源,工程属性以默认选项;
- 虚幻引擎中,材质编辑器采用基于节点方式,运用迭代可做出很多功能;
- 运用可视化方式打通内容开发流程。
VR场景中晕动症主要可从两个方面解析,一方面以开发者的角度,游戏及应用开发过程中,帧速率要匹配即视觉画面与头盔运动要一致;另一方面从产品设计角度考虑,采用顺移方式减少不适应的时间。
移动VR观影:如何用Unity开发一个虚拟影院(PPT下载)
购买VR设备最主要用途是什么?王明杨与其合作伙伴根据购买VR设备的用户调研结果显示:大多数用户购买VR设备用于观看视频。
那么在VR中如何建立虚拟影院?王明杨总结了如下步骤:
1. 设计一个虚拟影院模型,增强用户体验沉浸感;
2. 学习Unity开发知识;
3. 学习Android播放视频;
Android中有一个Media Player,调用一个函数就可以播放视频。Android与传统的Windows并不相似,应用不是直接将工具显示到屏幕上,而是显示到Surface上,这个称之为FBO,可以把现在所有的程序显示的东西渲染到FBO上,然后再由这两个类把每一个程序的图像叠加起来。Android并不是直接往屏幕上面显示。
如果在没有经过定制的Android系统上,天然的延迟很高。Android的Media Player可以把图像渲染到Surface的Surface Texture上,这是虚拟影院的技术核心。我们首先创建一个Media Player,然后把Media Player的内容指定一个Surface,渲染到Surface上,然后到Surface Texture,并且复制给Unity。
4. 视频与模型相结合在Unity中渲染出来。
Unity把所有的贴图包装成 Texture2D形式,其实是对标准格式的封装。标准格式下Unity把 Texture的生成和 Texture这样一个操作封的很死,但比较线性的是Unity 4.0以上增加了一个机制,该机制可以通过OpenGL生成一个外部贴图。这样在播放器中渲染出来的视频,我们可以轻松的将视频转成 Texture2D贴到模型表面上。
VR环境下独特的人机交互设计(PPT下载)
从硬件设计到电路焊接到硬件调试到程序编写、算法设计、通信协议算法以及监听的耳机也是自己做的,资深VR开发工程师王秋林以其独特的见解解析VR环境下人机交互设计。所谓的人机交互即人向电子设备进行输入,电子设备向人返回数据信息。VR环境下人机交互方式主要有:单VR头盔;带有操作元件的VR头盔;VR头盔+通用外部输入设备,可以盲操作;VR头盔+包含传统输入方式的体感输入设备;VR头盔+动感座椅。造成虚拟世界眩晕的根本原因是人在虚拟环境中与现实中运动不同步。其中以足够慢的匀速运动、极快的短时运动、瞬时跳跃、参照物距离玩家足够远时的飞行运动、有相对静止参照物,可有效减轻眩晕,改善用户体验。
VR环境中的UI设计注意事项:
- 传统的在屏幕四周绘制2D UI的方法在VR环境下变得不再可用;
- 凸透镜导致的画面的桶形畸变让画面边缘的内容被压缩而无法看清;
- VR环境下人眼基本只会注视屏幕中心的一小片区域,难以注意到屏幕边缘的内容;
- 需要将UI要表现的数据以3D的形式呈现出来,甚至和武器、虚拟肢体结合起来,当玩家想要了解这些数据时会主动转动头部、举起武器/手臂来注视这些3D UI获取这些数据。
基于HTC Vive的VR游戏开发入门(PPT下载、Demo源码)
到底选择哪个平台进行VR游戏开发,奥秘游戏CTO冀盼表示不用纠结。无论是HTC Vive、PS VR、Oculus还是Gear VR平台,VR开发很多时候是相通的。通过HTC Vive开发VR游戏,硬件需配备头显及双手柄,PC以i5 970为最低配置,设置Room Scale模式,内容分发平台有Steam、Vive及奥秘,开发引擎可使用Unity 3D和Unreal。VR开发两个关键点:眩晕与沉浸。
游戏开发过程中需重点关注:
- 输入输出方式变化;
- 近似无2D界面;
- 数学和物理;
- 音乐音效;
- 场景的应用;
- 联网和数据同步;
- SteamVR API等方面。
使用Cocos开发一款简单的3D VR抓钱游戏(PPT下载)
使用Cocos也可以开发VR游戏?火石镇CEO卞安为开发者解开谜团。虚幻、Unity、Cocos三大引擎,卞安表示虚幻做出的画面更适合主机但其性能要求较高,Unity更适合中小团队,Cocos适合本身具有Cocos基础的团队。
使用Cocos创建VR游戏流程:
- 获取VR引擎框架(基于Cocos2d-x 3.10以后版本)。
- 安装JDK,保证Android手机能运行。
- 安装Python,运行Setup.py检测环境变量,进行相应配置。
- 运行命令行,新建VR游戏项目。
Win32 : createNewProject.py –n ProjName–p ProjPath - 安装Oculus SDK,配置摸拟器,启动VR项目。
- 使用VS2015或VS2013,打开Win32工程,编译运行即可。
- Android :build_native.py –V cardboard 编译Android的APK
现场花絮
(文/屠敏,审校/唐小引)