原文:http://unity3d.com/learn/tutorials/topics/virtual-reality
由 四角钱 (XK) 翻译,转载请注明来自 http://blog.1vr.cn
VR示例项目文件下载: https://www.assetstore.unity3d.com/en/#!/content/51519
Unity开发VR介绍
Unity对一些VR设备(docs.unity3d.com/ScriptReference/VR.VRDeviceType.html)做了内建支持,这篇教程将重点讲解Oculus眼镜.尤其是Oculus Rift Development Kit 2(简称DK2)和Gear VR消费者版(它需要三星Galaxy S6,S6 Edge, S6 Edge+,或Note 5).老版本的Gear VR支持S4,不过S4不会作为重点,但教程里会尽可能的让VR程序能在S4上运行以便有S4的开发者可以测试开发.
Unity同样支持其它一些VR头戴显示设备(简称HMDs),如HTC Vive,后期我们会更新这个教程讲解它的开发.
在Unity项目中开启VR支持
请确保安装了Unity5.3或更新的版本以及Oculus runtime 0.8,
我们到菜单Edit > Project Settings> Player > Other Settings > Rendering下:
然后勾选“Virtual Reality Supported”选择框.
在运行时,可以在代码中使用UnityEngine.VR.VRSettings.enabled(docs.unity3d.com/ScriptReference/VR.VRSettings-enabled.html)切换这个设置,代码如下:
using UnityEngine; using UnityEngine.VR; public class ToggleVR : MonoBehaviour { //VRSettings设置示例 private void Update () { //如果按下V键,则启用VRSettings.enabled VRSettings.enabled if (Input.GetKeyDown(KeyCode.V)) { VRSettings.enabled = !VRSettings.enabled; Debug.Log("Changed VRSettings.enabled to:"+VRSettings.enabled); } } }
Unity中预览VR效果
当DK2与电脑连接好后,启用Unity编辑器的VR支持选项,进入播放模式就可以在DK2显示实际VR游戏画面,编辑器的游戏窗口也将正常显示VR游戏画面,可以随时预览随时修改VR游戏,比以往”左右双画面”的方式更好用.
这里我们要注意,没必要为左右眼分别创建独立的相机,所有相机都会自动的以VR模式渲染,除了场景中用到Render Texture的相机.有关Render Texture更多信息可以查看手册.同样的Unity也会对VR模式下的相机机型渲染的优化,如虽然双眼有两个相机,但裁切和阴影渲染只运算一次.
关于VR的其它文档可以查看Unity使用手册(docs.unity3d.com/Manual/VROverview.html)及Unity脚本手册(docs.unity3d.com/ScriptReference/30_search.html?q=VR).
使用Unity开发VR游戏的软硬件建议
因为VR是一个非常新的媒介,在开发时会有些软硬件的限制:
硬件:
实现HMD中所需的帧率是很有必要的需求,这将带来很好的虚拟现实体验,比如在DK2中必须达到75fps,Gear VR必须达到60fps.如果帧率低于VR头盔最低需求,用户会有明显的感觉到,导致恶心,眩晕等.
运行VR程序的电脑显卡也要有能力输出VR眼镜需要的分辨率,如DK2是需要75hz下的1920×1080,如果你打算开发将来商业发布的Oculus Rift CV1,将要求你的电脑能输出2160×1200的分辨率.
如果你使用DK2,请确保你的电脑能支持VR硬件所需要的刷新率和分辨率,许多笔记本是独立与集成的双显卡,而这些显卡芯片通常不能输出75hz的1920×1080分辨率,请参阅Oculus文档(https://support.oculus.com/hc/en-us/articles/201835987-Oculus-Rift-Development-Kit-2-FAQ)中有关电脑硬件的推荐指南(https://www.oculus.com/en-us/oculus-ready-pcs/).
软件:
OS X: 现在我们可以用OSX 10.9+和Oculus 0.0.5 runtime来开发因为Oculus暂停了OS X的开发(https://www.oculus.com/en-us/blog/powering-the-rift/),所以我们推荐用Windows进行VR原生开发.
Windows: Windows 7, 8, 8.1和Windows 10都可以.
Android: 我们推荐Android OS Lollipop 5.1或更新版本..
显卡驱动: 请确保你的显卡驱动是最新版本,旧版本的显卡驱动可能不支持,如遇到不兼容的问题可打开Oculus Configuration Utility 查看显卡错误信息.
Oculus Runtime: 要在Unity5.3中启用VR支持,请使用Oculus Runtime 0.8或更高版本(https://developer.oculus.com/downloads/).
VR示例项目
我们在资源商店提供了一套VR示例项目.这套示例项目可以运行在DK2和Gear VR上,我们将关注Oculus及其它VR设备厂商的版本迭代并更新示例项目,请关注Unity博客.
可以从资源商店下载源文件:”https://www.assetstore.unity3d.com/#!/content/51519”.
示例场景
示例场景主要包括:
- Intro: 介绍基本的使用
- Menu: 通过菜单选择要玩的游戏
- Flyer:一个屏幕飞行游戏
- Maze: 一个桌面迷宫游戏.
- Target Gallery:原地180°射击游戏
- Target Arena: 原地360°射击游戏
另外也有一些场景:
- InteractiveItem: 在VR中展示物体的基本方式
- RenderScale: 如果使用渲染比例效果优化画质.
- Reticle: 在VR中划线用准星引导的例子
- Rotation: 显示一个能响应头部运动的物体.
- Touchpad: 如何使用Gear VR的触控板.
涵盖了一下概念:
- 俯瞰的桌游游戏风格
- 沉浸的星际飞行风格
- 第一视角射击风格
- 原地360°防守射击风格
- 在VR中使用Unity的UI
- 空间中的UI界面
- 在VR世界中对象触发基本框架,凝视物体等.
- 基于准星的移动,缩放和在表面法线方向上绘制
- 基于头部转动的运动
- 使用Gear VR的触控板,包括单击,双击和滑动或者基于键盘和鼠标使用DK2.
- 发布到Gear VR 和 DK2的条件
- 当绕着一个点旋转相机时如何避免头晕恶心.
- 相机淡出效果
- 相机淡出切换位置效果
- 对象池
虽然这个示例项目主要用来说明VR中的各种概念,并带你入门VR开发,但它也包括了一些很有用的例子给任何VR游戏开发人员使用:
- 相机淡出效果
- 相机淡出切换位置效果
- VR中游戏对象交互框架
- 保持动作以确认命令
- 准星移动和缩放
- 实现特定指向的UI箭头
- 移动UI元素让它们始终面向相机
- 与UI对象上色交互
需要Unity5.3.0下才能运行这些项目,并且硬件和软件满足上述的标准,有DK2(https://support.oculus.com/hc/en-us/articles/202741283-Get-Started-)(Oculus Runtime 0.8或更高(https://developer.oculus.com/downloads/))或含有兼容手机(www.samsung.com/global/galaxy/wearables/gear-vr/)的Gear VR(https://developer.oculus.com/documentation/mobilesdk/latest/)用于开发.
OCULUS UNITY 实例
根据你需要开发的功能,可以下载 Oculus Unity Utilities(https://developer.oculus.com/downloads/), 它包含了一些很有用的脚本和VR项目预设.如能够正确的改变瞳距(两眼之间的距离(https://developer.oculus.com/documentation/intro-vr/latest/concepts/bp_app_imaging/)),和可视化的渲染范围.
而我们这篇教程侧重于用Unity内建的VR支持,所以请到Oculus网站(https://developer.oculus.com/downloads/game-engines/0.1.3.0-beta/Oculus_Utilities_for_Unity_5/)查看哪种方式更适合开发你需求的VR项目.
你现在应该了解VR开发的软硬件需求以及如何在你项目中使用哪种技术实现VR功能.
原文:http://unity3d.com/learn/tutorials/topics/virtual-reality
由 四角钱 (XK) 翻译,转载请注明来自 http://blog.1vr.cn
也许你可以把VR这系列文章的翻译开源出来,让大家做修订:)