首页 > 编程知识 正文

unity2021新功能,unity的vr开发基础

时间:2023-05-06 04:40:10 阅读:116834 作者:1265

你不知道怎么开发VR游戏吗? Unity5.3官方虚拟现实教程问世-系列5虚拟现实中的运动王寒3个月前对于虚拟现实APP应用来说,不仅前面提到的目标帧率没有实现,虚拟现实中的运动也是导致虚拟现实眩晕的重要原因之一。 因此,在产品中具体解决这个问题,需要仔细研究。 这个问题最好从产品开发初期开始,甚至在概念设计的阶段就加以考虑。 这是因为,如果选择的运动解决方案引起用户的不适感(nausea ),则会严重影响用户的体验。

VR中的nausea (恶心、不舒服)和舒适

VR APP最令人气愤的问题莫过于恶心、头晕,也就是所谓的晕VR。 这个问题的根源是,在现实世界中玩家的身体是静止的,但他们的视点是在虚拟环境中移动。 Illusions of self-motion现象也与此密切相关,但应尽量避免。

通常,一个基本原则是不要移动相机来复制玩家的运动。 否则,可能会导致所谓的前庭觉问题。 简而言之,“幻动”现象是指用户的大脑被来自眼睛、耳朵和身体的碰撞信号完全扰乱。 此时,人脑会觉得自己是“中毒”,引起与中毒相似的反应——呕吐、恶心。 当然,和任何事情一样,都存在例外,所以在开发游戏的过程中,必须尽量对不同的用户进行测试。

值得注意的是,在某些允许空间跟踪的VR系统(例如允许在房间内走动的HTC Vive )中,“幻动”现象引起的呕吐恶心现象并不明显。 但是,作为开发者,在虚拟环境中工作时,必须注意不要破坏身体各种感觉的平衡。

目前,最舒适的VR体验是静止的。 简而言之,就是让用户坐在某个固定的位置上。 因此,装甲炮塔类游戏在VR中非常流行。 例如,我们在示例中提供的shooter360 (目标网关)和shooter360 (目标网关)场景展示了这样的游戏。

VR的第一人称游戏

鼠标、WASD键、游戏手柄等传统第一人称角色控制方式容易导致恶心,尽量不要使用。 如果开发者打算在游戏中使用第一人称控制,最好尽可能多地测试用户,绝对禁止调头。 参考disabling yaw (https://Twitter.com/id _ aa _ carmack/status/55323861267353600 ),可以使用snapping旋转来代替,也可以使用高速相机摄像头有关quick fade和快照旋转的详细信息,请参见相机活动组件。

请注意,如果需要在游戏中实现玩家的运动,如果有技术原因(例如Maze场景)或其他原因,向玩家提供静态的视觉参考物,例如宇宙飞船的驾驶室、汽车的内部座位等。 有关座舱侧的实际游戏案例,请参考径向- g (径向- g :径向翻转)、环形飞行(lunarflight )和横向空间(titansofspace )横向空间速度)

VR中的淡入/淡出和闪烁渐变

在虚拟环境中实现运动的一个常见方法是使用淡入或淡入闪烁的渐变。 例如,使其淡入黑色,将相机移动到所需位置,然后淡入。 除此之外,也可以考虑更复杂的方法,即使用闪烁渐变的方法。 有关这一点的具体说明,请访问Oculus Connect 2014上的Tom Forsyth讲座(https://www.youtube.com/watch )? v=addunjpjjv4feature=youtu.bet=40m5s )。

VR Samples示例项目场景中的运动

在本系列教程的第二个线圈中,开发人员表示在Unity上不能直接移动照相机。 若要移动摄影机,必须将其设置为游戏对象的子对象,并根据父对象的变换修改其位置和旋转。

style="margin-top:20px; margin-bottom:20px">我们需要确保用户在VR Samples项目中能够获得舒适的VR体验,因此大多数的场景都不包含摄像机的运动。不过在Flyer和Maze场景中都包含了运动:让我们一起来看看其中包含了什么杨的运动,以及为何我们会选择这种运动。注意到,在Menu场景的用户界面中,我们将此类场景标记为“Comfortable for some(仅部分人会感到舒适)”,而不是“Most(大多数人会感到舒适)”。虽然我们不能在VR发展的早期就把大多数人排除在外,但是向用户坦承他们可能遇到的麻烦会更靠谱。

Flyer 场景中的VR运动

在Flyer场景中,摄像机以恒定的速度向前飞,当摄像机从介绍界面淡入后就会一直保持运动。因此我们不会感觉到突然的加速,而加速往往是导致恶心现象的hcdxlb。

为了进一步提升用户体验,我们让飞船的尾部显示轨迹粒子特效,粒子在场景的边缘运动,从而有助于让玩家获得对速度的感受。此外,玩家还获得了一种视觉参照物,从而更好的避免恶心现象。

当然,想获得类似的效果,还可以让摄像机保持静止,然后让所有的东西相对于摄像机运动。

Maze- 桌面风格游戏中的VR运动

Maze场景是桌面风格游戏的示例,其中摄像机看起来处于固定的位置,玩家可以使用swipe来旋转迷宫。

但是因为我们使用lightmapping和NavMesh(Unity - Manual: Navigation and Pathfinding)让游戏角色在迷宫中漫游,就不能旋转桌面,因为它们需要依赖被标记为静态的对象。为了解决这个问题,我们使用了下面的对象层级。

VROrbitCamera对象被放在迷宫的中央,而MazeUnityLogo对象则放在迷宫的一角,MainCamera放在另一角。


通过这种方式,我们就可以旋转VROrbitCamera对象,并让子对象围绕迷宫的中央旋转。Unity的logo用作玩家的视觉参照物,让我们误以为只有桌面在旋转。

为了实现这种旋转,VROrbitCamera提供了两个组件:

1.CameraOrbit,可以处理旋转

2.Rigidbody,可以方便我们调整质量和阻尼参数


CameraOrbit组件有三个重要的Orbit Style选项:

1.Smooth(平缓)-这也是我们在项目中所使用的选项。旋转该选项可以平滑的旋转桌面,同时对运动有个缓慢的阻尼效应。我们可以调整Rotation Increment和RigidBody的属性来获得不同的运动速度、阻尼效应和摄像机的旋转量。

2.Step(分级)-如果想立即旋转到下一个位置,就可以考虑这个选项。调整Rotation Increment参数可以调整摄像机的旋转量。

3.Step With Fade(分级加淡入淡出)-和分级旋转的方式类似,不过同时会让摄像机快速变黑,然后再淡入。通过让摄像机快速淡出,调整摄像机的位置,然后再淡入,可以让用户在VR环境中运动,同时又不导致恶心现象。我们可以调整Rotation Fade Duration参数来设置每次淡入淡出的时间间隔。

总的来说,在开发VR内容时,我们必须慎重对待玩家的运动,并避免恶心眩晕感。我们强烈推荐大家仔细阅读Oculus关于Simulator Sickness和Motion的相关说明。

Shooter 180/360(Target Gallery/Arena)中的VR运动

在这两个示例场景中,我们使用跟踪头部旋转来控制运动的输入,以及简单的射击开火输入。需要注意的是周围的环境并没有随着玩家的运动而变化- 目标会在静态的环境中出现,让玩家可以瞄准射击。

这些场景在Menu场景中标记为“Comfortable for most(大多数人会感到舒适)”,因为这种游戏机制几乎不会引起玩家的nausea(恶心眩晕)。

看完本篇教程,我们应该对VR中的运动有了基本的认识,以及为何我们在特定的场景中选择特定的运动方式。考虑到这个问题对提升VR应用的用户体验非常重要,强烈推荐大家多阅读以下的相关内容:

Virtual reality sickness

Illusions of self-motion

Vestibular system

Blink transitions( https://www.youtube.com/watch?v=addUnJpjjv4&feature=youtu.be&t=40m5s)

Oculus关于Simulator Sickness的最佳实践(https://developer.oculus.com/documentation/intro-vr/latest/concepts/bp_app_simulator_sickness/)

Oculus关于Motion的最佳实践(https://developer.oculus.com/documentation/intro-vr/latest/concepts/bp_app_motion/)

在下一篇教程中,我们将一起学习如何设置游戏,以便在DK2和Gear VR上进行真机测试。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。