プラスプラス開発者ブログ

岩手県盛岡市のシステム開発会社「株式会社プラスプラス」の開発者ブログです。

3teneバグ潰しライフ3

機器不安定系の問い合わせに答える為に
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編