进入ARKit之旅—项目“总结”

一个星期前,作为Galvanize第三季度项目的一部分,我和其他团队成员一起投入使用ARKit来构建iOS应用程序。 既然我们已经介绍了,我想分享有关该过程,我们学到的东西以及下一步的一些最终想法,以期帮助任何想要开始构建AR应用程序的人。 除此之外,我希望这对那些有想法并只是在思考“我该怎么办呢?”的人(尤其是新编码员)至少可以有所启发。

我们从哪里开始

我们的程序专注于Javascript,所以我喜欢在Swift中向我的工具箱中添加新语言并学习一些用于移动和本机应用程序开发的一般概念的想法。

话虽这么说,我和我的团队成员都没有任何Swift或Objective C的经验,所以我们首先必须专注于学习,然后才能构建有意义的东西。 我一直在独立研究Java,这是我们的“选修课”阶段的一部分,这使过渡变得更加容易,但是仍然需要回到基础知识。

幸运的是,学习一门新语言确实没有那么困难。 那里有一些很棒的资源(Treehouse,Udemy,当然还有Apple文档),最终,设计和逻辑并没有真正在各种语言之间发生变化-只是人们实现该设计和逻辑的方式。 前2-3天花在重新学习诸如变量声明,类型输入(来自Javascript背景的新概念),控制流,类和OOP(也是相对较新的)之类的东西。 到那时,我们已经感到更加自在-我们已经学习和培训了像工程师一样思考的思想,我们只需要了解应用这种思想的新方法即可。

我们在哪里结束

申请还远远没有完成,但是我对我们能够完成的工作感到非常满意。 在Swift中建立基础之后,我们能够导入ARKit和UIKit库以添加所需的功能。 最终结果是一个塔式建筑游戏,其中的木块使用增强现实技术渲染,并且用户能够移动这些块,目的是将它们堆叠起来以在塔掉落之前将其建造得更高。

在演讲之前的晚上,我设法获得了我们团队的一些视频

我们在使用UI时遇到了一些挑战,不得不进行两次旋转,直到我们确定在仍然感觉自然的情况下仍能正常工作的东西。 我们的第一个尝试是使用Core ML来跟踪手势,以便用户实际上可以抓住并移动AR块,但是在所有三个维度上进行跟踪而不是仅跟踪X和Y都存在真正的挑战。

接下来,我们尝试使用触摸手势,因此用户可以拖动这些块进行放置。 这带来了将二维手势转换为3维运动的相同挑战。 我们最终选择了控制板样式,以便用户可以对块(均具有物理物体和属性)施加力以将其放置到位。

我们无法解决的一个问题是围绕这些物理问题-目前,塔楼将自行落下。 我们认为这是由砌块所在的平面引起的,如果它不是完美的水平,重力将倾向于将塔架推倒。 这绝对是一个问题,因为无法按照我们的预期完成游戏,但是一旦问题解决,我们很乐意将其余的机制都准备就绪。

下一步是什么

要解决的直接挑战是使该塔保持在原位。 我们对此有一些想法,并将在未来几天内尝试更好地了解不同的场景工具包类型如何交互。

我也确实想找到一种方法来使手部跟踪工作达到我们最初的预期。 在我们的研究中,我遇到了Manom​​otion公司,该公司有一个非常有趣的产品,该产品支持AR应用程序的手势跟踪。 我想尝试一下他们的SDK,以了解其工作原理,但是最终,我认为找到一种没有这种即插即用解决方案的方法将是一件充满挑战的挑战。

这是什么意思

当您删除详细信息(iOS,Swift,AR Kit,Core ML)时,该项目的目的是促使我们作为开发人员抓住机遇并潜入未知领域。 这是关于变得不舒服变得更加自在—能够使用全新的东西并找到将其与新的概念联系起来的方法。

确实,这是拥抱变化。 作为工程师,我认为我们在成就自己时只能受到恐惧和安慰的限制。 我们需要对学习新事物持开放态度,即使这意味着一开始就会感到有些失落或不安全。 我们都从这里开始-无论是Javascript,Python,Java还是任何语言,我们都从零开始。 根据我们已经知道的信息,可以轻松地休息一下。 仅承担我们知道可以解决的挑战就很容易避免失败。 但是,如果我们能克服这些困难,那么如果我们能够跨入新的领域并告诉自己:“这将很艰难,但无论如何我都会这样做!” —如果我们能够做到这一点,我认为那是没有的限制我们可以完成的工作。

非常感谢大家为您提供一些宝贵的时间阅读这篇文章-我真的希望您能拿走一些东西,即使有些少! 我打算在Galvanize计划即将结束时继续发布更新,因此,如果有任何问题或主题可以帮助您解决,请在评论中告诉我!

    Interesting Posts