トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

iPad用ARコンテンツの画面UIをHololens2用に変更したかった【MRTK2.3】

ビルドとかうまくいかなくて、いろいろうまくいってないけどいったん公開・・・

 

iPad用にUnityで作ったARコンテンツ(ARFoundation使用)をHololens2に移植するとしましょう。

もともとARとして出てた空間UIはそんなに変わらないとして、普通の画面UI(アプリ最初のスタート画面)や、マーカー読み込み画面、AR表示時に画面に出てた説明UIをどうやって移植するか・・・どういうデザインにするか・・・

uGUI移植

とりあえずデザインとか何も考えず、uGUIをHololens2で入力・表示できるようにする。

私の場合はARFoundationで作っている。

 Unity2018.4.17f1

MRTKセットアップ

基本的にはこちら

bibinbaleo.hatenablog.com

MRTK.Foundationの2.3を入れた。

 

 

上のメニューのMixedRealityToolkit>Add to Scene Configureを押す

f:id:bibinbaleo:20200401135159p:plain

これでシーンにMixedReality~が現れる

f:id:bibinbaleo:20200403095116p:plain

Canvas設定

 Canvasに自動で「Concert to MRTK Canvas」というボタンがつくのでそれを押す。

f:id:bibinbaleo:20200403094240p:plain

Add NearUnteractionTouchableUnityUIも押す。Holo2で手で直接押すときに使うんじゃないかなー?

f:id:bibinbaleo:20200403094237p:plain

付く。Holo1のときはポインターだったけど、Holo2は直接押せるのでTouchにしてみた。

f:id:bibinbaleo:20200403094235p:plain

ちなみに「Near Interaction Touchable Unity UIがアタッチされたCanvasの手前にあるボタンはタッチでは反応しなくなる」そうです。私もタッチできないけどこれのせいかな

torikasyu.com

 

 

そしてcanvasの位置と大きさをずらす。PosZを1とか2mとかにする。実機で見て調整しないといい距離が分からない。

f:id:bibinbaleo:20200403094254p:plain

Scaleもめっちゃ小さくする。WidthとHeightによる。iPadの画面の大きさのままなのでここの縦横比とか゚大きさもHolo用に調整したいなー

EventSystem消す

MRTK以外のEventSystemがシーンにあると怒られるので消したり非アクティブにする。

f:id:bibinbaleo:20200403111942p:plain

ARCameraを非アクティブにする

ARFoundationで使ってたと思われるARCameraを非アクティブにした。

しなくてもいいかも・・・

f:id:bibinbaleo:20200403120009p:plain

キーボード表示

bibinbaleo.hatenablog.com

 

エディタで確かめる

UnityEditorでゲーム実行したらある程度シミュレーションできる。

f:id:bibinbaleo:20200403110754p:plain

操作はこちらが詳しい

qiita.com

設定を変えるときはMixedRealityのInput>Input Data ProvidersでCloneして変える。

f:id:bibinbaleo:20200403111004p:plain

 

f:id:bibinbaleo:20200403110756p:plain

f:id:bibinbaleo:20200403112728p:plain

タップ(UI選択)は左クリック。

タッチはShiftを押しながらマウスホイール前後でタッチできるそうです!

 

反応しないことがある。

「Near Interaction Touchable Unity UI」をできる限り消したら、反応するときも出てきた。反応しないこともある・・・

法則が分からない

エラー

動くけどエラーが出てる

f:id:bibinbaleo:20200403112546p:plain

NotImplementedException: The method or operation is not implemented.
System.Runtime.InteropServices.Marshal.GetHRForLastWin32Error () (at <e1319b7195c343e79b385cd3aa43f5dc>:0)
WinRT.Mono+ThreadContext..cctor () (at <35663fb70f72449eaca170aea6f2c8b5>:0)
Rethrow as TypeInitializationException: The type initializer for 'ThreadContext' threw an exception.
WinRT.Delegate+InitialReference..ctor (System.Guid iid, System.IntPtr invoke, System.Object invoker) (at <35663fb70f72449eaca170aea6f2c8b5>:0)

ビルドエラー

f:id:bibinbaleo:20200403113238p:plain

UWPビルドをしようとするとエラーがいっぱい出てできない

Assets\MixedRealityToolkit.Providers\WindowsMixedReality\Shared\WindowsMixedRealityReprojectionUpdater.cs(8,17): error CS0234: The type or namespace name 'Windows' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)

Mixed Reality Toolkit V2.2.0 の新しいCamera SystemおよびiOS/Android対応について - Qiita

ARFoundationとMRTK

最近ARfoundationがMRTKに対応したとかしてないとか・・・

qiita.com

f:id:bibinbaleo:20200403095937p:plain

blogs.unity3d.com

よくわからない・・・Unity2019.3+MRTK2.3だといいのか?

2018LTSだと何を使ってHololens開発ができるのか?主語がなくない???

ARFoundationで何ができるんだろう?マーカー読んだり?

WindowsXRPluginとかXRManagementってなんだ????

 

2.2のときはUnityARというのがあったけど、2.3だとない。

f:id:bibinbaleo:20200403144025p:plain

 

 

デザイン事例

PORTAL

iPad Pro用に作ったARアプリをnrealというARGlassに移植する際の話」ということでまさに!UIのことはほとんどないけど神資料。

www.slideshare.net

ここでメモしている↓

XRkaigi2日目メモ - トマシープが学ぶ

AR City in Kobe

神戸の街づくりをARでできるもの。

3d.mirai-media.net

iPad版とMagicLeap版両方見たけど、iPad版のUIよく覚えてないなー。

f:id:bibinbaleo:20200403160946p:plain

AR City in Kobe - ARクラウド技術でみんなで創る2030年の神戸

より引用

 画面右から物を選べるのか(23秒当たり)

 

MagicLeapではメニュー画面は空間に浮かんで、コントローラーのポインターで選択する方式だった。ポインター当てたら大きさが少し変化したり、くるくるしたり、インタラクションがすごく入っててすごくよかった(語彙力)