やる事
ARCoreとHoloKitを利用して光学シースルー体験。
AR_FukuokaでARCoreを触らせていただいたので、自分が手順作った感じで記事にする。
(手順作ったのは主催者なので自分ではないです)
主催者様に感謝です!
ARとは
MR(現実世界と仮想世界の混ぜ合わせる技術)の内、現実成分が多い技術。
仮想成分が多いものはAV(Augumented Virtuality)。
HoloKit
自己位置推定機能を持つスマートフォンを利用して光学シースルーARを実現するキット。
Tango,ARCore,ARKitに対応。
鏡とハーフミラーを利用し、スマートフォンのディスプレイを透過させて表示する。
環境
- Unity 2017.02
早速始める
HoloKit SDK for Androidをダウンロードして解凍。
Unityを起動し、解凍したHoloKit SDKを開く。
「Switch to Android Now?」と聞かれるので"Switch to Android"を選択。
アセットストアから3DModelをimport。今回利用するのは、
Earth Planet With Atmospheric Scattering
Asssets->Earth->Prefab内のEarthをHieralchyにドラッグ&ドロップで追加する。
位置とサイズを調整
position: X:0, Y:0, Z:1
scale: X:0.01, Y:0.01, Z:0.01
回転とかはInspectorのy軸で調整。回転を-60000にしようとしたら最大が-1000だった。
ビルド設定
File->Build Settings->Player SettingsでPlayerのinspectorを開き、下記設定を行う。
- Other Settings
- Package Name: jp.miyating.holokits
- Icon: 自分のアイコン
Assets -> HoloKit SDK -> Starter -> HoloKitCameraRigをHieralchyにドラッグ&ドロップ
- HoloKitCameraRig
- UnityAR Camera Managerのチェックを外す
- Component追加 - Tracked Pose Driver
- Pose Source: Clor Camera
- Update Type: Before Render
- Component追加 - Session Component
- Ar Session Config
- First Person Camera
- HoloKitCameraRig配下のVideoSeeThroughCamera
- Unity AR Camera Near Far: チェックを外す
- Unity AR Video: チェックを外す
Assets -> HoloKit SDK -> Scripts -> HoloKitCalibration.csを修正
- LoadDefaultCaliblation
- loadSamsungS8Calibration()が呼ばれるように変更。
- loadSamsungS8Calibration
- cameraRig.PhoneScreenHeight = 0.130f;
- cameraRig.PhoneScreenWidth = 0.064f;
Build and Run!!