えむにわリソース

ITのスキマ的なあれこれを書きます。

Valve Indexのコントローラーはバーチャル表現者の銀の弾丸足り得るか

本記事は VTuber Tech #1 Advent Calendar 2019 の7日目の記事です。

11月28日に日本でも購入可能となったValve Index、コントローラーで指の動きが取得可能なことが特徴です。
ゲームのための入力インターフェースとしてはとても優秀なものです。

しかし、バーチャル表現者の新しい手たりうる銀の弾丸か、結論から言うとベターですがベストではないです。

Indexコントローラーは、何が得意で何が苦手なのか、見ていきましょう。

Indexコンは指の状態をどうやって取っているか

Valve公式の解説記事

valvesoftware.github.io

Indexコントローラーのユーザーインタラクションの最小閾値
「コントローラーのどの位置に接触しているかどうか」が判定ポイントで

Indexコンの各入力ボタンやタッチパッドに触るだけでIndexコンは触られていると検知します。

指ポーズの変換について

SteamVR_Behaviour_Skeleton.rangeOfMotion の設定で、指の開き方が変わってきます。

SteamVR_Behaviour_Skeleton.rangeOfMotion = EVRSkeletalMotionRange.WithController
の場合、コントローラーを持っている前提で手のモーションが決まります。
f:id:m2wasabi:20191207234235p:plain:w300
この場合ピースしても シュトロハイム*1 って言われそうなポーズになってしまいます。
f:id:m2wasabi:20191207225611p:plain:w300

SteamVR_Behaviour_Skeleton.rangeOfMotion = EVRSkeletalMotionRange.WithoutController
だとA,Bボタンに指を置くと親指を固く握り、チョキがちゃんとチョキになって、人差し指のトリガーを深く握り込むとグーになります。
f:id:m2wasabi:20191207225654p:plain:w300 f:id:m2wasabi:20191207225744p:plain:w300

バーチャル表現者的にどうか

大福らなさんがツイートしているように、一番得意な事は中指を立てることです。あと「いいね」もやりやすいです。

  • 指のポーズの判定が指の開きだけで、誤判定もあるので、微妙な調節が難しい
  • 手の甲の動きがないので、常に手の表情がマッチョになる

したがってすべてが力強い動きになって、しなやかな表現をするのは難しいです。
「指のモーションを撮る」という目的で使うなら、Indexコンは厳しいです。

モーションキャプチャーなぞどうでもいいので、見た目を何とかしたい。という場合は、指が開いたときに揺らぎのモーションをオーバーライドするスクリプトなどを書けばカバーできそうです。

Indexコンは誰のためのデバイス

ゲームプレイヤー向けか

ゲーマーのため、さらなるゲーム体験の向上のためであれば、良いデバイスです。
タッチパネルとジョイスティックを両方装備し、接触も感知していて、振動も表現可能です、ゲームのための表現ツールとしてとても優れています。

VRChat住人向けか

VRChatユーザーも必ず買うべきかといえば、現状あると面白いけど必須でもないと思います。
それについては特化したレビューをされている方が居るのでそちらが参考になるでしょう*2
親指の挙動*3の正解を出してくれたら面目躍如するかも?

開発者向けか

開発者は、新しいアイデアやデバイス対応のために買うべきかと思います。

SteamVRと独立したSkeltonPoser

SteamVRとは独立して、手のポーズをとる仕組みらしいです。
V者ツール開発者的にこちらが本命そうですが、サンプルコードがひとつもないので、ライブラリのソース読んでいくしかないですね!
がんばりましょう!

valvesoftware.github.io

github.com

2019/12/11 追記

SkeltonPoserはオブジェクトごとに独自の「持ち方」を定義するもののようです。 自由なポーズではない!残念!

愚痴

SteamVR Unity Plugin 2.xよ、HMD無しでも動いてほしいです…

Refs