Viveトラッカーを自作する (その1)

前置き

メジャーなVR HMDのひとつであるHTC Viveは、好きな物体に取り付けることでそれをVR空間に持ち込むことができるVive トラッカーをウリのひとつとしています。
現状VR機器はコンシューマ向けとしては微妙に高価な上にトラッカー自体も1万円以上で販売されており、対応しているゲームが非常に少ない (筆者は一つしか知らない) ためコンシューマが買っても正直あんまり使いみちがないのですが、ひとつ絶大な効果を発揮できるゲームがあります。

VRChatです。

VRChatをエンジョイする筆者の図 (© Unity Technologies Japan/UCL)

この記事を読んでくれている方はだいたい知っていそうなので詳しい説明は省略しますが、VRChatは仮想のアバターに「なる」ことのできるコミュニケーションプラットフォームです。
VR機器がなくてもプレイできますが、HMDとコントローラを使うと (真の意味で一人称プレイができるのはもちろんのこと) 現実世界の頭と両手の位置をVR空間上に再現でき、更にトラッカー1〜3個を腰と両足先に取り付けてトラッキングすることで全身の動きを再現することができます (通称「腰トラ」「フルトラ」)。
膝・肘の位置はIK (逆運動学) でそれっぽく再現されます。

HTC社に金を積むほどかわいくなれるの図

トラッカーを追加することで何が得られるかというと、よりリアルな動きができることによってかわいくなることです。
実際筆者がはじめてVRChatでフルトラの女の子 (魂の性別は不問) に出会ったときはそのかわいさにかなりの衝撃を受けました。
そりゃ品切れにもなります


本題

そこでViveトラッカー相当のモノの自作を試行錯誤中です。
要件としては汎用用途であるViveトラッカーと違い「人体のトラッキングに特化する」ことで本家よりも安価な部品で実現できる予定です。
(もちろんライセンスの問題とか筆者の職場の就業規則とかの問題があるため販売・頒布等はできません。あくまで趣味の範疇で)

お手製悪魔の力 (MPU-9250変換基板君の迫真スタックが光る)

現状は基板設計〜製造〜部品実装までだいたい終わっています。
詳しいスペックと原理の説明はアクセス数を稼ぐために次の記事に延ばします (わかる人だと上の写真だけでおおよそ見当ついちゃいますが……)。
現時点で以下のような感じになっています。

  • サイズ: 55 mm × 19 mm
  • 重量: 9 g (バッテリー込、Viveトラッカーの1/9くらい)
  • 電源: CR2032 (ボタン電池)
  • 連続稼働時間: 数十〜数百時間くらい (試してないからまだ分からない)

開発がうまく行かなくてポシャる可能性も大いにあるのでご了承ください。

最近つくったアバター

本人確認 (?) のために自作したアバターをまとめておきます。

ランタナ (渉外用)


昔作っていたけどエターナった (死語) ゲームのキャラデザインを供養しようとしてモデリングした結果、全くの別物になった子です。
顔部分はシェーダでまばたきするようになっているほか、法線の向き (=顔の向き) によって表情が変わります。
耳はDynamic bone付きの耳と特別なボーンをつけた耳を表示/非表示することで動画のように曲げられます。

ルカ (アイコンの子)

Blenderで初めてまともに作ったモデルです。名前は片腕 (“рука”) が義手なことから。
腕ボーンがVRChat内で長さ調整される?関係で微妙に外見が崩れるため調整中です。

ブレンダーマン (ネタ枠)

Blenderの話題が聞こえてくるとどこからともなく現れて右手のマニピュレータを見せつけてくる奴です。
胴体がないため「そこに人がいる」と認識されなかったり、左手の指ボーンがやたら鋭いので”creepy”とか言われたり、Unityのマニピュレータと間違われたりします。
ちなみにBlenderでモデリング中に本物のマニピュレータ・ボーンとモデル自体を何十回も間違えてることで多大な時間をロスしました。


追記(2018/7/17):
新しく作ったアバターをこちらの記事に書きました。