转载

站在VR世界的大门前 - 怎样通过业余练手项目学习与实践

周六午夜,冰凉爽口的1664,以及同样沁人心脾的《Benny Goodman Carnegie Hall Jazz Concert》,1938年的爵士之声经由唱片与唱针的摩擦悠然的弥散到故作清凉的夏夜之中。

说起来也是惭愧,念叨过几期关于黑胶的事,从七月底到现在也收了约莫有将近二十张老爵士的样子(真的有吗?),期间百般观赏、把玩、爱抚...然而直到上周才收到播放设备 - 美的醉人的Crosley手提箱式黑胶唱机。所谓定制款(与普通款式的大致区别在于更为复古的材质、配色和logo字体,以及更为定制化的价格),花了些时日才从美利坚大陆运抵,一路漂洋过海(分明是搭乘飞机)十分不易,唱机君辛苦了,接下来请尽情欢歌才好。

330ml的1664不出两口便见了底,其余的还睡在冰箱里面,不想再去打扰它们。Jim Beam老伙计一如既往的在着,被昏黄的灯光映染的通体浓郁的琥珀色液体多多少少封存着一些木桶的香气,在这样的夜里,全然只有安心的体验。

在那之后便昏昏沉沉的做起了似有若无的梦,唱针也终于奔跑到了纹路的尽头。一把年纪,指望在午夜保持清醒或哪怕微醺着敲些字也不是很容易。现在已是翌日。这个词用的似乎有些不当,站在旁观者的角度讲出来才更加恰如其分一些,用来描述“转过天来”这样;而对于在时间线上并未经历断层的事件主体(我)来说,所谓“翌日”永远是相对于当前的“下一天”而已。

所以你看,这样一篇所谓文章或日志(“日志”这个说法太接近于“blog” - 或再向上追溯一层 - 即“weblog”一词的本意了,自己也很少用到了吧,会担心如今很多小朋友并不了解“博客”和“日志”之间究竟有什么关系;亦或是我多虑了?),成文历程却多多少少有些支离破碎 - 周六下午乖乖的窝在公司做掉译文本身,午夜开始写前言,然后是周日下午继续前言和彩蛋,整理之后更新上线,最后发布到公众号。而穿插在这些节点之间的林林总总,在慵懒的意识流里所呈现出的面貌却也星星点点的仿佛仍会被视觉、听觉、味觉等等器官所真切的感受到,像是田林路的沃尔玛、美味的干拌面与鸡汤、好看的《特伦鲍姆一家》、村上接力、仿佛受过诅咒一般的上海夏季的正午日光、一部名为《看见恶魔》的韩国片(给我印象最深的并非其中的任何情节 - 如果有 - 而是叫做这种名字的影片竟然真的可以长达两个半小时,简直匪夷所思)。

而此刻我在揣摩,既然已经将近六点,接下来是否还要再去十九楼跑上那么五公里的样子。夏季的傍晚永远是一副不那么真实的嘴脸,静着,却似乎总能听到远方持续响彻着某种巨大而磅礴的噪声 - 那声音从不贸然逼近,却无时无刻不伴随着落日的余辉而经久不息。

那么说正经的了。上一期对之前做过的VR相关文章进行了归纳整理,包括“设备常识”、“基础概念”、“自学心得”、“项目经验”和“实战方法”五大类别,共计十五篇,VR学习第一阶段也就此告一段落。说起来,阶段与阶段之间似乎应该存在些其他什么才好的样子,然而并没有,今次继续。

而所谓第二阶段,计划中也并未包含“进阶”一类的概念,上面提到的五个类别的话题或许都会覆盖到。本篇的原文,“ 4 Tips for Learning Development with Side Projects ”,关于怎样通过业余项目更有效的进行VR开发的学习与实践;作者Liv Erickson,微软的VR/AR技术布道者,之前在微博里念叨过的女神之一,简直不能更酷。下面进入正文。

在业余时间通过练手项目保持学习,这对于很多新手来说可能不太容易。我(英文原文作者)的工作要求我从刚开始自学VR开发的时候起就必须认真对待这件事 - 作为微软的一名技术布道者(technical evangelist),我需要在形形色色的小项目上花费大量的时间去思考、实践和总结,进而向更多的人传播VR和AR的开发基础知识。在本文中,我将和各位分享一些相关的经验心得,希望能帮助大家更有效的通过业余练手项目来提升自己。

建议各位首先通过这六个问题评估一下怎样的学习方式及实践项目更加适合自己,然后我们一起来看看如何将练手项目的价值发挥到最大。

以小为始

通过小项目起步,一次学习一点新东西,让自己逐渐适应新的领域,并随着知识的积累而向这些起步项目当中不断增加新的功能点。

我自己曾经在项目规模这个问题上走过弯路,譬如在刚刚开始学习web开发的时候就一心想要做一些Facebook那种级别的东西,真正开始实践时才发现,若不将这样的目标一再压缩或拆解,自己根本没可能上手。

多年之后,我的首个VR练手项目则简单实际了很多 - 无非是使用Unity制作了一个小app,整个场景里面只有一个球体,当你点击时,球体的颜色会发生变化(译注:和我们之前的“ Unity与Cardboard app基础实践 ”类似吧,甚至更加简单一些)。接下来,我做了一个很基础的迷宫游戏,然后是一个非常简单的WebVR站点。有些时候,我甚至只是制作一些有意思的环境场景而已,其中不包含任何互动元素,目的就是让自己能够更加熟练的使用Unity编辑器的各种功能。

明确目标

要有的放矢的进行实践,在每个项目开始之前想清楚自己打算从中学到哪些东西,让学习过程更加可控、可管理。当然,“学习”这件事本身就是对于未知领域的探索历程,期间目标很有可能发生变化和调整,这完全没问题。

如今,我在每个项目开始之前都能将目标尽可能的梳理清晰,不过回头看看,在自学VR开发的初期阶段,我的很多练手项目还是缺乏一些最基本的方向性。说起来,这倒不完全是坏事,特别是在刚刚起步的时候,每次花些时间做些什么总会让你学到一些新东西,点终究会连接成线。随着对各种设备、开发工具和技能的深入了解,我才逐渐掌握了一些制定目标的策略。

我习惯于将练手项目按照目标进行分类,然后选择不同的实现方式 - 如果我需要了解一款新的设备平台及相应的SKD,那么我会选择在Unity当中进行学习和实践,因为这是我最熟悉的编辑器,无需花费额外的时间和精力进行学习。而如果我要了解一款新的编辑器,那么我会以Cardboard或Oculus Rift DK 2为目标平台进行实践,因为这些是我最为熟悉的设备。

很多时候,我的项目目标就是练习使用某种技术来完成一个特定的目标,譬如:

  • 使用Unity制作可互动的Cardboard app
  • 在Unreal引擎中实现Leap Motion手势交互
  • 在Unity中创造一个空间环境,学习粒子系统、材质及光影的基础知识
  • 使WebVR站点在DK 2中运行起来
  • 通过A-Frame呈现360°照片

成长进化

让初期的小项目随着自己的知识积累与技能提升保持成长和进化。

我手头的很多项目,在发展到一定程度之后,相比于最初计划当中的样子已经有了很大的不同。我曾在一次黑客松(hackathon)活动中制作了一款简单的Tron主题射击游戏,然而随着我持续的尝试新想法并进行调整,它逐渐变成了某种高科技机器人风格的外太空游戏,玩法也有了很大的不同。

有些时候,项目的实际规模会比你所预估的小很多,这就意味着你可以花更多时间去学习和尝试一些计划外的东西。例如我在第一次尝试A-Frame的时候,原本的计划只是在网页中实现360°照片的嵌入,然而实际做起来却发现这个目标太过简单,于是继续深入学习,这一点那一点的增加着内容和功能,最终完成了很多计划外的实践练习。

保持记录

我个人始终相信每一名开发者都应该开设自己的博客,一方面可以分享知识,另一方面更是可以帮助自己记录所学、所想、所做。我在自己的KittenVR项目当中,始终会确保将学习和实践过程中的每一个关键环节都记录下来。最终,这些记录成为了重要的参考文档,每当在其他项目中遇到相似的问题,我都可以很快的找到解决方案。

进行文字记录的过程本身也是一种复习,你可以通过这种方式将自己制定的目标、查阅的资料、编写的代码、实现的产出和发现的问题等等梳理整合到一处,形成一个完整的学习案例。

同步代码

我很喜欢用GitHub来追踪项目进程,我的多数文件也都放在了上面。你可以在GitHub上清晰的了解自己的开发动态,当然最基本的文件存储和备份功能更是值得信赖。

原文  http://www.beforweb.com/node/847
正文到此结束
Loading...