機器不安定系の問い合わせに答える為に
VR酔いに悩まされる「軽く熊」です。
今週も3tene絶賛不具合修正中です。
HTC Viveの修正が終わったらと思ったら今度はOculus Riftです…。
ユーザー様よりOculus Riftが強制終了しまくりで困っていると
問い合わせが来ていたので早速調査です。
今週になってOculus Riftが使える状態になったので調査開始。
(業務上、いろいろな都合があるんです。)
あ”~、確かに落ちるー。
しかも開発環境を巻き込んで落ちるとかどんだけですか。
開発環境が落ちるのでログ解析もできないし…。
とりあえずSteamVRとかOculus関連をアップデートして修正。
ヲッ? 落ちなくなりました。
起動するようになったけどデバイス認識が正常に動かない。
開発環境は落ちなくなったから問題無し。解析解析。
どうもHTC Viveで実装したトラッカーの自動割り当てが
正常に動いていない可能性が高い。
HTC Vive一式はデバイスがバラバラのシリアル番号を返すけど、
Oculus Rift一式はHMD以外は「シリアル番号_C」で返してくる。
何かがおかしい。
そう返ってくる文字がおかしいのである!
返してくる値の共通点を調べる。
そう返ってくる文字は16文字なのである!
バッファ関連が怪しいと調べてみると…
シリアル番号の取得を最大16文字で行っていたのである!
最大32文字に修正してみると文字切れがなくなったが認識は直らない…
16文字で取得している箇所が複数あったのである!
処理を共通化して余裕をもって64文字で取得するようにしたら認識が直ったのでした!
やはり開発時にはいろいろなケースを想定して実装しなければいけませんね。
シリーズ記事
3tene Mac 版の最適化
3tene フェイストラッキングの最適化
3teneバグ潰しライフ
3teneバグ潰しライフ2
3teneバグ潰しライフ3 ← この記事だよ!
3teneバグ潰しライフ LeapMotion編