【虚幻引擎】UE4 - VR入门经验

之前看了一个月左右的资料,包括官方文档及简单的C++教程,辅助做一些Demo练习,感觉再这么看下去也效果不佳,索性按着以前工作时的思路,先想好要做什么,再一一去想法实现。


要做什么

首先要有一个主场景,作为其他关卡的总入口。
构建这一场景时,能够想到的需要实现的基本操作如下:



虽然这些操作官方示例里都有实现,但是要想看懂并且变成自己的还是需要亲身实践、加深理解。

参考资料

这方面资料并不多但基本够用,总的来说还是英文的靠谱些(我英文不好哇),没入门时会觉得有点摸不着头脑,再回过头来看时思路会清晰不少。

文档

视频

Unreal Engine的官方视频,在 YouTube 上的比较全一些,优酷上也有一些。
与VR相关的可参见这两个系列:

还可以参考下YouTube上的这两块资源:

示例

在引擎中新建一个“Virtual Reality”项目,即可看到示例。
我需要的功能可以说示例里都已实现,本来看示例对于基础好的人来说是最方便的了,但是对于像我这种刚入门的来说,蓝图多了看起来着实让人头疼,我目前阶段策略就是万不得已才去研究示例、找解决方法。


实践经验

创建场景

第一步就掉坑里了且好久才爬上来,只因为起步的Setting up UE4 to work with SteamVR中英文档有差异,纠结了小半天,压根没想着文档本身就有问题。
纠结的重点是中文版文末特意强调:


可是设为(0,0,0)就是Bad Size,运行时玩家压根不在指定点生成(自动跑到世界原点生成了),而且从HMD看到的相对高度也不对,它为啥还特意这么写呢!?
按英文文档的思路来就对了,而且逻辑也清晰了很多,主要是从第9步开始的相关设置。

虽然很多时候,中文文档的顶部都会有说明,但大多时候都被忽略,潜意识里总觉得不会差太多,就算少东西但总不至于错,这次算是领教了。


接入手柄

Motion Controller Component Setup基本都讲到了,总的来说就是通过MotionControllerComponent、StaticMeshComponent来实现接入,再扩展讲一下使用现成的手柄素材。

文中是使用了一个椎体来表现手柄,其实在Engine Content有现成的手柄素材。
要想看到并使用Engine Content资源,需要勾选 **Content Browser -> View Options -> Show Engine Content **选项。


然后在选择Static Mesh时搜索“vive”就能找到对应的素材了。


当然还有其他设备资源可供选择:


位置瞬移

Teleport in Unreal Engine - HTC VIVE ,能找到的讲解教程基本都是这个思路,但我还是遇到了问题。

按教程,看上去能够实现瞬移了就以为大功告成了,但是在做下一步时,才发现移动的位置并不准确,才又反过头来研究。
经过观察发现,SetActorLocation方法(包括Teleport方法)实际改变的是HMD中心点的世界坐标。



直接用LineTraceByChannel的目标点去设置的话只是将中心点移动到指定位置(即能看到代表中心点的蓝圈到了那个位置),但是没有考虑到人与中心点的偏移,人如果不在中心点的话,始终是到不了指定点的。
至少我没有找到任何资料提到类似的问题,也不确定这个问题是普遍存在的呢还是我个人的问题,所以只好静下心来看示例咯,毕竟人家是实现了准确无误的嘛。
有了目标看起蓝图来也轻松一些,还真让我发现示例里是有一步转换再设置的,只不过它还考虑了移动角度。


我们只需要关注Location那条转换,同理迁移到自己的设置里,这下瞬移位置才算是准确了。


区域控制

UE4 - Simple Teleportation Mechanic 视频的前半部分也是在讲Teleport,后边一部分讲到了通过使用NavMeshBoundsVolume来实现区域控制,设置好体积区域后主要是通过ProjectPointtoNavigation方法来判断然后再进行处理的。


如果对NavMesh等概念和使用不太清楚的,可以参见这两个视频:
WTF Is? Volume - Nav Mesh Bounds in Unreal Engine 4
WTF Is? Volume - Nav Modifier in Unreal Engine 4

拾取物体

UE4下实现Vive手柄拾取物品
UE4 将actor acttach to 另一个actor需要注意的
结合这两篇文章和理解,实现拾取应该就不难了。

阶段总结

基本功能倒是都实现了,但是感觉要想再做更复杂的功能还是有不少困难。
所以结合这两周的实践经验,下阶段应该:

  • 强化英语
  • 补习数学
  • 多实践、勤总结

欢迎一起学习交流!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容

  • 如果说2014年Facebook以20亿美元收购Oculus,让外界首次聚焦VR/AR行业的话,那么2016年则必...
    阿菇在搬砖阅读 1,312评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • 生命是一场修行,缘来是一次渡劫。 小和尚已经十七岁了,师父说过了年,就可以下山历练了。小和尚原本是寺院旁边普通人家...
    朱小猫阅读 742评论 0 1
  • 首先,做个自我介绍。 姓名:普通; 性别:女; 爱好:男; 属相:牛; 星座:金牛座。 二十岁,人生最美好的十年的...
    我是青少年呀阅读 211评论 0 0