Unity开发VR眼镜中文入门教程(1)

原文: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下:

 

1_enable_vr

然后勾选“Virtual Reality Supported”选择框.

2_enable_vr

 

 

在运行时,可以在代码中使用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游戏,比以往”左右双画面”的方式更好用.

3_enable_vr_cube

这里我们要注意,没必要为左右眼分别创建独立的相机,所有相机都会自动的以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