开启左侧

[特效贴图] IOS增强现实AR应用《手机尺》开发日志

[复制链接]
在这里发布一篇IOS增强现实应用的开发日志。使用UE4的ARkit插件,在IOS上开发一款名为《手机尺》的测量工具。这款应用可以用来测量实际场景中的长度,角度,面积,体积等物理量。app store上有一款类似的应用,名为measure kit。整个制作过程将以日志的形式进行叙述,方便想要学习的同学进行参考。
---------------------------------

镇楼图:

1920x1080.jpg
-------------------------
介绍视频:

http://v.youku.com/v_show/id_XMzE2ODkxNzUxNg==


点击标签,内容一促即达。

atmhrc
自我介绍空空的,快来写点什么吧~
未设置城市
其他作品 (29)

IOS增强现实AR应用《手机尺》开发日志

3448 14 6年前
您需要登录后才可以回帖 登录

全部评论
DAY1
首先要在iphone上运行自己做的AR程序,需要具备以下几个条件,第一是具有A10以上处理器的苹果设备,IOS版本需要在11bate以上。于是乎我买了一个iPhone8P,其实7P也是可以的。不过11月正好新8发布,电子设备是买新不买旧,就花了一个月的时间等8出。
与此同时,正好可以完成第二步准备工作,就是申请苹果开发者资格。苹果开发者资格申请可以在苹果开发者网站进行申请(具体可以百度),个人只需要缴纳688的年费,就可以获得真机调试,app发布资格。而申请资格证书缴费需要拥有银联与国际2种支付渠道的信用卡才行(因为央行关闭了非银联渠道的对外支付),当然也可以借助某宝,不过我还是喜欢自立根生,于是申请了一张招商的信用卡,又花去了半个月时间。支付完成之后,只要在苹果网站填写资料,等待审核通过就可以了。
6年前 回复
DAY2
准备完所有条件之后,就可以开始制作了,首先是苹果证书与移动平台信息的导入,从苹果官网下载证书,这个下载证书操作网上有一大堆教程,相当比较简单。只要下载下来,然后打开工程,点击导入就可以了。
1.png
状态是显示无效的,一般来说要是绿字,显示有效才可以,不过我所有设置都已经正确,还是显示无效,估计是程序bug,先不去管它,只要能进行调试就可以
2.png
插上设备,点开itunes进行空场景调试 3.jpg

6年前 回复
DAY3
接下来是设置ARpawn,就是创建一个角色,并在角色中构建一个AR相机,当游戏运行的时候,将手机相机捕捉到的换面,投射至AR相机的背景上,同时将用户对手机的操作输入到角色中,通过角色来实现游戏中相机的运动。而要完成这一步操作,必须激活UE4中的ARkit插件。所有目前的AR游戏思路大体都差不多。

6年前 回复
居然没人看。。
6年前 回复
DAY4
在正式开始程序制作之前,我会进行一次对于AR的基础测试。试着在手机上运行一次AR(毕竟我也是第一次尝试虚幻4AR制作),于是我编写了一个非常简单的AR程序。
我先创建了一个只包含有白色方体的测试蓝图,随后在关卡蓝图当中,调用出AR平面检测节点。这个节点是ARkit的关键节点,用来检测摄像机捕获到场景中可能存在的真实平面。
他的运行原理大致是这样的:当AR运行的时候,程序通过以下三个方式来判断场景当中是否存在平面。1.像素点运算,通过摄像机捕捉的画面,来判断眼前的场景是否是一个平面。2.设备的惯性和加速度感知,通过感知用户对手中设备的操作,来反向运算出摄像机的运动轨迹。3.环境光感知运算,通过对环境中光源的捕捉与运算,来计算场景中的平面。总得来说,就是找平的面。那么这个功能体现在UE4中,就是这个tarking space节点了。
然后我用触屏来触发这个节点,生成一个测试在场景中。来测试ARkit的实际功效,发现效果挺不错的,能找到一些明显的平面。
del.png
然后我在设备中调试程序:
QQ图片20171123083607.jpg
QQ图片20171123083609.jpg
QQ图片20171123083611.jpg

6年前 回复
DAY5
下面开始正式的程序制作,首先来绘制UI。UI的设计,我尽可能做的简单直接。这个程序不是游戏,而是一个测量工具,因此没有花太多精力在界面的美观上。下面是这个UI的截图。
a.png
简单的介绍一下几个按钮的功能。右侧是测量工具按钮,包括清空与撤销按钮,中间那个勾勾是执行测量按钮。整个操作采用横屏,home键在右的操作方式。因为要考虑到这个程序会打开摄像头,而iPhone的摄像头在左上角,所以这种横屏向右的手持方式比较方便用户测量。
6年前 回复
DAY6
制作完UI之后,开始制作playercontroller与gamemode。而playercontroller是这个程序的一个重点,我们要往里面放置一个测量计时器,用这个计时器来触发我们的测量事件。
这个程序的运作思路是:用户开始测量,在场景中生成测量工具(一个测量蓝图),同时playercontroller中的计时器开始计时,计时器连接着一个自定义的事件,计时器每隔很短的时间,触发这个自定义事件,而这个自定义事件被触发时,运行ARkit的平面检测,将检测到的平面信息反馈给测量工具蓝图,测量工具蓝图将接收到的数据,计算为实际的长度,角度,面积等等,完成场景当中物体的测量。
6年前 回复
DAY7
有了大体框架以后,我们就开始制作具体的测量工具了,首先是线段测量工具。在造型的设计上,采用白色带箭头的线段,然后在上面标识出长度,长度单位采用cm与m。
线段的测量相对非常简单,整个测量工具的制作思路是:在建模软件中导出一个长度为10格的圆柱体,采用X轴朝向横放,原点坐标归到圆柱底部,然后导入到UE4中,因为UE4中的一格距离等于现实中的1cm,所以这个被导入的圆柱体长度应该是10cm。然后建立起线段测量工具蓝图,把圆柱体放入其中。当测量开始的时候,根据playercontroller蓝图实时检测到的数据,等比例缩放这个圆柱体的长度。
这里的难点是涉及到UE4中的长度与现实中的长度换算,所以这个圆柱体的模型就采用了10格的距离,换算的时候除以10就可以了(为啥不用1格,使用1格就不用换算倍率,但是长度为1格以后,模型就看不清了,太窄了)
长度有了,接下来是角度,要让这条线段随着用户摄像头的方向一起移动。角度的运算非常简单,只要将线段首尾的两个坐标相减,就可以计算出整条线段的向量。
随后将线段的长度数值,输出到UI中,加上单位,用户就可以看到完整的线段测量工具了
6年前 回复
DAY8
下面是余下几个测量工具的制作,有了线段测量工具的制作,做角度还有面积还有体积,相对就容易了。制作角度主要是角度的测算,我用了两向量的夹角公式,向量积除以向量模的积就算出两条线段所夹角的余弦值了,然后反三角就可以算出角度大小。主要是在做角度测量工具的时候,我想给角度加上一个两角边连接的圆弧。结果发现这个圆弧异常的难做,他要随着测量出来的角度进行同步的缩放与旋转。尝试了几次都失败了,于是就把这个东西去掉了。。。
6年前 回复
数据加载中...
没有更多评论了
快速回复 返回顶部 返回列表