ARCoreとARKitを試してみよう.

今月はGoogle ARCoreとApple ARKitをすこし試してみました.とりあえず,それぞれのSDKをUnity環境で使って,サンプルを改造して自分が作ったモデルとかをタップした位置に表示する簡単な内容のアプリを作ってみます.

はじめに

この記事はAndroidアプリとかCとかプログラムは何となく分かるけど,Unityって詳しくないしよくわかんないけどとりあえずARナントカアプリを試してみたいという感じでやったもののレポートなので同じ位の知識の人向けです.テキトーに書いてるので動かなくても知りません.

 

参考までに私の環境:

PC:MacBook Pro 13'

Unity

  • ver2017.2.0b9 Personal

Androidバイス(ARCore用):GalaxyS8

  • OSバージョン忘れました

iOSバイス(ARKit用):iPad Pro 9.7' 2016

  • iOS11.0

 

ARアプリは実機がないとデバッグできないので,買いましょう.買うか迷って時間と思考を無駄にするくらいならカネをふんだんに使ってカネにならないことをしましょう.

 

ARCore

ARCoreで遊ぶのに必要なものをダウンロードしてきます.面倒なのでAndroidStudio(AndroidSDK)は導入済みのものとして説明します.

ARCore Downloads  |  ARCore  |  Google Developers

↑ここからarcore-preview.apkとarcore-unity-sdk-preview.unitypackageをダウンロードしてきます.apkはadb installコマンドで実機に入れてあげます.

とりあえずUnityで新規プロジェクトを作成します.

f:id:k3174r0:20170929211827p:plain

Assets>Import Package>Custom Package…からダウンロードしたarcore-unity-sdk-preview.unitypackageをインポートします.

f:id:k3174r0:20170929204826p:plain

Allを選択してからImport.

f:id:k3174r0:20170929213018p:plain

 ImportできたらScenseからHelloARを開いてみます.

f:id:k3174r0:20170929214841p:plain

Build Settings…を開きます.

f:id:k3174r0:20170929221053p:plain

Build Settingsで,PlatformからAndroidを選択したらSwitch Platformします.Add Open Scenesを押してHelloARのシーンが追加されます.Player Setting…を押してインスペクタータグにPlayerSettingsを表示させます.

f:id:k3174r0:20170929222230p:plain

PlayerSettingsから以下のように設定を変更します.

Other Settings > Multithreaded Rendering: Off
Other Settings > Package Name: 好きな名称に変更(com.Company.ProductName以外)
Other Settings > Minimum API Level: Android 7.0 'Nougat' (API Level 24)
Other Settings > Target API Level: Android 7.0 'Nougat' (API Level 24)
XR Settings > Tango Supported: On

 

これでサンプルはビルドできます.UnityでAndroidアプリをビルドしたことがある人はスッとできるかと思います.エラーが出る時はPreference>External ToolsでAndroidSDKのパスの位置などを確認してみてください.それでもなら検索してみましょう.

f:id:k3174r0:20170929225817p:plain

Build and Runで実機にアプリがインストールされるので遊んでみましょう.

 

タップした場所にAndroidロゴのキャラクタが表示されたかと思いますが,表示されるモデルを変えてみます.Prefabsフォルダに新しくPrefabをつくってあげます.

f:id:k3174r0:20170929233452p:plain

自分の表示したいモデルもドラッグアンドドロップで入れてあげます.他のCADでつくった.fbxファイルを使ってみました.

f:id:k3174r0:20170930003921p:plain

f:id:k3174r0:20170930004028p:plain

ヒエラルキータブのExampleControllerをクリックするとインスペクタータブに色々情報が表示されます.ExampleControllerにアタッチされているスクリプトHelloARControllerには,ARアプリ上の画面で検出された平面をタップした時にその位置にプレハブをインスタンスして配置するといった内容が記述されています.

f:id:k3174r0:20170930005109p:plain

ExampleControllerの詳細にあるHelloARControllerの設定にAndy Android Prefabの項目があります.

f:id:k3174r0:20170930010055p:plain

右側の丸いマーク⦿をクリックして,先程作成した表示したいモデルのPrefabを選択してダブルクリック.Andy Android Prefabの項目が選択したPrefabに変わります.

f:id:k3174r0:20170930011338p:plain

さあこれで,Bild and Runしてみます.タップした場所に表示されるヤツが変更されていると思います.後はスケールとかをいい感じに調整してみてあげてください.

 

参考までに,私が試したものを.↓

 

ARKit

ARkitを試すにはXcode9が必要です.古い情報ではbeta版をインストール必要と書かれていることがありますが,現在はMacApp Storeからダウンロードできる最新のxcodeがもうARKit対応しています.アップデートしておきましょう.

Unity-Technologies / Unity-ARKit-Plugin / Downloads — Bitbucket

↑ここからリポジトリをダウンロードするをクリックしてARKit

のUnity用SDKをダウロードしてきます.

まずはプロジェクト作りましょう

f:id:k3174r0:20170930044122p:plain

Assetsフォルダにダウンロードしてきて解凍したUnity-Technologies-unity-arkit-plugin-ホニャララをドラッグアンドドロップしてあげます.

f:id:k3174r0:20170930044352p:plain

UnityARKitSceneを開きます.

f:id:k3174r0:20170930044753p:plain

Build Settingsで,PlatformからiOSを選択したらSwitch Platformします.Add Open Scenesを押してUnityARKitSceneのシーンが追加されます.Player Setting…を押してインスペクタータグにPlayerSettingsを表示させます.

f:id:k3174r0:20170930045505p:plain

インスペクタータブでPlayerSettings>Camera Usage Discriptionの項目に何かしら説明分を記入します.アプリの初回起動時にカメラ使用許可のメニューに表示される説明文です.ここが空白だと動かないです.

f:id:k3174r0:20170930050156p:plain

したらBuild and Runです.しばらくすると,Xcodeが開かれます.

Xcode上で,プロジェクトファイルの最上のUnity-iPhoneをクリックしてGeneralで幾つか変更します.Identity>Bundle Identiferを固有の名称に変更.Signing>Teamで自分のプロファイルを指定.(ここの設定は,いままでXcodeiOSアプリを制作したことがない人は検索して自分で設定してください.)Generic iOS Deviceクリックしてを接続したiOSバイスを指定します.あとはプレイボタン▶を押せば実機上にインストールされます.

f:id:k3174r0:20170930052301p:plain

タップした場所に灰色の箱が表示されたと思います.箱から自分が表示したいモデルに変えてみます.

ヒエラルキータブでHitCubeParent>HitCubeをクリックしてインスペクタータブでチェックを外して無効化します.自分が表示したいモデルをゲームオブジェクトにして.HitCubeParentの下に配置します.

f:id:k3174r0:20170930053822p:plain

追加したオブジェクトにAdd ComponentからUnityARnHitTestExampleスクリプトを追加します.

f:id:k3174r0:20170930054506p:plain

UnityARnHitTestExampleの設定項目Hit TransformにHitCubeParentを指定してあげます.

f:id:k3174r0:20170930054806p:plain

これで同じようにBuild and RunでXcodeからビルドして実機で確認してみましょう.モデルによっては,シーンでカメラとオブジェクトが同じ向きに配置されるので180度回転させてあげるとか調整をしてあげましょう.

 

参考までに私が試したモノ↓

 

おわりに

説明結構雑になってしまいましたすいません.この記事では一切ソースのスクリプト書き換えたりしなかったですが,実際は読んでいろいろ書いたりして試してみるといろいろおもしろいことが思いつくと思います.

試したのは平面検出・オブジェクト表示だけなので他にも色々できそうです.表示するモデルにRigidbody追加して落としたり転がしたりするだけでも面白そうです.

まだ全然わからないですが,私的にはARKitのほうがトラッキングが良かったりiPhone/iPadは数があるのでアプリを開発する上でいろいろ有利かなと思います.でもイジイジするのだとARCoreのが楽しい感じでした.あとARCoreのほうが名前がカッコイイ.

 

ポジティブに

‪金土日いろいろ心が疲れることあったけど昨日はまあまあ効率よく過ごしてゲーセンいってまわりが外国人とカップルの中ボッチでufoキャッチャーやってすごいお金使ってしまって恥ずかしいしイライラするしもう怒って帰ろうと思って店出たけどもっかい戻って頑張って取れてすごい嬉しかったです。欲しいキーホルダーだったのでよかったです。‬

いきのびました

一年なんだかんだ生きてました

今思えば去年とかその前はなんかいろいろとダメだったけど.ダメなのは変わっていないけどそれを認知するようになって人と話すようになったらリハビリになったかなと.

前はもう自殺しようと思ってたり血液検査とかさせられたけどなんだかな意味なかったな.

あと,他人のそのとき一番つらいことは自分の一番つらいことと比較してはいけない.

来年どうしよう…

いちばんふるい

死にたいと思った記憶。多分小学校入学かそれよりも前、父親が半分無理矢理な形で地元のボーイスカウトに自分を入団させたんだけど。野外の活動は全然好きじゃないんだけど細かい作業とかもあって好きでも嫌いでもなくやってた。ちょっとしたら日本ジャンボラリー大会が富士かどっかであってそれに参加した(でも今調べたらジャンボラリーへの参加資格はボーイ隊かベンチャー隊で当時自分はビーバー隊かカブ隊だよだから違う大会)。でそこにいくのにフリーマーケットで買ってもらったフワフワした財布にお小遣いを入れて持って行った。大会では各支部の隊が出店とかやっててご飯買ったりとかくじ引きとかできた。そんでその終盤で財布を落とした。終盤だったんで特に買うものとかもなくて財布には数百円しか入ってなかったと思う。たしか五十円玉と十円玉だけ。帰って、財布どうした?って言われて落としたっぽいと言ったら死ぬほど怒られた。そんで子供ながらもう死にたいと思った。なんでそんなに怒るの?

これを書いてて思い出したけど、これと同時期かもっと古い記憶として忘れてたのを思い出した。ハッピーセットのおまけのイルカのぬいぐるみを気に入っていつも持ってた。兄弟が大学病院に行くとかでおれも連れて行かれることになったんだけど、家を出るときにポッケにあったイルカのぬいぐるみが駅までの道でなくなってることに気づいた。診察キャンセルして道とかを探しまくったけど見つからずに1日終わった。次の日に夕飯を待ってるときに喪失感から全てどうでもよくなってテーブルに置いてあった鍋の肉のパックの発泡スチロールを食べた。したら母親が救急車呼んでめっちゃ怒られてもっと死にたくなった。4歳くらいだったかな。

特にオチもない話。死にたいと思った出来事の中で一番古い記憶の話。

土器はじめました

f:id:k3174r0:20170211053016j:plain

DOKI

はじめに縄文土器みたいにニョロニョロを重ねあげて丸い器を作りました。

f:id:k3174r0:20170211053242j:plain

表面の荒削り感。郷土資料館とかの土器っぽい感じもするが、もっとスムージングすればよかったと思う。作ってる過程の写真も欲しかったけど、作り途中の手ではカメラもスマホもPCも触れない。

f:id:k3174r0:20170211053532j:plain

こっちは自信作。四角い器に挑戦。一作目の反省を踏まえて試行錯誤を重ねた。こっちはまだ乾燥が進んでいない。

f:id:k3174r0:20170211053836j:plain

しっかり表面のスムージングも。指に水をつけてスーッとするとキレイになる。

 

一週間弱乾燥させ、次は焼成。オーブンが温度調整できるタイプではないのでハックする必要がある。ちょうどいいので、粘土を焼いたあとはハンダリフロー炉として使えるようにしてみたい。

 

思い描く形をそのまま造形することの難しさと、楽しさを思い出した気がする。粘土ってこねてるだけで楽しくなってニヤニヤしてしまうので、心がしんどくなってしまったときは一度全て忘れて粘土を触るのもいい。ずっと土器を作ってみたいといっていたので、ついに手を出すことができた。まだ粘土は余ってるので次は何を作ろう?

 

たまにはこういうのもいいな。

時間

溶けてます。溶かしてます。

あ、、、、1月ってもう終わってたのね。

しょうらいのゆめ

まだちいさかったころ、テレビでやってた「つくってあそぼ」が好きで工作をいっぱいするようになった。
思い出してみれば、物心ついて一番はじめの将来の夢みたいなのはワクワクさんになることだった。
でもわくわくさんになるのも、ワクワクさんであり続けることも、簡単じゃないんだなあと思う。
ワクワクさんありがとう。