ピンクの警報発令中

多分VR転職しました。関連する技術系の話と、アイドルの話をします。技術の話、めちゃゆるい。

XR創作大賞のために書いた理想

私には推しがいる。
推しがいるけど、いない。
私の好きな推しは、もう誰か一人のものになってしまい、私たちオタクの前には姿をあらわさなくなってしまった。

私の推しが私の推しとして最後の活動をする少し前に、コンタクトレンズ型のカメラが発売された。
理屈はよく分からないけど、オプションでチョーカー型のカメラもあれば360度の映像を残せるらしい。
私は未来のオタ活資金の全てを注ぎ込み、最後のライブにそのカメラを装着して行った。
もちろん、本来ならカメラなどNGだが、柔軟に異文化を取り込む運営だったので、皆思い思いに推しとの思い出を残していた。

私はその映像を、飽きることなく毎晩見る。
少しだけ軽量になったヘッドマウントディスプレイと、臨場感を感じ取れるヘッドホン。
まだ一式を頭にのせれば重いのだけど、細かなビーズの入った人をダメにするクッションに埋もれれば少しは気にならない。
コンタクトレンズで撮られた映像は、流石に私の視点だなと言う感じで、私の見たい場所をピタリと抑えている。
そうそう、この時こうだったな。
あ、実はこの衣装ってこんな作りなのか。
この煽りは本当に盛り上がったなぁ。
静かにライブに身を沈め2時間。
ライブ終わりの喪失感もあの時のまま。

最後のライブの映像が商品化されたのは、ちょうどリアルのライブがあってから1年後だった。
普通のブルーレイもあるけど、特殊なグラスで見る追加パッケージもあるらしい。
「あなただけのライブを作る」
なんだそれ。
もう使われなくなってしまったオタク資金から、機材丸ごと購入した。

届いたグラスはMRグラスで、到底没入は出来そうになかった。
なんだ、またアイスの蓋の上で踊らせるタイプか、なんて。
グラスをかけて、初期設定。
データは元々入ってるらしかった。損失した時のためのデータ自体は同封されてたけど、すぐには使わないだろう。
真っ暗なテレビ画面を向いて設定を完了、データ 再生。

『こんにちは!ライブ映像購入ありがとうね!』
推しが、等身大の推しが、私の目の前に現れた。
『ちょっとここ狭いな。もう少し下がれる?』
ソファに座ってた私は慌てて立ち上がりソファの後ろに立つ。
『ありがとっ。それじゃ、う〜ん。ここのテーブル乗っちゃうけど怒んないでね』
よっと、という感じに推しがテーブルに乗った。
テーブルの上のリモコンやマグカップやらは、サイズで無視されてるようだ。
私にしか見えてない推しの足元でグラフィックをチラチラさせている原因になっている。
そんなことはお構い無しに、推しから『じゃ、ライブ始めようか』と言う提案と一緒に歌の一覧表が出てきた。
ためしにスタンダードな1曲を選ぶ。
推しがお決まりの煽りをすると、他のメンバーもわらわらと揃った。
しかしテーブルは狭い。
というか、部屋が狭い!
窮屈に踊る推しを1曲分、黙ってみる。
ずっと推しから爆レスが。
やめて私が死ぬ。
曲が終わると『次はペンラ持ってもっとコールしてよね』と怒られた。
グラスの設定をした時にテレビの前に置いておいたセンサーの赤いランプが目に入った。
私はグラスの電源を切り、深く息を吐いた。

「と、言う体験をして以来開けてない」
「何それ、俺も見たい」
オタクの友人に例の「あなただけのライブ」の話をすると興味津々だった。
「なんか広い場所で見たいんだよね。まだ買えるから買って一緒に見ようよ、マルチも可能だから」
「買うわ。あとは広いとこか〜。ラブホでも行く?」
「言うほど広くないしシネ」
結局、物が揃ったら夜遅くに公園で、という話に落ち着いた。

もう日の落ちた人気のない公園に、バッテリーから電力供給されたセンサーを設置する。
何気にキャンプギアが活用されてる。
友人は初期設定からやっているようで、ぎこちない手つきで空中を押しまくっている。
「あ、私のID教えるから、それ終わったら同期してよ」
LINEからIDを送信して、入室待ち。
私がスタートをすれば、相手も自動的に始まる仕組みらしい。
「おっけー、はじめよ」
「りょーかい、じゃあヘッドホンしちゃうね」
ノイキャンの効いたヘッドホンをすると無音の暗闇が目の前にあり、スタートボタンだけが煌々としていた。
3.2.1
『もう、久しぶりじゃない?あ、でも今日は友達もいるんだ〜!』
『キミは、私を推してくれてるんだ。ありがとう〜』
私の推しと、友人の推しが並んでいる。
同期ってこういうことなの。
つーか、暗いところだとめちゃくちゃ発色イイし、前回と衣装違うし!
『今日は広いね!あ、ペンラも持ってるんだ!いいじゃん!』
『ねね、今日はゆっくり見られるのかな?私達から提案なんだけど』
バラバラっとアコーディオン式のメニューが表示される。
前回と違って、そこには年とライブ名があった。
私が友人の方を見ると、彼は「えらべ」のようなジェスチャーをしたので、あの最後のライブを選択した。

私が何度も何十回も見たライブと同じセットリストで、全く同じMCの内容で、でも永久に続く爆レスとそんな間近には見たこと無かった輝くような笑顔を1時間半ほど浴びて(着替えの時間やアンコールはスキップ可能だった)、私も彼も文字通り燃え尽きてその場にへたり混んだ。
「やばすぎなんだが」
「わかりみ」
単語でぽつりぽつりと語り、いそいそとセンサーを片付けてから反省会よろしくファミレスに行った。
現地に行ったような錯覚に陥り、1年ぶりの感覚に心地よい疲弊を覚えながら2人でパフェを力なく口に運ぶ。
「あれはなに?撮り直してんの」
「わからん…でもあのライブの時と同じだなって動きはあったよね」
「あんなに見つめられるのとかどうやってライブ中に撮んのよ…意味わかんないだろ」
「それ。無理すぎて何度か視線外した。そっちの推し見たら、そこからも爆レス来てた」
「だよな?全員から爆レスされるとか無いだろ」
「そんなんオタクが死ぬから本来禁止事項よ」
どんな技術であんなふうに見られるのかをお互いに推測し合うも全く分からないまま、アイスはすっかり溶けてしまった。
「どうやってんのかは知らんけどさ、あんなの見ちゃったら新しいライブ見たくならね?」
「あ~……だからさ、自分のセトリ作れんじゃないの……知らんけど。衣装選択も出来るみたいだし。なんか逆にしんどい」
もう、この先の推しを見ることは出来ないから、それを痛いくらいに実感させられる。
「まあまあ。だから全部置いてってくれたんでしょ」
「ポジティブめ。私は新曲も見たいし新しいソロコンも舞台だって見たかったんだ」
あのライブの時以来、久しぶりに涙が出た。

【一夜限りの再結成!新曲も発表】
ネットニュースで話題になってから、ようやくことの次第を理解する。
推しが帰ってくる。
一日だけだけど。
もうあれから随分月日は流れて、配信ライブと現地ライブも半々くらいになってきていた。
配信ライブと言っても、ナントカの絆のコックピットみたいなものに詰め込まれて見る、4DXプラスVRなやつで、その施設に赴く必要がある。
会場には100もない最前列が、その機材の数だけ体験出来る。
私は見るライブも無かったので体験したことが無かったのだが、もう現地に行く体力に自信がなかったから近場の配信会場でライブを見ることにした。
話にあったように、コックピットみたいなのに詰め込まれると、線がプラプラと繋がった手袋をはめさせられた。
それほど蒸れることも無く、ペンラの握りも悪くない。
水泳ゴーグルみたいなやつを付けると暗闇の中に、いつかみたいにスタートボタンが煌めいていた。
それを見つめると、周りの景色がぶわっと変わり、VRは見慣れていたつもりだけどついつい周囲を見回してしまった。
ライブ前の喧騒、少しヒンヤリした空気、どこからか始まるコールを背に、私は最前列に立っていた。

ライブは自身が遠隔で見ていることを忘れるくらいにリアルだった。
ペンラが隣の人に当たりそうになり、でも当たらず空を切る腕に「あ、そうだ」と現実に戻る。
それくらいに没入出来た。
私はライブに行っていた。
極めつけはお見送りで『来てくれてありがとう』と手をギュッと握られた事だった。
何度も握手会を経験していたが、華奢な手のひら、握られた時の指の細さと強さにグローブの存在を忘れた。
頬に出る特徴的なえくぼが魅力的な笑顔を目に焼き付けて、ゴーグルを外した後少しだけ泣いた。

とてもいい時代になったと思う。
どこにいても、臨場感そのままに色々な体験ができるようになった。
でもやはり求めてしまう"次の予定"
こればかりはどうにもならない。
オタクであるが為の業であり罪だ。

リングフィット中間報告(30日目)

どうもこんばんよう!私です。
リングフィットアドベンチャーのプレイ日数が30日になりました!
一応、アドベンチャーのクリアまでは頑張りたいと思っているので、ここで中間報告を記しておこうと思います。

f:id:samy_hrin:20201105000337j:plain

プレイ環境

まずはプレイ環境についてですが、何時にやってるとか、毎日やってることを文字にするだけです。
ゲームだけど、自宅でやるためにどんな形をとるのが一番よくて、今の形になっていったのかみたいな。

プレイ時間帯

運動するには人間の体的に適切な時間があるようですが、そんなのは無視ですね。はい。
平日は大体帰宅後の23:00~1:00の間にやることがほとんどです。
休日は18:00~22:00までの間に行うことが多いです。
たまに食事後すぐとかにプレイして腹筋ガードがまともに出来ないことがあったので、食後は時間をおくか、食べる前にやるように少し気を付けるようになりました。
とはいえ、帰宅後はお腹ペコペコ、このままやると筋肉が分解されてしまうので、軽く食べて(リングフィットで教えてもらえます)プレイ後がっつり食べます。
なんというか、どうしても時間的にこうするしかなくて、効果が無に帰している気がしてなりません。
朝起き抜けでやるにしても、寝る前のプレイにしても、女性は胸をホールドできる下着をつけた方がいいです(タイミングでたまにしてないけど良くないのめっちゃ実感する)

環境

一度ガッツリ、リングコンを天井にぶつけました。
まだ手出ししていませんが、模様替えしようかと思っています。。。
それは置いといて。
一応、ヨガマットを敷いてプレイしています。
うちはベッドが配置されておらず、お布団敷いて寝ているのですが、敷布団の下にヨガマットが常設されていて、布団をたためばプレイフィールドになるって感じです。
朝起きたら布団はたたむので、帰ったらそのまま出来ますね。
ただ、ちょっと狭くて、例えば蝶番のポーズとかはリングコンが壁に当たらないように気を付ける必要があります。
自分が手を広げたスペース+リングコンの幅が必要なので。
狭いでしょ~。でも出来ますから。
あと、椅子を座ってリングコンを足に挟むやつあるんですけど、ベタっと座ってます。デスクチェアしかないのでね。。

プレイ履歴

9/27から始めたそうです。
11/4で30日、ちょっとサボっていますね。
毎日やろうということはないし、プレイ時の目標もないです。
「今日はここまでにしませんか?」と出たら、すぐ受け入れます。
1回のプレイで10~25分くらい、2,3のステージを進みます。
元気のある時はカスタムで足周りもやります。
サボる日は大体心がいつもに増して死んでる日で、金曜が多かったので金曜はお休みにすることにしました。
履歴を確認すると水木とサボった時が一度あり「ああ、この日はあれがあったね、思い出すだけでムカムカするね」という思い出Diaryの役割も果たしてますね。

運動強度:24
ワールド:10
レベル:78

直近、こんな感じです。

f:id:samy_hrin:20201105000653j:plain

f:id:samy_hrin:20201105000713j:plain

体の変化

プレイ前~直後

  • 冷房にめっぽう弱い。
  • 毎日どこか筋肉痛
  • ちょっと動いただけで汗だく、くちゃい汗が出ちゃう。
  • アドベンチャーの「スクワット」だけで滴り落ちる汗。
  • スタティックストレッチで片足立ち出来ない(前腿のストレッチ)
  • 「強い運動」
  • Mi体組成計先生「たんぱく質が不足しています」

2週間後~今

  • 冷房に強くなる。
  • 毎日どこか筋肉痛
  • 額にうっすらにじむ程度の汗、流れたりはしない。
  • スタティックストレッチで片足立ち出来る!(前腿のストレッチ)
  • 「適度な運動」
  • Mi体組成計先生「たんぱく質が不足しています」
  • 意識すれば良い姿勢を保っていられる。

汗に関しては、季節の変化もあるかもしれませんね。

外見と中身

体重も外見も、特に変化はないです。
30日だし、そんなに沢山ぷれいしてないしね。
体重に関して言えば増えたくらいだし。。。(ご飯の時間が悪いよね)
私は典型的な下半身デブってやつなんですね。
これは体の柔軟性に関係あって、やっぱり筋肉とかコチコチだと痩せにくいっぽいです。
整体で肩回りと背中がめっちゃ柔らかいといわれているだけあり、二の腕はタプタプの体積がちょっと減った気がします。
そんな気がしていたいだけかもしれませんが。。。

ただ、片足立ち種目が全然出来なかったのが、徐々に出来るようになってきています。
靴に小石が入っても、余裕で片足でいられるようになった!
立木のポーズも少しずつ片足でいられる時間が増えたし。
見えないところで少しずつ変化があるのかもしれないですね。

見つかった体の「不具合」

少しずつリングフィットに適応してきた体ですが、プレイしたことにより出来ないことが見つかりました。
足を前後に動かすような動きの「マウンテンクライマー」や「バタバタレッグ」が出来ないです。
やると左足の股関節から前腿にかけて「ピキッ」と痛みます、次の動きに移行出来ないくらい痛いです。
股関節のゆがみが原因と思われます。
とりあえず、リングフィット以外にストレッチもするようになりました。毎回じゃなく、気まぐれですけど。
仕事中左足だけ椅子にあげてその上にべたっと座っているの、すごくダメなんだと思います。
その座り方は癖だったのですが、やめました。

あと、不具合ではないですが、舟のポーズは無理です。
腹筋ZERO

リングフィットアドベンチャーというゲーム

ムキムキボスのドラゴとリングの掛け合いは「二人とも悪い奴じゃないんだけど脳筋なんだろうな」って感じがします。
音声は「女性ボイス」にしています。「グルグルアーム」がツボ。
最近敵を倒すために「複数の敵に対して攻撃が出来るもの」「攻撃力が高いもの」を選びがちなので、良くないなと思います。
敵との戦闘が長引くほどしんどいですから、楽しようとしてるんでしょうね。
とはいえ敵自体も強くなっているので、バランスはとれていると信じたいです。
私のズルは無駄なあがきだと。。。

ゲームとしては、結構難しいものもあります。
ジャンプのタイミグとか、ミニゲームとか。
アイテムの吸い込みなんかは走ってるのに集中しちゃうと見落としがちで、反射神経も問われる気がします。
ゲームに対しての衰えを感じますね。

これから

ひとまずまた30日後、60日目に中間報告したいなと思っています。
目標はゲームのクリア。
クリア出来たら周回する予定ですが、次の30日ではまだクリア出来ないと思います。
自身の体に対して「こうなりたい」はないんですが、1日少しでも運動する時間を作りたいというのがあるので、継続が大事ですね。
それではまた30回後に!(日では約束できない)

Hololens 2 シミュレーション時のハンド表示を変更したい

どうもこんばんよう、私です。

HandMenuについて悩んでいます。
というもの、HandMenuを表示した手でボタンを誤タッチしているような挙動があり、表示距離としては十分取っているし、そう見えるんですけど、何かなぁと。
それはまた機会があれば書きましょう。

今回は、そんなHandMenuに欠かせない手の話。
(間違いがあれば教えてください!!!)

UnityEditor上でプロジェクトを動かすと、ハンドって人差し指を立てた状態で表示されますよね。
これを別の表示にしたくないですか?

例えばパーとか。

環境

Unity 2019.4.11f1
MRTK2.5.0

動かしてみる

MRTKが入った状態のプロジェクトで手を表示すると、前述の通りに親指と人差し指が開いた状態で表示されます。
この形はOpenといいます。

f:id:samy_hrin:20201009181516p:plain

環境にExamplesが入っている場合、HandMenuExamplesのSceneを実行してみてください。

f:id:samy_hrin:20201009182111p:plain

手が…パーだ……!

パーの状態はFlatといいます。

なるほど、実は手の形を変えられるんですね、そうですよねー!

ハンド表示の変更

実際どうやって変更するのか、というところです。

設定は
MixedRealityToolkit > Input > Input Data Providers > Input Simulation Service
で変更することができます。

Profileを編集するので、まずはProfileのCloneをする必要があります。
詳細についてはガイドを付けておきます。

hololabinc.github.io

さて、Input Simulation Service を開いたものの、項目がめっちゃ多い。

スクショに収まらないくらい多い。
(そして目的のメニューはここには映ってない)

f:id:samy_hrin:20201009183155p:plain

なるほど、全然使いこなせちゃいないけど、これだけ色々とシミュレーションで使えるんだなぁということがわかります。

では、ハンドの設定はどこかというと、 Hand Gesture Settings にあります。

f:id:samy_hrin:20201009183836p:plain

設定 内容
Default Hand Gesture ハンド表示で操作なしの状態
Left Mouse Hand Gesture マウス左クリックでのハンドジェスチャ
Middle Mouse Hand Gesture マウスのスクロールくるくるクリックでのハンドジェスチャ
Right Mouse Hand Gesture マウスの右クリックでのハンドジェスチャ
Hand Gesture Animastion Speed ハンドジェスチャの動きの速さ。数値が大きいと早く、小さいと遅い
Hold Start Duration ホールドジェスチャの開始までの時間。Pinchで指が閉じたままなどがホールドされた状態
Navigation Start Threshold 掴んだオブジェクトを移動させるために必要な移動量

関連するドキュメントは以下です。

hololabinc.github.io

docs.microsoft.com

なるほど、ハンドジェスチャーが色々変えられることがわかりました。

None
f:id:samy_hrin:20201009200352p:plain

Flat
f:id:samy_hrin:20201009200424p:plain

Open
f:id:samy_hrin:20201009200746p:plain

Pinch
f:id:samy_hrin:20201009201127p:plain

Pinch Steady Wrist
f:id:samy_hrin:20201009200800p:plain

Poke
f:id:samy_hrin:20201009200813p:plain

Grab
f:id:samy_hrin:20201009200825p:plain

Thumbs Up
f:id:samy_hrin:20201009200843p:plain

Victory
f:id:samy_hrin:20201009200856p:plain

Open Steady Grab Point
f:id:samy_hrin:20201009200910p:plain

似たようなものもあるのですが、実際に見ると動きが微妙に違ったりします。

ところで、Defaultの設定でMiddleとRightのマウス操作がNoneになっていました。
今までマウスの左クリックでしか動かしていませんでしたが、3ボタンあるので3つのジェスチャーを割り当てることも出来ます。

ぐーちょきぱー、ゆびさし。
こんな感じ。

各Hand Jointに対しての処理なんかがある場合、OpenよりFlatの方が見やすいので、Editorでの動作確認が捗りそうですよね!

ということで、UnityEditor上で動作時にハンド表示を色々変えてみる話でした。

ところで、手をぐるぐる回していると、指先に天使の輪みたいなのが生まれて消えるんですが、あれはなんなんすかね。。。

HTKのInteractiveをMRTKに置き換える

どうもこんばんよう、私です。

HoloToolkitの時に実装されたプロジェクトをMRTKに直していたりします。

いきなり本題です。

HTKにClickとかFocusとか、色々とやってくれているInteractiveっていうクラスがいるんですけど。

MRTKにはいないですよね、名前そのままでは。

どうしたもんかなぁって、コードもろくに読めなかったのでとりあえずエラー吐くところコメントアウトしていたんですね。
それが多分、今年の7月くらい

今日、全然別件でMRTKでPointersのページを読んでいたんですよ。

microsoft.github.io

そしたら、びびびびびー!って。
これって、今までPointerのイベントが必要なGameObjectに「PointerHandler」を付けてたけど、その代わりじゃん?って。

f:id:samy_hrin:20201008222924p:plain

元々ObjectにはInteractiveを実装したScriptがアタッチされていたので、それをClickを契機に呼び出す、みたいなことをわざわざしてたんですよ。

それが全部いらなくなるのー!

//public class Test : Interactive
public class Test : MonoBehaviour, IMixedRealityFocusHandler, IMixedRealityPointerHandler
{

    //public override void OnFocusEnter()
    //{
    //    base.OnFocusEnter();
    //}
    public void OnFocusEnter(FocusEventData eventData)
    {
    }

    //public override void OnFocusExit()
    //{
    //    base.OnFocusExit();
    //}
    public void OnFocusExit(FocusEventData eventData)
    {
    }

    //public override void OnInputDown(InputEventData eventData)
    //{
    //    base.OnInputDown(eventData);
    //}
    public void OnPointerDown(MixedRealityPointerEventData eventData)
    {
    }

    public void OnPointerDragged(MixedRealityPointerEventData eventData)
    {
    }

    //public override void OnInputClicked(InputClickedEventData eventData)
    //{
    //    base.OnInputClicked(eventData);
    //}
    public void OnPointerUp(MixedRealityPointerEventData eventData)
    {
    }

    //public override void OnInputUp(InputEventData eventData)
    //{
    //    base.OnInputUp(eventData);
    //}
    public void OnPointerClicked(MixedRealityPointerEventData eventData)
    {
    }

}

いやはや、知識がないと見てもわからないってこの事かと思いました。

ちなみにこの件、ちゃんと移植ガイドにあります
見た気がするーって思いました。

docs.microsoft.com

microsoft.github.io

改めてドキュメントを読み返す良いきっかけかもしれません。

精進します。

※余談ですが、乃木坂46の「きっかけ」が良曲でいつも背中を押してくれます。

~追記~
これは私のパターンなので同じような人はいないと思うのですが、PointerHandlerをObjectにアタッチして、かつIMixedRealityFocusHandler, IMixedRealityPointerHandler の実装があるScriptもついてると、おわかりの通りに二重で入力が来ます。
どちらか一つにしましょう!(絶賛修正中^^)

MigrationとSceneSystemの仲の良さについて

私が遭遇した訳ではないのですが、Scene Systemを使用しているのでウォッチしているバグをメモしておきます。

MRTK2.4.0 > MRTK2.5.0にアップデートするときに、Migrationでフリーズして、Unityを閉じないとダメなやつ。
現象は私もPrefabのMissingでひっかかったときと同じですが、原因が異なっているようです。

最初の起票
github.com

MRTK2.5.1のマイルストーンに含まれたissu
github.com

github.com

私の手元ではScene Systemに関連してアップデートによるスタックは起こらなかったんですが。
起こらないのはそうなんですよ。
MigrationしたらDefault Manager Sceneごと消えたからね! (マジで何それ)

まだ2.5も公開されたばかりですし、私も自分の手順が絶対正とは言えず、ふわふわと色々試しているところなので、また何かあればメモっていきます。
でも、あんまりScene SystemとMigrationは仲良くないのかもですね。
これから仲良くなると思うよ。

~おまけ~
今ですね、Hololens2の実機動作でのパフォーマンス改善というか、ボトルネック探しというか、そういうのをやってたんですね。
「UnityのProfilerどこから開くんですか…?」から始まっている(Window > Analysisからです覚えました)のですけど、セットでUnity Profiler Markerも読み読みしました。

github.com

MRTKに関連してなかったけど、Hierarchyから時間かかってるとこみつかったので、Profilerもちゃんと見れるようにならなきゃですね。

MRTK2.4.0→2.5.0に更新しました!(躓いたところも書いたよ)

MRTK2.5.0リリースおめでとうございます!
待ってましたありがとうございます!

github.com

早速手元のプロジェクトを更新しました!
イェイイェイ♪^^

更新方法については、以下に記載のある通りです。

microsoft.github.io

これですんなり更新で…
すんなり………
( ^ω^)???

すんなりいきませんでした!!!!

踏み越えて、私の屍

更新時に陥った私のエラーについて残しておきます。

引っかかったのはここ

  1. Run the migration tool and run the tool on the Full Project to ensure that all of your code is updated to the latest. The migration window contains a number of different migration handlers, which must each be run on their own. This step involves:

移行ツールを使用するところですね。
Migration Handler Selectionで選択可能な項目は全部ツールをかけてあげないといけないのですが、全部進捗のプログレスバーが途中で止まって進まない状況に。
(^ω^;)???
よく見るとConsoleにエラーが出ているようでした。

ArgumentException: Could not load Prefab contents at path ~~~~

Prefabのコンテンツがロード出来ませんでした、とのこと。
ここでは記載しませんが、ちゃんとロードできなかったPrefabのパスは出ています。

このPrefabちゃんを見てあげればいいんだな!
フムフム…………

中に持ってるPrefabがMissingになってるわ( ´_ゝ`)

ということで、このPrefabは使用してなかったんですが、MissingだったScriptやらPrefabやらを戻してあげて、無事にMigrationが通りました!

解決の糸口

これはUnity歴まだ1年未満助けてな私の備忘録ですが、Migrationが止まっちゃったらUnityの操作がなんもできません。
Consoleの中身が見たいけどそれも出来ない。

でも、Consoleのログってテキストで開けます(みんな知ってる)
Consoleタブ > ハンバーガーボタン > Open Editor Log

f:id:samy_hrin:20201002223652p:plain

ログはサクラエディタで開きましたが、Logが追加されると通知が来て開き直しで新しいものが見れるので、これで問題個所のエラーログを見ることができました。

MRTK 2.5.0 ってどう?

更新に時間がかかったのでこれからー!!

でも、Active Profileの削除、生成によるUIRaycastCameraの不具合はよくなった気がします。

~追記~

Scene SystemのProfileの中身は消えちゃったので再設定しないとダメだし、なんならDafault Manager Sceneまでよみがえってきたよ。
焦るからマジで。
なお、同じ環境から枝分かれしたPJなのに、Migrationのエラーは出なかったなぁ。
なんだろうなぁ不思議。

HoloLens 2 とのいろいろ

はい、毎日HL2と戯れています。

わざわざ1つの記事にするほどのことじゃないけど勉強になったことが溜まってきたので備忘録です。

目次

ざっくりとこんな内容を書きます。
なお、非常に雑です。

MRTK2.5.0で解決?UIRaycastCameraの失踪

めちゃくちゃ苦しめられたUIRaycastCameraのお話。
どうやって苦しめられたかというと、Prefab化しているCanvasのパーツにClick動作をつけてると、これがまぁ押せない。
Scene移動でPrefab化しているやつらはスポーン(言ってみたかった)されるんだけど、CanvasのEventCameraがMissingになってるっぽいんですよ。
HL2で実機確認したときだけな!
悲しみ。

f:id:samy_hrin:20200929154605p:plain
Canvas

本題に戻りますが、問題は以下です。

  • シーン移動して
  • UIRaycastCameraが再生成されたら
  • CanvasのEventCameraがMissingする

この問題、かみ砕きまくるとシーンごとにProfileを持っていて、Profileを削除->生成したらおかしくなるよね?ってことみたいです。

First set of active profile change fixes by davidkline-ms · Pull Request #8050 · microsoft/MixedRealityToolkit-Unity · GitHub

やっぱり困ってた人がいたみたいで、MRTK2.5.0に対して修正が入っているようです。

もうプレリリースも出てきてますし、そろそろリリースされそうな2.5.0で解決しているといいなぁと思っています。

類件も上がっているようですが、こちらは動きがなく。
スクリーンショットで上がっているシーンはSceneSystemのデモにあったと思うので、そちらで動かせば問題ないはず。

Active Profile Switching - Unity UI is not responding · Issue #6061 · microsoft/MixedRealityToolkit-Unity · GitHub

※そもそもUIRaycastって?
EventSystem - what is UIRaycastCamera? · Issue #1442 · microsoft/MixedRealityToolkit-Unity · GitHub
日本語での解説もあるんだけど、これが好きです。

Scene System を使ってみよう

前のUIRaycast繋がりなのですが、MRTKにはProfileを1つだけにしてシーン遷移できるScene Systemというものがあります。
Profileの削除・生成が嫌なら、しなければいい。
そんな感じですね。

f:id:samy_hrin:20200929155238p:plain

もうたくさんシーンがあって今更移行なんて出来ないよ!
なんて心配もないくらい、とっても簡単な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とかなんか私の理解の至っていない部分の問題みたいです。

~追加情報~


いつもHololens関連で助けて頂いている広務さんから情報が!!
本当にありがとうございます!

yotiky.hatenablog.com

私のプロジェクトに入っていたのはAssetStoreからの古いバージョンのようで、手順に沿えば使えることがわかりました!
いつも本当に助かってます(-人-)感謝

全天球の大きさってみんなどうしてるの?

どうしてるの!?
そもそもMRで全天球使ったりしないかもだけど。
Oculus Questも2が出てきて、コードレスで自由なxRができるじゃないですか。
全天球のサイズを5とかにしてると、普通に歩いて出ちゃうんだよね。
でも100だと映してる映像みえなくなっちゃう(そんなことある?)
みんなどうしてるのかなーって。
答えのない問いかけです。
なお、私は50にしてる。

ログってここにあったんだ!

ここ最近一番の発見。
HLの実機のログの場所!
いや、そんなの知ってて当たり前だしwww
となるとは思うんですけどね。。。
これ本当に私的には奇跡で、こいつのおかげで問題も解決出来たくらいなの、、、ありがとう。。。

ログはデバイスポータルから引っ張れます。

System > File explorer > LocalAppData > 見たいアプリ > TempState
もちのろんですが、ストアからインストールしたアプリは見れません。

f:id:samy_hrin:20200929163946p:plain

おわりに

f:id:samy_hrin:20200929164223p:plain

気付いたら100%になってた!(スクショはその前にした)