Category Archives: AR

第4回UnityでARkit2アプリを作る!~面積測定アプリを作る~

こんにちはイマイです
少し空きましたが前回の続きのARKitで面積の測定するアプリを作っていこうと思います。

最終的にはこんな感じになります


面積を求める

前回は2点の距離を求めましたが今回は面積を求めてみようと思います
三点の面積の求め方は前の記事で書いた通りです。
こちらからご覧ください

Unityで面積を求めたい 3Dの場合

こんにちはイマイです 最近書いてあるARKitのアプリで3次次元空間の3点で作れる面の面積を求めたいなぁと 思ったので実装方法を考えてみました。 調べてみると公式見当たりませんでしたね… (ご存知の方がいましたらご教授ください) 以下のサイトをみると意外と簡単にベクトルを使って計算できるみたいなんで実装してみました。

第二回で作ったコードに少し手を加え、面積を表示するプログラムを追加します
前回からの変更点があるところをピックアップして表示します。

ボタンを押した回数に応じて処理を変更

	public void ClickPlaceButton(){
		switch (Click){
			case 1:
			PlaceMarker();
			break;

			case 2:
			PlaceMarker();
			CalculateDistance();
			break;

			case 3:
			PlaceMarker();
			CalculateArea();
			break;

			case 4:
			Reset();
			break;
		}
	}

ボタンを押した回数に応じて処理を変更しています。
1回目:マーカーをセット
2回目:マーカーをセット 距離を表示
3回目:マーカーをセット 面積を表示
4回目:マーカーを消去

今回は回数が少ないのでcaseを使いましたがもっと多くなる場合には配列とかを使った方がスマートになるかと思います。

面積を計算して表示する

	public void CalculateArea(){
		Vector3 pos1 = list_toggle_[0].transform.position;
		Vector3 pos2 = list_toggle_[1].transform.position;
		Vector3 pos3 = list_toggle_[2].transform.position;
		
		Vector3 D = Vector3.Cross(pos2-pos1,pos3-pos1);
		float S = D.magnitude / 2;

		DisplayText.text = "3点の面積"+(S/2).ToString("f2")+"m^2";
	}

ベクトルで面積を計算後画上に表示しています。

細かな設定などはここで説明すると時間がかかってしまうので
一式をGithubにアップロードしましたので気になる方は各自でダウンロードして動かしてみてください!
こちらから確認できます
(ARKitPlugInを導入していない関係でマーカーのオブジェクトと認識した床はシェーダーで書いてみました。)

実行環境は第一回に書いた通りです
また、Githubに上げているファイルの中身にはARKitPugInが入っていないので自分で入れてくださいね!
うまくやればn角形の面積や、見た目を調整して線を表示したり、面に色を塗れば立派なアプリになるかと思います!

ARKitで距離測定などをするアプリの解説は今回で最後にしたいと思います〜
次回以降はARKitを使った別のアプリを書いていく予定です

それでは今回はここまで
良いハッキングライフを〜

第3回UnityでARkit2アプリを作る!距離測定アプリを作る

こんにちはイマイです。

前回までの記事でARkitで開発する環境を構築することができたと思うので
これから本格的にアプリをつくっていきます!

今回の目標

動画のような距離を測定するアプリケーションをつくります!

動画でみると距離の誤差は1cm未満と実用性も十分であることがわかりますね!

続きを読む →

第2回UnityでARkit2アプリを作る! ARKitRemoteを使ってラクをしよう

イマイです
今回もARKitのアプリを作っていきましょう!

前回の記事を読んでいる中で
Unityで書き出し→Xcodeでビルド
この工程はとてもめんどくさい!!
そしてUnityエディタでテストができないのでトライアンドエラーに時間がかかる!
と思ったのではないでしょうか?
この二つを解決するために用意されているのが「ARKitRemote」です

この機能を使うことで
Xcodeへの書き出しを省略して
iPphoneとPCをUSBケーブルでつなぎUnityエディタ上でテストができるというものです。
続きを読む →

第1回UnityでARkit2アプリを作る!

イマイです。

以前投稿していた記事
UnityでARKitアプリを作る!
ですが、ARKitの更新やUnityのバージョンの変更で大幅な修正が必要になった部分があるので書き直していこうと思います!

ARKitとは?

・iOS11で搭載されたARフレームワーク
2017年の秋のアップデートで正式にリリースされたiOS11にARKitのフレームワークが搭載されました。
昨年まではARKitでしたが、2018年iOS12へのアップデートに伴いARKit2がリリースされました!
・床だけでなく壁の認識
・AR空間の共有
その他様々な機能が追加されました!

詳しくは公式ホームページから

iOS 12

iOS 12は、アプリケーションの速さと反応の良さを一段と向上させます。みんなとつながる方法も、カスタマイズできることも、あなたの楽しみも、一段と広がります。

なお、対応している機種は
A9/A10チップ以降機種となります。(iPhone6s以降の機種)
続きを読む →

AR Quick View対応のusdzのアレコレ

イマイです
前回の記事で簡単なARQuickViewの表示をする記事を書きましたが
あの後調べたら色々問題点があったのでその辺を今回はもう少し詳しく書いてみます。
まだ私の調査不足で間違っているところなどあるかもしれません…!
もし間違っているところなど有ればご指摘ください!

VECTARYの欠点

前回はusdzを書き出す際にVECTORYのサイトで書き出すという方法を採用しましたが、これには以下のような問題点があったようです。
・テクスチャを設定できない
・アニメーションを設定できない
色々調べたのですがこの二つはVECTORYは現時点では設定出来ないようです。
(私の調査不足かもしれませんが…)

この二つを解決するためには今の所公式のXcode10のCommandLineToolsを使うしかなさそうです。
今回はこちらのやり方を書いてみます。

必要なもの

以下が今回の作業で必要なものになります。
・macOS High Sierra以上のMacOS(私はMojaveでやりました。)
・Command Line Tools
・モデル
・テクスチャ

※現段階ではXcode10は正式にリリースされていないのでAppleのデベロッパ登録が必要になります。
続きを読む →