👾

DragonRubyでOculus Quest2のヘッドセット・コントローラー位置をトラッキング

2022/09/03に公開

DragonRuby GTK[1]はRubyでゲームを作るフレームワークで、
個人的にはVRがサポートされている点に興味を持っています。

Rubyのコードを書くだけで、VR上に何かしら動かせるのは気軽で楽しい……。

前回触った時[2]はアナログスティックでの移動しかサポートされていなくて、物足りない感じだったのですが、先日リリースされたv3.19でヘッドセットとコントローラーの位置を取得できるようになりました。

欲しいと思っていた機能だったので、早速使ってみました。

完成デモがこちらです。

https://twitter.com/tnantoka/status/1566036298431078400

ちゃんとトラッキングできています。

書いたコードは200行いかないぐらいです。
位置はそれぞれ以下で取得できます。

  • ヘッドセット: inputs.headset.position
  • 左手: inputs.controller_one.left_hand.position
  • 右手: inputs.controller_one.right_hand.position

positionはx, y, zを持ちます。
値は 0.0 〜 1.0 の間の数値のようなので、grid の値を使って調整しています。
なお、公式ドキュメントが追いついてないので、この辺りは雰囲気で使ってます。

さて、こんな感じでした。
この調子で機能拡張してくれると嬉しいので、今年も課金[3]を継続して応援しようと思います。

今回のソースコードはこちらです。
https://github.com/tnantoka/dragonruby_vr_tracking

脚注
  1. DragonRuby については以前入門記事を書いたので、よろしければどうぞ。
    だいぶ前の情報ですが、大きくは変わっていないはずです。https://qiita.com/tnantoka/items/163ee82c402f9a6180fa ↩︎

  2. https://twitter.com/tnantoka/status/1467485058340880385 ↩︎

  3. VRは一番お高いプランへの加入が必要です https://dragonruby.org/toolkit/game ↩︎

Discussion