こちらの記事を見てやりたくなりました。
jyukoさんも以前やっていました。
トライ&エラーしてたので、ぐちゃぐちゃ記事になりました。
そしてあきらめる。
環境
Requirements:
- Unity v2017.4+
- Apple Xcode 10.0+ with latest iOS SDK that contains ARKit Framework
- Apple iOS device that supports ARKit (iPhone 6S or later, iPad (2017) or later)
- Apple iOS 12+ installed on device
だそうです。https://bitbucket.org/Unity-Technologies/unity-arkit-plugin/src/default/より
ARkit2
ここからでいいのかな?
と思ったら下のほうに「2019/6/3の時点で非推奨!ARFoundationを使え!」って書いてありました。
ARFoundationはUnityのパッケージマネージャーから入れるやつですね。
ARkit3も入っているらしい。でもios13を入れられるのはappleにお金払ってる人だけだから私は試すことはできないのか。
せっかくなのでAR Foundation使ってみます。
ARkitSDKについて理解するのに1時間かかった・・・
そしてXcodeを頑張ってインストール。久しぶりだ
そしてこのタイミングでiMacがまた劇遅くんになった。
3Dデータを取る
マーカーにする物体のデータを取るアプリをビルドしないといけない。
ここのARKit ScannerプロジェクトをXcodeでビルドしてもいいし、
UnitySDKのExampleに入っているUnityObjectScannerシーンをビルドしてもいい。
どちらにせよXcodeは必要なのか。
ARKit Scannerのほうがやりやすいらしいです。
ビルド。
点が出てくる。ボックスの中に入れる。
Scanを押したら6つの面を全て埋めていくように舐め回す。
そのあとusdzモデルをLoadして表示できるらしい。
ただ表示したいだけならもうこれで良いじゃん。
わざわざusdzファイル作ってロードしようとしたけど、なぜかロードしてくれなかった。ファイルを選んでもなんのアクションもない。
USDZの作り方はこちら
Vectary×GoogleSiteで超簡単マーカー無しWebAR!!(iosのみ) - トマシープが学ぶ
Saveでdropboxとかにに「.arobject」拡張子のデータを保存してPCに送る。
Unityでデータをセット
ARFoundation準備
ARFoundationとArkitPluginを入れました。
ヒエラルキー右クリック>Create>XR>ARSession OriginとARSessionを入れます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Xcodeが11.0betaじゃない人は最新のARパッケージを入れるとエラーでビルドできません。
ARkit3が入っていないバージョンのをどちらも入れたほうがいいかも。
詳しくは下の方orコメント欄
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
アイコン出た。MainCameraは消す
.arobject
.arobjectを入れました。写真付きなんだ。
Reference Object Library
これをセットするためのLibraryを作らないといけない。参考記事では"Create" > "UnityARKitPlugin" > "ARReferenceObjectsSetAsset"でできるらしいけど、ARFoundationだとない。
代わりに
Projectで右クリック>Create>XR>Reference Object Libraryがあった。これでいいのか
それっぽい。
セットできた。
UnityARCameraManagerのDetection Objectsなんてない
参考記事ではUnityARCameraManagerオブジェクトのUnityARCameraManagerのDetection ObjectsにLibrary的な奴をセットしていたけど、そんなものはない。
しなくていっぽい
表示する仮想物体の設定
参考記事では空のオブジェクトにGenerateObjectAnchor.csを付けて、Libraryと表示したいprefabをセットしていました。
ただそんなものはない。
AR Tracked Object Managerがそれっぽい。
これをARSessionOriginにつけた。
なぜならARTrackedObjectManagerをつけるともれなくAR SessionOriginが自動でついてくるから。それなら最初からついてるAR SessionOriginオブジェクト?につけようと思った。あってるかは知らない。
これにLibraryと表示したい仮想物体のプレハブをセットした。
追記
ArFoundationの公式サンプルの中にObjectTrackingあった。
開いたらシーンの構成同じだった。天才か?
強いて言えば、ARSessionにSetTargerFramerateがついていたぐらい。
XcodeBuild(失敗)
UnityでビルドしてXcodeでビルドしたらエラーで来てできなかった。
undefined symbol:_OBJC_CLASS_$_ARCOllaborateData
なんか設定間違ってるのんなだろうな。雰囲気でやってるから
コメントで教えてもらいました。
Arkit3の機能がXcodeでUndefinedされているそうです。確かによく見るとARBodyAnchorとかARkit3の機能ですね。
PackageManagerでArkit3が入っていないバージョンのARFoundationとARKitXRPluginを入れると良いかもです。
もしくはサンプルを2.1にしたらよいそうです。サンプルはUnity2019.1以降って書いてました。
おまけ
タッチすると喋るぬいぐるみ(ヤドン)。#ヤドン #ARKit #AR #ぬいぐるみ pic.twitter.com/rbYHpauNkC
— 北村愛実 (@tasonco_company) June 25, 2019
これどうやってるんだろう?
自分用メモ:ARkit_Obj,ARfoundation-sample-master (iMac)2018.3.8f1