HoloLens 2 とのいろいろ
はい、毎日HL2と戯れています。
わざわざ1つの記事にするほどのことじゃないけど勉強になったことが溜まってきたので備忘録です。
目次
- 目次
- MRTK2.5.0で解決?UIRaycastCameraの失踪
- Scene System を使ってみよう
- NewtonesoftとHololens 2
- 全天球の大きさってみんなどうしてるの?
- ログってここにあったんだ!
- おわりに
ざっくりとこんな内容を書きます。
なお、非常に雑です。
MRTK2.5.0で解決?UIRaycastCameraの失踪
めちゃくちゃ苦しめられたUIRaycastCameraのお話。
どうやって苦しめられたかというと、Prefab化しているCanvasのパーツにClick動作をつけてると、これがまぁ押せない。
Scene移動でPrefab化しているやつらはスポーン(言ってみたかった)されるんだけど、CanvasのEventCameraがMissingになってるっぽいんですよ。
HL2で実機確認したときだけな!
悲しみ。
本題に戻りますが、問題は以下です。
- シーン移動して
- UIRaycastCameraが再生成されたら
- CanvasのEventCameraがMissingする
この問題、かみ砕きまくるとシーンごとにProfileを持っていて、Profileを削除->生成したらおかしくなるよね?ってことみたいです。
やっぱり困ってた人がいたみたいで、MRTK2.5.0に対して修正が入っているようです。
もうプレリリースも出てきてますし、そろそろリリースされそうな2.5.0で解決しているといいなぁと思っています。
類件も上がっているようですが、こちらは動きがなく。
スクリーンショットで上がっているシーンはSceneSystemのデモにあったと思うので、そちらで動かせば問題ないはず。
※そもそもUIRaycastって?
EventSystem - what is UIRaycastCamera? · Issue #1442 · microsoft/MixedRealityToolkit-Unity · GitHub
日本語での解説もあるんだけど、これが好きです。
Scene System を使ってみよう
前のUIRaycast繋がりなのですが、MRTKにはProfileを1つだけにしてシーン遷移できるScene Systemというものがあります。
Profileの削除・生成が嫌なら、しなければいい。
そんな感じですね。
もうたくさんシーンがあって今更移行なんて出来ないよ!
なんて心配もないくらい、とっても簡単なScene System.
絶対大丈夫、私が言うから誰でもできる。
そして方法については、takabrz1@MRTKV2とAzure Spatial Anchorsと格闘中 (@takabrz1) | Twitter さんが懇切丁寧に書いてくれています。
www.slideshare.net
追記するとすれば、私は自前でDefaultにあたるSceneを作成したので、その時に以下のWarningが出ました。
The active profile of the instance in your manager scene is different from the profile that loaded your scene. This is not recommended.
Active Profileが違うよ、というメッセージの通りです。
ProfileでSceneSystemを有効にするとDefaultManagerSceneが生成されますが、自前で作っていたSceneもいたせいですね。
Scene Systemの設定からManager Scene Settingsのチェックを外して、Hierarchy上からもDefaultManagerSceneのシーンを消せば解決します。
こんな方法で、UIRaycastCameraの件を解決させました。
NewtonesoftとHololens 2
JSON。
みんな大好き。じぇいそん。
シリアライズ、デシリアライズが面倒でライブラリも各言語ありますが、NewtonesoftはHL2じゃ使えないんだって!
ちなみに、HL1は使えてたんだけど…っていうのを見ました。
早くHL2でも使えるようになればいいな。
Newtonesoftが使えないのは分かった。じゃあどうしたらいいんだ?
その答えは、UnityのJsonUtilityを使いましょう。らしいです。
ちなみに、これはMRTKが悪いからとかではなくて、IL2CPPとかなんか私の理解の至っていない部分の問題みたいです。
~追加情報~
Newtonsoft.Json はこちらのサイトなどを参考にしたらいけると思います!https://t.co/5JFnyUkBAe
— 広務(Hiromu) (@hi_rom_) 2020年9月29日
「Assets フォルダに以下の内容の link.xml を追加します。」この部分が重要です。
いつもHololens関連で助けて頂いている広務さんから情報が!!
本当にありがとうございます!
私のプロジェクトに入っていたのはAssetStoreからの古いバージョンのようで、手順に沿えば使えることがわかりました!
いつも本当に助かってます(-人-)感謝
全天球の大きさってみんなどうしてるの?
どうしてるの!?
そもそもMRで全天球使ったりしないかもだけど。
Oculus Questも2が出てきて、コードレスで自由なxRができるじゃないですか。
全天球のサイズを5とかにしてると、普通に歩いて出ちゃうんだよね。
でも100だと映してる映像みえなくなっちゃう(そんなことある?)
みんなどうしてるのかなーって。
答えのない問いかけです。
なお、私は50にしてる。
ログってここにあったんだ!
ここ最近一番の発見。
HLの実機のログの場所!
いや、そんなの知ってて当たり前だしwww
となるとは思うんですけどね。。。
これ本当に私的には奇跡で、こいつのおかげで問題も解決出来たくらいなの、、、ありがとう。。。
ログはデバイスポータルから引っ張れます。
System > File explorer > LocalAppData > 見たいアプリ > TempState
もちのろんですが、ストアからインストールしたアプリは見れません。
おわりに
気付いたら100%になってた!(スクショはその前にした)