メモ帳DPA

ぐぐってあまり引っかからないような何かがあったら書いたりする

自作キーボード無線化した話(Helix+Ble Micro Pro)

ついにBle Micro Proが到着しHelixを無線化出来たので、その辺について書きます。
f:id:de0:20190210201341j:plain

導入の流れ

Pro Microを外し、Ble Micro Proに入れ替えて、何らかの電源を追加し、以下の手順に従いファームを焼くだけ。無線化のハードルが滅茶苦茶低くなって本当にありがたい。
github.com

※追記:今はwebからファーム焼きが出来るのでさらに簡単

作ったパーツ

単4搭載用プレート


f:id:de0:20190216194906j:plain
[asin:B07K21F579:detail]
最終的に使うことにした部品。
単4搭載用の金具を隙間に差し込んで、電池-電池間、電池-BAT間、電池-VCC間を導線で雑にハンダ付けして使う。
金具裏面-コンスル―の間と、表面の電池周りの金具同士は、接触すると短絡するのでテープを貼って回避した。

スペーサはデフォの8mmから6mmに換装している。こういうパーツどこで買えばいいのかよく分からなかったんだけど、遊舎工房のリアル店舗が出来たおかげで小物の入手性が良くなって助かる。

配置可能な位置の中で一番マシっぽい場所ではあるものの、かなり上に飛び出る(横も2mmはみ出す)ので、元の直線的で無駄のないデザインを台無しにしている点はよくない。
ロープロファイル構成だったら大体同じ高さなのでもう少しすっきりするかもしれない。

コイン電池搭載用プレート


f:id:de0:20190216194344j:plain

作ったけど使わなかったパーツ。市販の電池ボックスをそのままくっつけられる(内側はみ出すけど)。
このケースは直列用なので、内部の配線をいじって並列もしくは1個にする必要がある。
見栄えは電池基盤に劣り、使い勝手は単4に劣るので、難易度くらいしかメリットがなくやめた。

エルゴノミクス風チルト足


f:id:de0:20190216194413j:plain
中央を高くしてそれっぽい配置にするための足。現在は戻したけど180度回転させる配置でも使える。
作ってはみたものの、この手の配置はパームレストがないと余計に疲れるだけということが分かった。
パームレスト無しで済ませたいからロープロファイルにしているのでやめた。
持ち上げる構成にすると裏面のスペースにかなり余裕ができるので、電源配置の自由度はかなり上がりそうではある。

3Dデータ

一応以下に置いときます。(3種セット、STL+F3D)
ただし、ダヴィンチJr (使っている3Dプリンタ)の精度が結構低く、印刷してから適当に穴広げたり削ったりしてるので微調整が要るかも。
www.dropbox.com

ハマったポイント

※全てWin10+MinGW環境、2/10時点 (追記:現状全部解決している)

ペアリング後に元のレイヤーに戻ってくれなかった

LT()で切り替えた先のレイヤーからMO()で移動するAdjustレイヤーにペアリング用のキーを配置していたのだけど、ペアリング後にキー入力を受け付けてくれない状態になり、数時間悩んだ。
根本原因まではちゃんと調べてないけど、ペアリングキー(AD_WO_L)押下後にどういうわけか元のレイヤーに戻らず、Adjustレイヤーのままになっていたせいだった。(使わないキーはAdjustレイヤーでは無効化していた)
滅多に使うものでもないので、元のレイヤーに戻る用に TO(_QWERTY) をAdjustレイヤーに追加してとりあえず回避した。
※追記:現行バージョンでは直っている

USB接続していないと初回ビルド終わらない

ビルドがなかなか終わらないなあと思ったら、途中でUSB接続してないと進まないポイントがあったらしい。
特に表示が切り替わらないので気付かずに数時間余計に待ってしまった。

USBで認識してくれなかった

これはBle Micro Pro自体は何も関係なく多分接続先が悪いんだけど、何も繋がず裸でUSBだけ繋いだら動くが、基盤をキーボード上に搭載している時は何故かUSBデバイスとして認識されないという状態になった。
コンスルー取り替えたら直ったけど、どういう仕組みでそんな現象になったのか結局よくわからない。

ちなみに、構築の経過をTwitterに書き殴ってたら、特にBle Micro Proって書いてないツイートにも関わらず分で補足され、交換品を速攻で送って頂けたりした。
結果的に切り分け不足でただ余分な手間を掛けさせてしまっただけなんだけど、滅茶苦茶親切でちょっと感動した。本当にありがとうございます。

若干もっさりする

デフォの設定だと少し反応が遅めで、左右の打鍵タイミングが悪いと入力順序が反転したりする。(頻度はそこまで高くないけど)
電池持ちは悪くなるけど、通信インターバルは多少下げたほうが良いように感じた。

配置を考える

せっかく分割ワイヤレスになったので、普通のキーボードじゃできない配置を試してみた。

椅子に直接付ける

f:id:de0:20190216195913j:plain
椅子のアームレストに机用のマウストレイを付けてそこに置く配置。(お試しなので片方だけ)
位置的にかなり楽な場所に来る点は良かった。ただ、固定しないと落ちそうで怖い、机の昇降についていけない、机の高さ低いとぶつかる、という点が微妙だった。やっぱ机に置けば良いや。
オフィスチェアではなくソファなんかだったら良いかもしれない。

ベッドで足の左右の座面にダイレクトで配置

位置が結構低いので思ったより疲れる配置だった。だったら普通に膝の上に置けばいいんだけど、別にそれは分割じゃなくても出来る。

ベッドでクッションテーブル二つ配置して配置

f:id:de0:20190217064449j:plain
ならば位置を上げれば良いのではということでクッションテーブルを間に配置して嵩上げしてみる。クッションテーブルは膝の上において使うものらしいけど、そのまま配置してキーボード置き場にした。
非分割キーボードを使う時はベッドサイドテーブルを正面に持ってきて配置していたのだけど、この場合足に当たらない程度の高さまでしか下げられないので、低めに設置できるこっちの方がちょいど良い高さになる。
トラックボール置くと若干窮屈なのと、足回りが狭いのと、寝るとき邪魔なのは欠点。

クッションテーブル+サイドテーブル

f:id:de0:20190217064532j:plain
これが一番しっくりきた配置。右手側だけサイドテーブルに変更。
天板が膝をまたがないので、足回りが広くなり高さも低めに調整できて両方ともいい塩梅のポジションになる。
落下の心配がなくなるのと、長いので肘掛けにもなるのもよい。

おわり

立ったり座ったりベッドで使ったりと普段あんまりキーボード位置が定まっていないので、いつでも左右バラバラ好きな場所で使えるのは思ったより快適になった。

自作キーボード導入の最後の踏ん切りがついたのは無線化の手段があるという点だったということもあり、当初から理想形として考えていたものがやっと形になってうれしい。

ぼくのかんがえたさいきょうのキーボードが出来てこれで完璧...になるかと思ったけど、理想はいくらでも上がっていくようで、一体化したポインティングデバイスも欲しいな、とか、右側だけもう一列欲しいな、とかいろいろと欲が出てきた。しばらくはこのまま使うつもりだけど果てしない沼を感じる。

テンキーで無理やり試すワイヤレス分割格子配列キーボード

前々から自作キーボードは気になってはいたんだけど、有線であることが引っかかって結局ずっと購入に踏み切れていなかった。
ベッドで使う時に体の左右に置きたいのと、差し替え無しで机にも移動したいので、欲しいのは分割でワイヤレスのキーボードなんだけど、ワイヤレスの部分が自作だとネックだった。

ところが今はBLE Micro Pro というものがあったようで、基盤を置き換えれば自作キーボードをBluetooth化出来るとのこと。かなり理想的だったのと、予約注文で2ヶ月ちょっとくらい待つようだった(当時)ので、見つけた勢いで何も考えずに即座にとりあえず2枚ポチった。
(redditとか見ると他の無線化例もいくつかあったがどれも売ってなかった)
github.com

最大の課題だった点が解消できそうなので、これで安心してキーボード選びに入れるようになった。基盤買う前に決めろよという感じもするが買っちゃったものはしょうない。

デザインや省スペース性でHelixが第一候補になったんだけど、格子配列を導入するにあたって、普通の配列と切り替えるのにどれくらいの違和感があるのかということが今度は気になってきた。 

世の中のノートPCやコンソールは格子配列じゃないので、一生格子配列しか使わんという訳にはいかない気がするし、結局両方の配列に付き合っていく必要がありそうに思える。特殊配列使ってる人たちがその辺とどう向き合ってるのか大体なにも書かれてないのであまりよくわからなかった。

それなりの手間と金を突っ込んで結局やっぱ使いづらかったってなるとかなり悲しいので、なかなか踏ん切りがつかなかった。

テンキー

なかなかポチれないまま思考がぐるぐるしているうち、「テンキーって格子配列だし2つ並べればそれはもう分割キーボードでは?」という意識の低い閃きが降りてきた。

基本的なテンキーだと5行4列なので少なすぎて若干厳しそうだけど、ボタンを拡張してある6行4列のテンキーなんかだと、Let's Splitとだいたい同等(ただし2マス使ってるキーの分は少ない)のキー数がある。
調べたら6行5列かつおまけにワイヤレスのものが見つかった。「0」「Enter」が倍のキー幅であることと一番端はキーが狭いことが気になったが、ここまでのキー数の品は他に無いので、妥協してとりあえず買ってみることにした。

ちなみに、電池横にあった特に使われない謎のくぼみが気になって調べてみたら、元はレシーバー式だったミヨシのテンキーbluetoothに変えて売ってる品っぽい。外装がOEM的なものなのか金型流出的なものなのかは謎。

f:id:de0:20181209175049j:plain
使い方は単に90度回して2台置くだけ。

キーアサイン方法

ファームウェアの修正は不可能なので全部ソフトウェアで制御することになる。
もともとキー配列弄りはかなり前からAutoHotkeyを使っていたんだけど、複数のテンキーが接続されると素のAHKではデバイス単位での制御が出来ない。
なので、とりあえずキー割り当てはhidkeysequenceを使い、モディファイアは引き続きAutohotkeyを使用して無理やり割り当てた。

www54.atwiki.jp

hidkeysequenceでは電卓キーや00キーのような特殊キーには対応していないので、割当はAutohotkey側でしか出来ず、左右別々の設定は出来なかった。また、"$"と”("と")"はShiftキーとの同時押しで送られてくる影響で、同時押しの制御の効かないHidKeySequenceではアサイン後のShiftとの同時押しがちゃんと動作してくれなかった。ずっと使い続けるとは思ってないのでそのまま妥協した。

この辺の問題は、hidkeysequenceではなくAHKHIDのようなものを使い、全てAutohotkey側で割り当てれば多分まとめて解決する気はする。(試してはいない)
github.com

キーマップ(テンキーx2)

キー配列は、もともとAutohotkeyで調整した以下のようなキー配列を大分前から使っていた。(オレンジ:キー変更、緑/紫:元のキーとの同時押し)
左手には主に頻出のショートカットキーを割り当て、右手はマウスとの持ち替えを意識して移動系を割り当てているのと、Space周りの無駄キーを再利用している。
f:id:de0:20181209182416j:plain
※元ファンクションキーと右Shift周りにある謎のキー名は、周辺の物理的な装置(介護ベッド、照明、エアコン昇降デスク風呂)の制御用です

これをベースに、キーの足りない記号を入れた以外は大体同じ配置にした以下のような配列を試した。
f:id:de0:20181209183058j:plain
また、これを元に1-3行目を1つずらしたりするパターンも試した。

感想

職場のノートPCは普通の配列のまま、しばらく自宅では格子を使ってみた際の感想を以下に書きます。(長いので読み飛ばしてもよい)

  • 文字(左手)
    • Zキーの位置がきつい
      • "za"を"xa"にtypoしがち
      • 入力の運指は薬指-子指なんだけど、ZがAの真下になると窮屈
      • 小薬や子子にしたらしたで普通のキーボードできつそう
    • 割と出てくる"ce"と"cd"も同様にきつい
    • ASDFGとZXCVBは一つズレていたほうが押しやすいかも
      • Bは0.5U分くらい遠くはなる
      • だが運指差分のあるZCの違和感に比べると軽微
      • A行とZ行で指の斜め移動が発生するようになるがZXCVBの運指は薬薬人人人だったので影響はXキーくらい
      • 普通の人は子薬中人人なんだろうか
      • Xはあんまり使わないこともあって中指でも割と違和感なくいける
    • QWERTとASDFGは縦に同位置でも違和感なし
      • よくある同縦軸入力は"de"くらいだけど元々両方中指だった
  • 文字(右手)
    • 右手側文字入力は特に問題なさそう
    • 下段のNもMも全部人差し指だった
    • 非分割時の腕配置は内向きなので右手側は元々ズレと指移動の方向が合ってて差分が少ないのかも
    • キーキャップが回転しているだけで元の位置関係は実質Column-staggeredに近そう
    • 端が記号で主要キーが内側に寄ってるからってのもあるかも
    • 利き手分の精度差もありそう
  • 数字
    • QWERTの上に12345があると普段の感覚と位置がずれてる
      • 最初はこの配置で試したがtypoが頻発した
      • 普通のキー配置的には23456...の横位置はZXCVB...と同じくらい
    • 6も左手にほしい
      • 右手で押すのが主流なんだろうか
      • 左手側のほうが近いんだけど分割だとなぜか大体右にある
    • 1-6と7-9で割ったほうがよさそう
    • 右手が6スタートだと格子の場合ハイフンも遠い
  • 記号
    • 記号の位置がかなり変わるので打つたびに手が止まる
    • 数字キーを封印したパターンも試したが更に厳しい
    • 自作だと基本的に英語キートップなので日本語配列だと印字と記号も合わない
    • "\"は重複している、Shift+0は空いている
      • Shift+右上"\"の"|"をShift+0に持ってくると1キー減らせる
      • パイプの位置を覚え直す必要はある
  • レイヤー切り替え
    • これは特に違和感なし
      • AutoHotKeyでかなり前から使って慣れてただけではある
    • だったら記号も慣れで解決できそうな気はしないでもない
  • 全体
    • ズレの有無によるキー自体の押しづらさとかは特に無さそう
    • ただし運指が変わる箇所はかなり気になる(音ゲー脳なので外れ配置に敏感すぎるだけかもしれない)

この辺の内容はかなり人によるだろうけど、実際買う前にある程度確認できたのはそこそこでかいと思う。

結果

配列の差分を気にするようだったら、単に格子でない普通の配列のキーボードを買えば完全に解決するはずなんだけど、以下の理想を全部満たしかつRow-Staggeredであるキットや製品はざっと調べた限り見つからなかった。(あったらぜひ教えてください)
初手でフルに自作するのは厳しそうだし、既存品の完成度を超えるにはかなりハードルが高い。薄さまで考え出すと完全に勝ち目がない。

ぼくのかんがえたさいきょうのきーぼーど
  • 左右分割
  • ワイヤレス(惜しい:Koolertron
  • 再下段NMカンマの下に3キー以上(かなり惜しい:Quefrency
  • 最下段CVBの下に2キー以上(惜しい:Handjoy 逍遥王座K3 x2台)
  • 数値キーあり(惜しい:zinc
  • 6まで左手(惜しい:mint60
  • なるべく薄いとよい(せっかく小さいのにパームレストは嫌)
  • 日本語配列(ソフト側で出来るので重要度低)
  • キーマップ可能(ソフト側で出来るがFnキーが良位置にあるのは駄目)
  • 赤軸か茶軸だと嬉しい
  • キー数カツカツに切り詰めなくていいがなるべく小さいほうがよい

格子配列でも運指差分だけどうにかすれば普通に使えることが分かったので、Helixを手に入れて以下の配列にした。

キーマップ(helix)

右手側とは違い、普通のキーボードの左手側はズレの方向と指の移動方向が合っていない。標準的な格子配列のように単に元の斜め配列通り揃えるのは、移動距離は小さくなるけど、その分左手側の上下段の運指が混乱するので、あまり好きになれなそうだった。

慣れで格子側に矯正すると今度は戻れなくなりそうだし、完全に格子だけ使う覚悟はまだ無いので、数値行とZXCV行を1つずらしてキー側で元の運指と合わせてみた。普通の格子で慣れた時に比べて1とBだけは遠くなるが、そこは慣れなくていいこととのトレードオフなので仕方ない。
f:id:de0:20181213190631j:plain

右側を反転させたところ、helix特有のおまけの2キーが左右ともかなり丁度いい感じのポジションに来てくれて、"]"以外はうまいこと収まった。
"]"については、”["を押したら後ろも自動補完するようにAutoHotkeyで設定しているので無くても困ってはいないが、全然使われないAdjustの位置に入れたり、"|"を0キーに詰めて空いた所に入れてもいいかもしれない。

なお、上下反転させるとLEDの位置も上下逆になるので、キーの印字はちゃんと光らなくなる。(普段全く光らせてないので別に問題ない)
f:id:de0:20181214194043j:plain

最下行両端の3キーとZの左とBの下は空いているんだけど、いい感じの割当が思いつかないので仮置きしている。

おわりに

思ったよりはテンキーでもちゃんと使えた。マッピングが若干面倒だけど、そこそこ良い位置で2マス使ってるキーがあることを妥協できるなら、テンキーだけでやっていくという選択肢も無くはないかもしれない。

今回買ったテンキーだとキータッチがペラペラだったり端のキーが小さかったりする不満はあったけど、一列減らすか有線にすると選択肢はかなり豊富になり、最初からCherryスイッチ各種付いているタイプや、自作じゃ難しい静電容量式のタイプもあったりする。
ちなみに、テンキー以外の選択肢としてはこういう製品もあるようで、単に2つ買うだけでも手軽にかなりそれっぽい形になりそうに見える。

常用までしないにせよ、とりあえず手軽に試してみるための取っ掛かりの一つの手としてはテンキーでもいいんじゃないかと思います。安いし。

試した末結局Helix買ってちゃんと使えて満足しているので、BLE Micro Proの到着が楽しみです。

adventar.org
この記事は謎の中華テンキー二枚とhelixで書きました。

f:id:de0:20181214194254j:plain
(机がかなり広くなってうれしい)


※追記:その後無線化出来た
de0.hatenablog.com

配列抜粋

  [_BASE] = LAYOUT( \
    KC_1,    KC_2,       KC_3,    KC_4,    KC_5,    KC_6,                               KC_RGHT, KC_DOWN, KC_LEFT, JP_ZHTG, KC_ENT,  LT(_LOWER,KC_SPC), \
    KC_TAB,  KC_Q,       KC_W,    KC_E,    KC_R,    KC_T,                               KC_RO,   KC_SLSH, KC_DOT,  KC_COMM, KC_M,    KC_N, \
    KC_BSPC, KC_A,       KC_S,    KC_D,    KC_F,    KC_G,                               JP_COLN, JP_SCLN, KC_L,    KC_K,    KC_J,    KC_H, \
    KC_LSFT, KC_RSFT,    KC_Z,    KC_X,    KC_C,    KC_V,               KC_B,  JP_LBRC, JP_AT,   KC_P,    KC_O,    KC_I,    KC_U,    KC_Y, \
    KC_LCTL, KC_F24,  KC_LGUI, KC_LALT, KC_LCTL, LT(_LOWER,KC_SPC),   KC_ENT,  KC_JYEN, KC_EQL,  KC_MINS, KC_0,    KC_9,    KC_8,    KC_7  \
    ),
  [_LOWER] = LAYOUT( \ 
    KC_F1,   KC_F2,        KC_F3,       KC_F4,      KC_F5,        KC_F6,                               _______,   _______,    _______,       _______,       _______,       _______, \
    _______, LSFT(KC_TAB), LALT(KC_F4), KC_ESC,     LALT(KC_TAB), KC_TAB,                              TO(_BASE), TO(_RAISE), LALT(KC_RGHT), LALT(KC_LEFT), KC_MS_BTN1,    LCTL(KC_TAB), \
    _______, LCTL(KC_A),   LCTL(KC_S),  KC_DEL,     KC_F2,        KC_F23,                              KC_WH_D,   KC_PGDN,    KC_RGHT,       KC_DOWN,       KC_LEFT,       LCTL(LSFT(KC_TAB)), \
    _______, _______,      LCTL(KC_Z),  LCTL(KC_X), LCTL(KC_C),   LCTL(KC_V),   KC_SPC,   MO(_ADJUST), KC_WH_U,   KC_PGUP,    LCTL(KC_RGHT), KC_UP,         LCTL(KC_LEFT), LCTL(KC_Y), \
    _______, _______,      _______,     _______,    _______,      _______,      _______,  KC_PSCREEN,  KC_F12,    KC_F11,     KC_F10,        KC_F9,         KC_F8,         KC_F7  \
    ),
  [_RAISE] = LAYOUT( \
    _______, _______, _______, _______, _______, _______,                   _______, _______, _______, _______, _______, _______, \
    _______, _______, _______, _______, _______, _______,                 TO(_BASE), KC_UP,   _______, _______, _______, _______, \
    _______, _______, _______, _______, _______, _______,                   _______, _______, _______, _______, _______, _______, \
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  \
    ),

※ランチャ起動と機器操作関連は適当なFキー充ててソフト側で制御

TPCAST Wireless Adaptor for VIVE のカスタマイズいくつか

VRヘッドセットの無線化はかなり重要な要素だと思うんだけど、期待の星だった公式のHTC Vive Wireless Adapterは技適のせいで日本での発売が無くなり、堂々と合法で使えるのはTPCAST一択になってしまった。とてもかなしい。
そのTPCASTは無線化はちゃんと果たしてはくれるものの、(商品化第一号だからしょうがないんだけど)いろいろと細部が練られてはいない。
けっこうあるイマイチなポイントをなるべく潰して、使い勝手を多少なりともマシにするためいろいろ試したのでその辺について書きます。

ファームウェアの変更

TPCASTはソフトが結構不安定で、接続に失敗する時がたまに出てくる。1回接続できたら再起動するまでは安定するんだけど、いざ使おうという時にすんなり繋がってくれない場合はかなり鬱陶しい。

非公式で開発されているOpenTPCastなるファームウェアがあって、それを入れたら今のところは安定して繋がっている気がする(もともと頻度は高くないのでたまたまかもれない)。

TPCastは、バッテリ装着部がmicroSDからブートするraspi的なミニPCになっていて、USBデバイス関連は無線LAN経由で、映像のみ送信ユニットでやり取りする作りらしい。分解して単にOpenTPCast書き込んだmicroSDに入れ替えるだけなので導入は結構簡単にできる。
全然使わないので個人的には別にありがたさは無いけど、通常のTPCASTでは無効化されてしまうマイクがOpenTPCastだと使えるようになったりもする。

NW越しにUSBデバイスを認識させることの出来る、VirtualHereという有償ソフトがあり、こちらをTPCASTの付属ソフトの代わりに使うことになるので、$25のライセンス費が必要になる。
このソフトはOpenTPCastの流れで初めて知ったんだけど、装置をデバイスサーバ化できてUSB機器をワイヤレスで接続できるので結構他にもいろいろ便利に使えそうな感じがする。

一体化

バッテリ+ミニPC部分は頭頂部からケーブルが伸びていて、ポケットやベルトに別途付けるという作りになっている。これは頭部の軽量化になっている一方装着の手間は増える。
この辺は好みによるだろうけど、私としてはヘッドセットに一体化していたほうが嬉しいのでくっつけることにした。
f:id:de0:20181111184301j:plain
Thingiverseにマウントの3Dデータが公開されていたのでそのまま使った(バッテリ周りの白い部分)。もし3Dプリンタ無くてもそのまま適当に括りつけるだけでも大丈夫だとは思う。
バッテリの着脱がしやすい作りになっていたが、私の使い方だと付けっぱなしなので滑り止め(輪ゴム)付けて固定した。

電源スイッチ

TPCASTには電源スイッチがない。バッテリをミニPC部分と合体させたら勝手に起動し、外したら落ちるようになっている。
挿しっぱなしにしていると電源使いきるまで動くので、都度外さないとならない。また、合体中は充電ポートが配置上物理的に塞がるので給電もできない。
これは地味ながらかなり面倒なので、バッテリとTPCASTの間に二股のUSBケーブルとUSBのON/OFFスイッチを入れて、つけっぱなしのまま電源切り替え出来るようにした。

軽量化/高速充電

TPCASTのバッテリはAnkerの市販品の PowerCore 20100 がそのまま使われている。TPCASTの箱のなかに普通にPowerCoreが箱ごとそのまま一式入っていて割り切りがなかなか潔いなと思った。

バッテリ側の急速充電に非対応で充電が遅く12時間くらいかかるのと、353gあって頭に付けるにはくっそ重かったのが気になったので、PowerCore II 10000に置き換えた。出力が1ポートに減っているが二股で繋いで普通に動いてくれた。

標準の20100mAhだと稼働時間は5時間とのことだが、私の使い方だとVRゲー5時間もぶっ通しでやることは体力的にまず無いので容量半分でも特に不自由はなかった。(VRChat一日中やってるみたいな人とか配信に使う人なんかだと困るかもしれない)

なお給電さえできれば良いので別に他社製のモバイルバッテリでも普通に動く。マウントがそのまま使える以外はAnker製にする必要は別になかった。
似た構成としては、小型バッテリ2個に分割して左右に配置する作例なんてのも見つけた。

TPCAST用バッテリの話は以下が詳しい。単に予備バッテリ欲しい人もPowerCore II 20000があるので添付品と同型番買う必要はないっぽい。
www.reddit.com

マグネット充電

バッテリの充電のためにMicroUSB抜き差しするのが面倒なのでマグネット式にした。よくあるマグネットコネクタを普通にバッテリの充電用ポートに挿しておくだけ。
適当にケーブル近づければくっついて充電出来るので充電が楽になる。

ルータの撤去

TPCASTの導入にあたって、現用のルータとPCとの間にTPCAST用ルータを挟めと指示される。無線化するだけのためにネットワーク構成に盛大に影響与えてくるのはどうなのよという感じだし、無駄に複雑になるだけなので何も良いことはない。
マニュアルはこの辺の説明を完全に放棄しているんだけど、実際の所はNW越しのUSBデバイス関連のやり取りに使ってるだけのようで、PCのNICが2ポートあれば片方にTPCASTルータ単に挿すだけでちゃんと動いてくれる。それどころか、TPCASTの接続先を既存のルータに変えても普通に動く(OpenTPCastだと接続先が指定できる)。
相性問題とかルータ性能とか説明の簡略化あたりのためだろうとは思うけど、既存のルータでちゃんと動いたら付属のルータの存在価値は全く無いので撤去してよい。動いたから撤去した。

ちなみに、ルータはリセットボタンが結構押しやすいところに付いているにも関わらずリセットすると繋がらなくなる仕様らしく、「押すなよ」という内容が書かれた後付の注意書きペーパーが同梱されていたりする。試したことないけど、ミニPC側から繋ぎに来るSSID/PASSは固定されていてルータ側設定と合わせてあるっぽいのでその辺が合わなくなるのかもしれない。

未解決の課題

TPCASTの電源が入っていない時、HDCP非対応モニタが接続されている扱いになるという仕様らしい。
Nasneで録画した番組を以前はPC TV Plusで見てたんだけど、HDCP必要なアプリは使えなくなるので結構困る。

使わないときは有線で常に通電させておくという手もあったが抜き差しが面倒なのでやめた。
試しにHDMI引っこ抜いたりリンクボックスの電源落として戻した際にすんなり復旧してくれなかったので、切替器やリモコンコンセント等で制御する手も駄目そうな感じがする。(試してはいない)
今はNexus Playerにtorneアプリ入れてキャプチャボードから再生させているが、操作がPC側のマウスとキーボードと独立してるのがあまり良くない。
何かいい手ないですか。

まとめ

それなりにいじった結果使い勝手は大分良くなった。Vive本体+オーディオストラップ+映像受信ユニット+ミニPC+バッテリ+スイッチ とその装置間のコネクタ11個分のケーブルがくっついているのでサイバーパンク装備ばりにかなりゴチャゴチャしてるけど、全ケーブルは頭の上で完結しているので取り回しはかなり良い。
f:id:de0:20181111184350j:plain
TPCASTにいろいろ文句を付けたけど、無線化自体はかなり快適なので、細部のいろいろな不親切さや粗さを許容できる心があるなら買って損はしないかと思います。
あと電波法はいい加減もうちょっとどうにかしてほしい。
qiita.com

最近遊んだSteamゲームだけSSD上に自動配置する

背景

ディスクのパフォーマンスはゲームのロード時間に直結するので、ゲームはなるべくSSDに置きたい。ただSSDの容量は限られているので、どんどん積まれ続けていくゲームを全部SSDに置いておくわけにもいかない。
一番簡単なのはSSDを買うことだけど、実際に起動するゲームは大量に積まれているうちのほんの一部だし、ゲームは増え続けるのであまり積極的にこのために買う気もしない。

都度自分で移動するにしても、Steamのインストールフォルダの移動機能は1個ずつしか出来ないのと、ファイル実体を移動する場合はIDで記載されたファイルが何のゲーム用かは中身を見ないと分からないという問題があるので、結構面倒な作業になってしまう。
Steam Moverという外部ツールは手軽に移動できて結構いい線行っていたものの、結局は手動選択なのが惜しいポイントだった。

ということでどうにかした。

方法

そもそもストレージ自体を階層化出来れば綺麗にすべて解決しそうなんだけど、この機能はWindowsServerにしか付いていないらしい。
一応コマンドラインからWin10でも無理やり作れるらしいが、情報も実績も少ないので今は止めておいた。

最近遊んだゲームだけSSDに置くようにすればゲーム限定でそれっぽい動作にはなりそうなので、以下のようにスクリプト化してタスクスケジューラに突っ込むことにした。
2週間以内に遊んだゲームはSSDに配置し、それ以外のゲームはHDD上に配置されるようになった。便利。

情報取得

直近で遊んでいるゲームの抽出は、ローカルのライブラリからプレイ履歴直接取る方法が見つからなかったので、Steam Web APIから拾うことにした。API Keyを発行して、自分のSteamIDを指定すれば使える。

GetRecentlyPlayedGamesというAPIを叩くと、直近2週間でプレイしたゲームのリストが返ってくるので、ここから対象のゲームIDを入手し、Steam Mover相当のコマンドに変換して走らせるだけで済む。

http://api.steampowered.com/IPlayerService/GetRecentlyPlayedGames/v0001/?key=APIキー】&steamid=【SteamユーザID】&format=json

返ってくる内容の例

{"response":{"total_count":6,"games":[{"appid":49520,"name":"Borderlands 2","playtime_2weeks":2246,"playtime_forever":2246,"img_icon_url":"a3f4945226e69b6196074df4c776e342d3e5a3be","img_logo_url":"86b0fa5ddb41b4dfff7df194a017f3418130d668"},{"appid":620980,"name":"Beat Saber","playtime_2weeks":407,"playtime_forever":998,"img_icon_url":"2b54e9f73692cecf2c15c46fbfd2cded0cbded49","img_logo_url":"9863f8790902188c59c44d410f67a3e5ce452bb9"},{"appid":382110,"name":"Virtual Desktop","playtime_2weeks":132,"playtime_forever":7516,"img_icon_url":"c4f78db130aec6ee1188f432b0ceaf102d50e28a","img_logo_url":"4c32cf132501fb26528b3b3316363f89bcf81785"},{"appid":690510,"name":"Black Survival","playtime_2weeks":16,"playtime_forever":16,"img_icon_url":"2a407923a221e54921b7fa6c7bbcf86bb7a6a40e","img_logo_url":"4bdbe1fe41efaa1b5a7508c82d2782a5ab9ae602"},{"appid":206420,"name":"Saints Row IV","playtime_2weeks":7,"playtime_forever":7,"img_icon_url":"b5e8448a3e2ea31ddf3595addae4e1eee2375c0d","img_logo_url":"6f7e659c6b58971ebf9710b7f0048c20c68aadd7"},{"appid":631900,"name":"Airtone","playtime_2weeks":5,"playtime_forever":3021,"img_icon_url":"7f3e856650ac447f80f181aee59ab83d8608f743","img_logo_url":"a391d42fffbe283e16e8639efaf78b872df507d3"}]}}

Steamゲームのファイル

【Steamライブラリパス】\steamapps\appmanifest_【APPID】.acf

ゲームの情報が格納されているマニフェストファイルらしい。ゲームの実体のパスもこの中で指定されている。
このファイルは別にSSDに移動しなくても良いのだけれど、SSDに一緒に置いておいたほうがHDDに戻すときに対象の判別が楽なのでコピーすることにした。

【Steamライブラリパス】\steamapps\common\【ゲーム名】

ゲームの実データが格納されているフォルダ。
このフォルダをSSD上に移動し、元パスからジャンクションを貼れば高速化完了。

出来たスクリプト

# 初期設定 ###########################

$APIKEY = "【APIキー】"
$USERID = "【ユーザID】"

$HDDLIB = "D:\Games\SteamLibrary"
$SSDLIB = "E:\Games\SteamLibrary"

$LOGFILE = "D:\program\steammove\SteamMove.log"

######################################


# IDからインストールパス取得
function GetInstallPath($AppId){
    # AppIdからマニフェストパス指定
    $ManifestPath="${HDDLIB}\SteamApps\appmanifest_${AppId}.acf"
    if(! (test-path ${ManifestPath}) ){ 
        echo "$appid manifestファイルがない"
        exit
    } 

    # マニフェストファイル内から実パス抽出
    $InstallDir=(Get-Content $ManifestPath | grep installdir).trim().split("`t")[2] -replace "`"",""
    $InstallPath="SteamApps\common\${INSTALLDIR}"
    if($InstallPath -eq "SteamApps\common\"){
        echo "$appid InstallDir取得失敗"
        exit
    }

    return $InstallPath
}

# steamapiから2週間以内にプレイしたゲームリスト取得
$RecentlyPlayedList  = (curl "http://api.steampowered.com/IPlayerService/GetRecentlyPlayedGames/v0001/?key=${APIKEY}&steamid=${USERID}&format=json").content
if(! $?){
    echo "SteamAPI取得失敗"
    exit
}


# 最近遊んでないゲームをHDDに移動
echo "■ SSD→HDD"
foreach($Manifests in (Get-ChildItem "${SSDLIB}\steamapps\*acf").Name ){
    $AppId = ($Manifests -replace "appmanifest_","" -replace ".acf","")

    # プレイ済みなら飛ばす
    $RecentlyPlayed=0
    foreach($games in (ConvertFrom-Json $RecentlyPlayedList).response.games ){
        $PlayedAppId=$games.appid
        $Manifestname="appmanifest_${AppId}.acf"

        if($Appid -eq $PlayedAppId){
             $RecentlyPlayed=1
             break
        }
    }
    if($RecentlyPlayed){
        continue
    }

    # パス取得
    $HddInstallPath="${HDDLIB}\$(GetInstallPath $AppId)"
    $SsdInstallPath="${SSDLIB}\$(GetInstallPath $AppId)"

    $ManifestPath="SteamApps\appmanifest_${AppId}.acf"
    $SsdManifestPath="${SSDLIB}\${ManifestPath}"


    # 移動実施
    echo "------------------"
    echo "$HddInstallPath  -> $SsdInstallPath"

    cmd /C rd "${HddInstallPath}"
    robocopy /E "${SsdInstallPath}" "${HddInstallPath}" /LOG+:"${LOGFILE}" /NP 

    cmd /C rd /S /Q "${SsdInstallPath}"
    Remove-Item $SsdManifestPath
}


# 最近遊んだゲームをSSDに移動
echo "■ HDD→SSD"
foreach($games in (ConvertFrom-Json $RecentlyPlayedList).response.games ){
    $Appid=$games.appid

    # パス取得
    $HddInstallPath="${HDDLIB}\$(GetInstallPath $AppId)"
    $SsdInstallPath="${SSDLIB}\$(GetInstallPath $AppId)"

    $ManifestPath="SteamApps\appmanifest_${AppId}.acf"
    $HddManifestPath="${HDDLIB}\${ManifestPath}"
    $SsdManifestPath="${SSDLIB}\${ManifestPath}"


    # 存在してなかったら飛ばす
    if(! (test-path ${HddInstallPath}) ){ continue } 

    # リンク作成済みなら飛ばす
    if( (get-item ${HddInstallPath}).LinkType -eq "Junction" ){ continue  } 


    # 移動実施
    echo "------------------"
    echo "$SsdInstallPath  -> $HddInstallPath"

    robocopy /E "${HddInstallPath}" "${SsdInstallPath}" /LOG+:"${LOGFILE}" /NP
    Copy-Item $HddManifestPath $SsdManifestPath
    cmd /C rd /S /Q "${HddInstallPath}"
    cmd /C mklink /J "${HddInstallPath}" "${SsdInstallPath}"
}

課題とか

久々に起動したゲームはこのスクリプトが走るまでの間は当然HDDに配置されたままになる

→すぐに移動させたかったらスクリプト手動で叩くということで妥協

保持期間を調整できない

APIの対象期間が2週間固定で期間を増やせないのであきらめる

眼球の中にレンズ埋めた話

メガネは素晴らしい製品で、強度の近視と乱視を患っていながら普通に生きてこれたのは完全にこいつのおかげである。
ただ、たまに拭くのが面倒、寝ながら使いづらい、曇る、といった些細な難点もあった。

現状維持で別に不便でも何でもなかったんだけれど、無くて済むなら無いほうがいい気もしたのでなんとなく対処することにした。

方式

視力の矯正手段として主流なのは以下らしい。ちなみに上のほうがリスクが小さい。

・眼鏡
コンタクトレンズ
・オルトケラソロジー
・ICL
・レーシック

コンタクトは付け外しとメンテが面倒過ぎて数年でやめた。
オルトケラソロジーは寝るときにレンズを付けて起床後に外すと矯正効果がそのまま持続する方式だそうだが、付け外しが面倒そうなので却下した。
強度近視だとレーシックは出来ない。補正幅が大きいほど角膜削る量も大きくなるのが理由で、-6Dくらいが限界とのこと。私は-13Dあるので駄目だった。

ICL

ということでICL手術をやった。
これは目を切開して黒目の裏にレンズを組み込む方法(表に入れる方法もある)で、目を削らなくて済む、戻そうと思えば戻せる、長期的に効果が安定、後遺症や再近視化リスクが低、あたりが利点とされているらしい。
雑な理解としては、白内障手術で既存のレンズ抜かずにコンタクトレンズ突っ込むようにした感じに近い。
ネックは値段で、だいたい70万程度かかる。単純比較するもんでもないけど、諭吉一人で眼鏡が買えるのを考えるとかなり割高感はある。

測定

手術実施を決める前に、カウンセリングと検査が行われ、部屋に並んだ謎の機械を1つずつ移動しながらかなりの項目を測定された。10数項目くらいはやった気がする。
検査の結果、片目は眼内の凹凸の構造が若干特殊だったらしく、通常の角度(左右方向)で配置できず90度回転しての配置になるとのことだった。

乱視

眼内レンズには乱視入りのものもあり、通常はそれで近視と乱視が同時に直せる。
ただし、通常と別角度での配置となる点と、また手術後にレンズが眼内で回転する可能性がある点から、乱視入りは非推奨とのことだった。近視は特に角度に影響しないが、乱視には方向があるので、レンズが回転すると矯正の向きが合わず余計に見えなくなったりするらしい。
近視だけ矯正した状態をメガネ(上からレンズ何枚も指すタイプのあれ)をつけてテストしたところ、字も読めるし特に問題無さそうだったので、近視だけのレンズを入れることにした。

手術

契約して前金30万を払うとレンズが手配されて次は手術待ちになる。レンズの在庫があったため、翌週に手術が出来た。
ちなみにレンズの状況によってはここで数週間待たされるらしい。

事前に麻酔投与や検査があるが、手術自体は数十分程度ですぐに終わった。
手術台に固定され、目を閉じられないようにする装置を突っ込まれ、照明を直視させられ、開いてる目に向かって謎の器具が迫ってくる、って流れは何だか拷問めいていてちょっと怖かった。実際は麻酔かかってるので特に痛みはない。

目薬祭

手術は一瞬だったが、その前後でいろいろな目薬を山ほど注す必要がり、そっちのほうが面倒くさかった。
手術3日前から、3種類の目薬を1日各4回と抗生剤の飲み薬が必要で、当日は3種を1時間毎、1週間は3種を1日5回くらい注すことになった。一時的なものとはいえ思ったより手間だった。

さらに、術後一週間は、

  • 洗顔不可
  • 日中は防護ゴーグル着用
  • 寝るとき眼帯着用

が必要になる。
眼の切開箇所は縫合せず自然治癒待ちなので、そこから細菌が入って感染症になることへの対策が主らしい。

また、手術後から1日、1週間、2週間、1か月、3か月、6か月、1年にそれぞれ検診がある。
手術よりその前後のほうがやることが多い。

近視解消

特に問題なく終わり、おかげで無事眼鏡なしでも生きられるようになった。
これまでは常時ほとんど見えない謎の空間だった風呂とか床屋なんかがはっきり見えるのはちょっと新鮮な感じがある。VRゴーグルの付け外しが楽だったり、寝ながら携帯弄りやすかったり、風呂でタブレット使えたりするのも結構便利。

ただ風呂がはっきり見えるのにはマイナスの面もあって、汚れている風呂と汚れていない風呂がこれまでは重ね合わせの状態にあったお陰でたまにやる雑な掃除で済んでいたのに、汚れている風呂にすぐ収束するせいで必要な掃除の頻度が増えたりなんかもした。

やっぱ乱視疲れる

...と無事終わったと思ったが、細かい文字を長時間読むと疲れやすくなってしまった。乱視は近視ほど強くなかったので甘く見ていたのだけれど、やっぱり乱視の矯正も必要だったようだ。結局、乱視はレーシックで矯正した。

数分のテストで見えたからと言って乱視無しにしたのは完全に失敗だった。見えるからといって疲れない訳でもないらしい。
削らないで済むというICL手術のメリットの一つが完全に台無しになってる感はあるが仕方ない。削る量は少ないし、無理に乱視入りにして目の中で回られるとそれも面倒なので、取れた選択肢の中ではマシな方ではあると思う。
なお前房型なら最初から乱視入りのレンズも入れられたらしいが、選んだ医者では基本的に後房型だけだったのでいまさら気にしないことにする。

ICL手術後すぐにレーシック手術を行うことはできないので、6か月検診完了後までの間は、乱視だけ入った眼鏡を新しく作って使う羽目になった。

おわり

元々0.02くらいだった視力が両目とも1.2になった。術後1年くらい経ったが特にドライアイになったり光が眩しすぎるといったこともない。
手術費は正直くっっそ高いが、金さえ払えばステータス異状の回復とかパラメータアップ的なのが永続的に得られると考えればまあそこまで悪くもないかなあとも思った。

スマホリングと音ゲーを両立させたかったハードウェア小細工あれこれ

ファブレット端末の場合、背面に落下防止リング付けておくとかなり使い勝手が良くなるのだけど、音ゲーをやる場合は平置きで固定出来ていないとならないので、背面に凹凸があると邪魔で困る。
どうにか両方いい感じに出来る方法を模索していろいろ無駄な買い物をしたのでその記録。

現状の結果

ナノサクションシートを貼り付けて、その上に粘着シートを除去したリングを着脱する方式に今のところ落ち着いている。見た目はひどい。

f:id:de0:20180403194117j:plain

机に貼りつくので完全に固定できてフリックで吹っ飛んだりしなくなるし、シート側の吸着力をもってリングの着脱が可能になるので、要求に一番マッチしていて都合がよかった。
ナノサクションってのは目に見えない微小な吸盤が無数に並んでいる素材だそうで、平面に吸着するので壁に貼り付けたり出来、壁に貼ると自撮りに便利ですよみたいなのを売りにしてるらしい。(角度変えられないし絶対撮りにくそうな気がするけど)

どうもシート単体では売られておらず、ケースもiPhone用しか無いようなので、適当なiPhone用ケースを買いシートだけ分解して移植した。剥ぎとって両面テープで貼るだけ。
[asin:B07B9RW16R:detail]



形状はリング状のものでバンド状のものでも平面なら何でも行ける。ただし、負荷が端に偏るタイプだと使っているうちに外れるので避ける必要がある。
中央が支点?になっているものであれば、かなりしっかり固定されて意識的に手で外しに行かない限りは外れない。

ちなみに、左上はベッドに備え付けのアームのマグネットスタンドに固定する用のメタルプレート、右上はゲーセンでコナミのゲーム遊ぶ時に財布出さなくて済むようにe-amusument Pass用のFelica基盤を貼っている。
かなり前にsuicaを薬品で溶かして端末に埋め込んでいた事があったが、決済は素直にview suicaカード使ったほうが何かと便利なので今はそっちを使っている。

決済機能不要で単にeパスとして使うだけならfelicaでさえあればよく、ジクロロメタンとか用意しなくてもキーホルダータイプの外装を剥がすだけで簡単に用意できる。

他の選択肢

試したけど今は使ってない方式とか

耐震ジェルを四隅に貼る

一番手軽。
部品が4つになるので取り外しが面倒なのと、接地面積が小さいので固定が完全でないのが欠点。

スポンジゴムシート


干渉しないように背面のリングの出っ張りの部分だけカットしておき、プレイ時に下に置くだけ。
着脱が最も簡単だが、リング以上の厚みと本体以上の面積が要るのでかさばる。

シリコンケース+吸盤リング


吸盤の強度が思ったより低く、外れてほしくない時に外れるのが微妙だった。
また個人的にはケースは余分に大きくなるのがあまり好きではない。

メタルプレート+マグネット+リング


リングをマグネットで背面に固定する方式。固定と着脱のバランスは悪くない。
薄型のネオジム磁石ではリングを固定するだけの磁力が足りなかったので、そこそこの強さのあるマグネットが必要。
車載用のマグネットで実用的な強度になったが、マグネット分の厚みと重さが増えるのが欠点。

その他オプション

上記とは特に関係ないけど他の周辺機器とかについてのあれこれ

マグネット充電

ケーブルの抜き差しをしなくてもマグネットでくっつければ充電されるので便利。

各メーカとも似たような形状のケーブルを出しているが、互換性は無い。
見た目が同じ(に見える)安い別のメーカ製のを買い足したら互いに使えなくて金を無駄にした。1本買ったら同じ型で統一しましょう。

また、接点が円形のケーブルは向きを考慮しなくて便利だが、USB通信は行えず、充電専用になる点には注意。

後付qiプレート


マグネット式にする前に使っていた。
コネクタに挿して背面に充電プレート貼るだけでワイヤレス充電ができるようになる。
充電速度が遅いのと、たまに充電したつもりが充電できてないことがあるのが欠点。


有線接続可能bluetoothイヤホン

bluetoothだと遅延が酷くゲームにならないので有線のイヤホンが欲しいところだが、ゲーム用途以外だと当然線が邪魔になる。
また、ゲーセンの音ゲーでは有線接続のイヤホンが必要になる。有線無線2つ持ち歩くのも微妙な感じなので、両対応だと便利。

ヘッドホン型のものは結構種類があるが、イヤホン型のものは結構少ない。とりあえず以下は試した。

悪くは無いけどケーブルが余るので無線の時に地味に邪魔になる。短めのイヤホン+有線時に延長コードという手はある。
ちなみに、有線イヤホンはカールコードなら使い勝手よくなるのではと思って加工してみたけど、副作用として絡まりやすくなったのでイマイチだった。

  • ATH-BT04NC

ノイズキャンセル付きだがあんまり性能は高くなかった。クリップが壊れて取り回しが悪くなって使うのをやめてしまった。

  • ATH-BT08NC


BT04NCよりはノイズキャンセルはマシになっていたがそこまで高性能というほどでもない。ネックバンド方式なので見た目より結構かさばるのが欠点。
じゃあネックバンド部分の硬めの被覆を剥いで柔らか素材で巻き直せば解決じゃん...と思って加工を試みが失敗して断線した。

  • JPA2


ノイズキャンセルもう別に無くてもいいやという感じになってきたので、適当に安いのを買ったところ意外と悪くなかった。
かなりコンパクトで取り回しは良い。音質はそれなりだが、そもそもそんな大層な耳でもないので意識して比べないと分からない。バッテリ少なめなのが欠点。

有線接続ケーブルのマグネット化


bluetoothイヤホンの有線接続時は、付属のmicrousb-ピンジャックケーブルを接続する。
ケーブルの作りは共通のようで、上記3種とも同じケーブルが相互に使用できた。ちなみにiPod Shuffle用の変換アダプタを適当なUSBケーブルに接続しても使使えた。

microusb接続は耳から一旦外さないと差すのが難しいので、そのまま繋げられるようにこっちもマグネット方式にした。
接続用のケーブルにマグネット用アダプタを付ければOK。ただし、充電専用の円形コネクタは音が出ず使えないので、USB通信が可能なタイプを使用する必要がある。
なお、アダプタと円形コネクタのペアを一組作っておくと、マグネットケーブル形状の変換アダプタとして使える。(滅多に使わないけど)

ちなみにJPA2の場合は首の後ろにコネクタが来るので、接続時に攻殻機動隊ごっこみたいになる。

おわり

いろいろ試したけど結局そこまで便利になったわけではなく、とりあえず一番マシというレベル。
他に何か良さそうなもの見つけたら試したい。

SteamVR音ゲーほぼ全部買ったまとめ

Steamストア上にあったVR音ゲーを把握できた範囲で片っ端から買った。
ほとんど前情報が無く自力で適当に買いあさるしかなかったので、かなり人柱めいたことになった。
多分他に誰もそんな不毛なことやってないだろうと思うので、今後何かの参考になればと思い一言感想をまとめて書いておきます。

おすすめ

Airtone



叩く/トリガー引く/長押しで奥から飛んでくるノーツを捌いていく一番音ゲーっぽい音ゲー。とりあえずこれ買っとけば間違いない。
ただデカい空中タッチパネルに持ってきただけみたいなVR音ゲーも多い中、一通りVR向けに最適化されていて完成度が段違いに高い。
曲は25曲収録されておりどれも出来が良い。ストーリーを進めるにつれ部屋が豪華になり曲も増えていく。
プレイ感覚はmaimaiとグルコスとSDVXの中間あたりに近いかもしれない。結構な運動量が要るのでこのゲームのせいでヘッドセットが若干汗臭くなった。
大体ヌルゲーばかりのVR音ゲーの中、簡単な譜面からちゃんと難しい譜面まであり歯ごたえもあるのも良い。全曲フルコンを達成するまで相当やりこみが必要だった。
DLCを検討している的なことを言っていたので期待しているが、いつになるのかは不明。

Soundboxing



曲に合わせてシャドーボクシングするゲーム。流れてくる玉を殴るだけの単純なシステムで見た目も地味な方だが、見た目よりかなり面白い。
youtubeの動画をベースにユーザが譜面を作成する方式を取っているのが特徴。曲はどんどん追加され続けており毎日何かしら増えている。海外ゲーだが洋楽ばかりというわけでもなく、アクティブな譜面作者たちの趣味なのか日本の曲もかなりある。
画面上のロボが譜面収録時の作者の動きを再現しており、そのノリノリで動く様子を眺めるだけでも結構楽しい。出来のよい譜面だとシャドーボクシングというより振り付けに近い動きになっていたりする。
このゲームで22kg痩せたなんて人が出てきてちょっとした話題になったりもした。

Rez Infinite



ゲーム自体はどちらかというとSTG寄り。流れてくる敵をロックオンレーザで撃ち落していく操作に沿って、SEや光がBGMとシンクロして展開されていく。
もともとPS2版にあった5+1ステージに加え、VR向けにもう1ステージ追加されている。全体のボリュームはそんなに多くないし、やることも狙って撃つだけとかなりシンプルなんだけど、とにかく音と演出がなんだか気持ちいいので何度もやりたくなるゲーム。
モーションコントローラがレーザのエイミング操作となかなかの相性で、PS2のスティックより遥かに操作性が良くなっているのもうれしい。
続編のChild of EdenもVR化して欲しいところ。


悪くない

ここから、多少の欠点もあるがそれなりに面白かったゲーム。

Thumper



ノンブレーキで高速移動するメタリックな昆虫をリズムに合わせてやってくる急カーブや障害物に合わせて操作していく、レースゲーっぽい音ゲー
操作は普通のゲームパッドで、VR要素は視界のみ。VR環境なしでもモニタでプレイ可能。
スピード感あるシステムと演出でなかなか面白いんだけど、終盤のステージはリズムが分かりづらかったり高速過ぎたりしてだんだん音ゲーから覚えゲーに変わっていくのだけが難点。最終面に至っては無茶苦茶なソフランがやってくる。途中まではかなり良ゲー。

Beats Fever



飛んでくるノーツを手で拾っていく比較的オーソドックスなタイプ。
VR音ゲーの元祖Audiosheld(後述)の後追いだが、譜面がちゃんと手動で作られており、この系統のゲームの中ではかなり出来が良い部類に入る。
ただAudiosheld系共通の欠点として、着弾位置の判定ラインにあらかじめ手を置いて待っていると拾えてしまうので、意識して先行入力を避けて体を動かしていかないと、だんだんリズムと関係ない感じのプレイになる。

Drums Hero



DrummaniaVR。本家より難易度は控えめで、難しくてもlv5.xx台あるかないかくらい。
VRだから仕方ないとはいえ、ペダルが無い、叩いた時の跳ね返りが無い、スティックとしてはコントローラが重いなどの違和感はあり、ゲーセンに行けば出来てしまう本家と比べてしまうとやっぱり見劣りはする。
また、1曲につき最大3つの難易度が用意されているが、一番簡単なのから順にプレイして一段階上の譜面をアンロックしていく必要があるのも良くない。音ゲーでそういうことするのはただの水増しであり作業の強要でしか無いのでやめてほしい。
VRの限界をいろいろと感じてしまうが、ちゃんとVRドラムゲーとして完成されてはいるのでそれなりに楽しめるゲームではある。
ちなみに類似品としてはDrummer Talentってのもあるようだが評価が芳しくないので試してない。

Happy Drummer



太古の部族っぽい世界でトライバルな曲に合わせて太鼓を叩くゲーム。太鼓の達人ミライダガッキの中間みたいな感じ。
操作は、片手で叩く、両手で叩く、縁を叩く(昼のみ)の三種類。両手で叩くのは意外と珍しい操作かもしれない。皮のドラムと骨/石のドラムの2つのドラムセットに囲まれており、曲の途中の振り向きポイントで楽器と音が切り替わる。使うドラムの違う夜モードと昼モードがあり、それぞれ4曲ずつ各3難易度収録。
リズムに合わせてドコドコ鳴らすのは単純ながら楽しい。太古の世界観に合わせたインタフェースや演出もちょっと凝っている。
難点は縁を叩く操作があまり楽しくないこと。太鼓の達人でいうところの"カッ"のつもりが、VRゆえに縁を突き抜けるので、"カドン"とか"ドカッ"になりがち。反動が無いのはドラム系ゲーム共通の課題で、他にも"ドン"のつもりが"ドドン"に化けたりもする。

BOXVR


音ゲーっぽい要素を取り入れたボクササイズゲーム。パンチ/フック/アッパー/ガード/回避を曲に合わせて行う。
メインが音ゲーでなく運動に寄せてある作りなので、曲の途中に所々10秒くらいの休憩ゾーンが入ったり、選曲が無く曲はトレーニングメニューに応じて自動で複数曲決まったり、1回のプレイ時間が5~40分くらいと長めだったり、4つ打ちより細かいリズムでは降ってこなかったりと、色々と普通の音ゲーらしくないシステムになっている。
求められる操作の種類は多いがどれもあまり違和感なく噛み合っていて、VRとかなり相性が良い入力方法にまとまっていると思う。(フック/アッパー判定が若干シビアな気もするけど)
音ゲーとしてはSoundboxingと比較してしまうと見劣りはするが全体の出来は結構良い。
また、mp3から譜面自動生成する機能があとから増えた。曲を全部解析しBPM計算するので1分くらい待たされるのが致命的だが、BPM通りの4つ打ち以外は来ない仕様なおかげで、この手の機能では珍しくあまり譜面が破綻しない。

Show Must Go On



全く操作性違う複数の楽器が一曲中で何度も入れ替わっていくゲーム。
操作はドラム、鉄琴、ハンマーで泡を潰す、指定箇所にサイリウム振るの4種。途中でどんどんインタフェース自体変わるのはVRだから出来るシステムではある。
曲数もかなり多めでジャンルも幅広く揃っている。
そもそも操作変わる必要あるのかどうかってのもあるけど、このおかげで全体的に簡単ながらそこまで退屈はしないので有りっちゃ有りだと思う。
ただ、どれも棒で空間上の物を叩く系の操作で、叩いても無反動で空間をすり抜けるのがあまりしっくりこない(これは仕様上どうしようもないけど)のが難点。


mcosu



応援団(DSの音ゲー)のシミュレータなゲーム、osu!のVR版。マウスの代わりにコントローラで空間上のノートを直接叩くようになった以外はそのまま。
元のゲームが完成されているのでそれなりに遊べるが、結局非VRで普通にやったほうがいいやという感じにもなる。

惜しい

ここからは、あと一歩のとこで今一つの出来になってしまっているゲーム。この辺からは下まで読み飛ばしてもよい。
以降youtube動画は省略するので気になったらSteamリンク内を参照。

Audioshield


多分最初のVR音ゲー。指定したmp3に合わせて飛んでくるボールを両手の盾でガードする。
BeatsFeverの所にも書いたけど、意識して動いていかないと待ち構えるだけになるのでリズムに合わせて叩いてる感じが薄くなる。また、譜面自動生成には限界があるのか、降ってくるノーツもあまりタイミングが合っていない。
先駆者としては偉大だけど、いろいろ選択肢が増えてきた現在、好きな曲で遊べるという点以外でこれを選ぶ必要は薄そう。

Playthings


音ゲーだと思って買ったら、ハンバーガーやドーナツなどの食べ物を棒で叩くと音が鳴るという楽器アプリだった。
その中の1つとして、曲に合わせて食べ物が流れてくるステージがあり、音ゲーパートはそれ1曲のみ。ちなみに叩くとちゃんと音が鳴る。
ただしボリュームは皆無で、音ゲーに辿り着くまでの別ステージも含め5分でエンディングに辿り着けてしまう。デモムービーだと幼女先輩がプレイしてたりするしゲームというか音の出るおもちゃみたいな位置付けっぽい。
なおそれなりに広い部屋がないとステージ移動時に現実の壁に激突して詰むので注意。

AudioBeats


空中の2x2の4パネルを2本のスティックで叩く。ドラム系のインタフェースながら長押しやフリックがあったりするのはVRでしか出来ないシステムかもしれない。
曲も音ゲー映えする感じのオリジナル曲が揃っている。ラインナップの方向性としてはDJMAX系統か。
ただ、上のパネルだけ叩いたつもりが突き抜けて下も叩いてしまったり、叩く場所と判定が遠かったりと、操作性に違和感があって納得の行かないコンボの切れ方が頻発する。別に譜面もドラムパート拾ってるわけでもないし、せめて棒じゃなくて手で拾わせて欲しい。あと一歩のところで非常にもったいないゲーム。

Into the Rhythm


ドラムゲーだが、叩いた時に出る音が各レーンで固定されておらずコロコロ変わる。ドラム系特有の同一レーンに縦連打が降ってくるような配置が他レーンへの分散で避けられていて、場合によっては全レーン同じ音が鳴ったりもする。
見た目も操作もドラムなのに、鳴る音は変にばら撒かれていて普通のドラムの挙動じゃないので若干気持ち悪く、ある程度降ってきた際に何叩いてるのかも分かり辛い。
後半の2曲はかなり難易度は高いが、無反応が頻発することと、ドラム操作でIIDXポップンみたいな譜面を無理やりやらされてる感じが引っかかる。システムのしっくりこなさから来るタイプの難しさなせいで、頑張って詰めたりしようという気は起きない。


微妙

おすすめ出来ないゲーム。やめとけ。

Starship Disco


リズムに合わせて敵の戦闘機を撃ち落とすゲーム。やってることは実質ミュージックガンガン
譜面が曲とズレまくっていたり、1ミスごとに譜面止まったり(一応オプションで切れる)と根本的に残念な出来だった。
ミュージックガンガンほどVRとの相性が良さそうな既存音ゲーは他に無く、まともに作るだけで成功が約束されているというのにかなり勿体ない。ちゃんとしたミューガンVRの登場に期待。

Music Inside


jubeatを5x2にした感じのパネルを2本のスティックで叩くゲーム。
mp3から譜面を自動生成するが出来が悪い。左右どちらで叩くかの指定のあるノーツもただの嫌がらせにしかなっていない。おまけに見づらいときた。

vRhythm


単発ノートだけ降ってくるミライダガッキ
収録曲が8割くらいbemaniシリーズ系のサントラぶっこ抜きで完全に真っ黒だった。
Steamに一応報告したが今どうなってるのかは知らない。こういうのって審査で弾くの難しそうだね。

CyberClub-2077


Osuっぽいゲーム。ベタ移植のmcosuとは違いVR向けのインタフェースに整ってはいるが良い点はそれだけ。判定が変にシビアでストレスにしかならない。
曲はクラシック系のリミックスが大量に入っているが、Ryu☆ remixとかDM Ashura mixとかプラウダ高校バージョンとかであからさまに他所から勝手に持ってきている。原曲がクラシックなら良いってことはないのでは...

Audio Arena


全方位2Dシュー+音ゲー
ポインタで自機を移動し、4つ打ちのタイミングに合わせて武器アイコンに触れると攻撃できる。
システムが何も噛み合って無くてどっちのジャンルとしても全然面白くない。

Holodance


これもAudioshieldっぽいゲーム。曲もグラフィックも何もかもが全体的にしょぼい。
mcosuがリリースされた今、OSUの譜面をロードできるという数少ない売りも失われた。

Sonic Hunter


AudioShieldの着弾地点を固定位置にしたゲーム。
曲は自動生成でなくクラシック曲になっているが、曲の出来が信じられないほどチープでびっくりする。

Song Samurai


AudioShieldの盾を刀にしたバージョン。本家より譜面の出来がさらに悪い。
他にも盾をグローブにしたBeatBoxerとか、切る方向が付加されたBeat Ninjaなんてゲームもあるようだが、流石にこの手のはもう買わないと決めた。

Polynomial 2


Rezっぽいのを期待したが、特に曲との同期もない移動と射撃の機能が付いただけのほぼビジュアライザだった。


環境がなくて試せてない

Redfoot Bluefoot Dancing

DDR。Vive Trackerが必要。

Rock Band VR

ギター。専用コントローラが必要。

Dashy Square VR

起動時に100%強制終了してうちの環境では遊べなかった。

出てない

Rhythmica

11月上旬のはずだったが未リリース

Quantized

2016/11/30リリース予定(2017ではない)のまま放置されている

Musical_Range

2017発売予定だったのがいつの間にか期日が消され単に発売予定になっている

SEIYA

来年出るらしい

D3VINER

公式Twitterのフォロワーが9人しかいなくて心配になる。V-REVOLUTIONなるゲーセン向けのプラットフォームで出すようだけど、2店舗しかなくてさらに心配になる。

カスタムオーダーメイド3D2

キャラエディットに特化している3Dエロゲの続編。未発売だが体験版は現時点でもプレイ可能。なぜか音ゲーパートが追加された。
osuとかシンクロニカみたいな見た目だがノートの出現位置は全く関係なく、タイミングに合わせてボタン1つ押すだけのかんたんゲームだった。ゲージを使うとしばらくオートプレイしてくれるおまけ付き。滅茶苦茶簡単だし、VRなのは背景で踊ってくれる部分のみだけど、判定が盛大に後ろにズレてる以外はそこそこまともだった。
作業でしかない育成要素、単調なゲーム進行、薄いシナリオ、結構強気価格なDLC&アペンド商法、などなど大幅減点対象な無数の駄目ポイントを持ちながら、キャラメイクだけで2兆点くらい稼いで減点を帳消しにしてくるタイプのゲームなので、音ゲーの出来はどうでも良いです。


感想とか

譜面自動生成は金の無駄

生成される譜面のクオリティが低すぎる。今後生成方法に何かしらのブレイクスルーが無い限りは期待できなさそう。
一番まともだったのはBOXVRだけど、単に譜面の解像度が低すぎて破綻に気付きづらいだけでもある。プレイ毎に長時間待たされるのも良くない。(こっちは事前にバックグラウンドでやってくれれば解決しそうだけど)
現状は、手作りの譜面には機械にはない温かみがうんぬんとか言いたくなるレベル。

AudioSheild多すぎ

後発で劣化コピーを出すことに何か疑問感じないんだろうか。真似するならAudioSheldばかりじゃなくて他の既存音ゲー真似すればいいのに。
ミューガン、PPP、ダンエボ、ブラボーミュージック、サンバdeアミーゴあたりはVRとかなり相性良さそうに思う。

マイナーな当たりはほとんど無い

それなりに売れていたり知名度のあるものはある程度それなりに面白いものであり、やっぱり無理にマイナーなのを漁っても出て来るのは大体クソゲーだということが改めて分かった。
そもそもSteam自体そういうゴミ山からの宝探しみたいな傾向あるけど、VRゲー(音ゲー限らず)のクソゲー率は非VRゲーより遥かに高い。マイナーゲー漁りは得るものが少なくおすすめできない。

キー音無しばっかり

叩くと曲に合った音が出るのは音ゲーとして結構重要な要素だと思うんだけど、そのようなゲームはほぼ皆無に近い。
音ゲーがサブ要素な感じのRezとThumper、音ゲーがおまけ的扱いのPlaythingを除くと、Happy Drums、Drums Hero、Into the Rhythmくらいしかない。ドラムばっかりだ。
現状ゲーセンにある音ゲーも音がちゃんと出る機種のほうがいつの間にか少数派になりつつあるけど、VRゲーこそしっかり音出して欲しいなあと思う。

ユーザ少ない

いくつかのゲームは曲ごとのオンラインスコアランキングが搭載されており、なんとなくのユーザ数が見える。
プレイ人数が2桁のものがだいたいで、3桁行っているものはかなり少ない。大抵はランク一桁には入れてしまうし、完璧と程遠いプレイでも気付いたら全一取ってたみたいなことも結構ある。確認出来る中で一番人の多いゲームであるSoundBoxingで一番プレイ回数(人数ではない)の多い曲でも6600しかない。
専用機より分母の少ないPCゲーマーの中の、ただでさえ人数の限られるVRゲープレイヤーの中の、VRでは非主流ジャンルな音ゲーのプレイヤーとなると相当狭いのだと思う。
あまり正しい比較対象ではないけど、IIDXのシングル段位取得者が7万くらい、デレステのアクティブユーザが50万くらいだそうなので桁があまりにも違う。
この状況でいろいろなゲームが出て来るのは大変ありがたいことだけどちゃんと採算取れてるんだろうか。

ドラム系インタフェースは難ある

物を介さずに直接殴るようなタイプでは、コントローラの振動もあり感覚との齟齬は小さいのだけれど、存在しない物体で存在しない物体を叩くのには結構違和感がある。
長い棒を持っている実感がない点と、物体との接触時に無反動ですり抜ける点がしっくりこないんだと思う。これは音ゲーに限らず剣で斬るようなタイプのVRゲー全般でも感じる。
無反動なのに加え叩く箇所はほぼ見ないで操作するという事情もあり、脳内では正確に叩いてるつもりでも実際には徐々にズレていったりもする。 出来ているつもりでミスになってしまうことは音ゲーでは最悪で、たまに起きるだけでも物凄いストレスになる。
現状どれもこの点を十分に回避出来ているとは言い難く、クソメンテ筐体でのプレイに通じるフラストレーションの蓄積があってよくない。

全体的に簡単

難しい譜面を頑張って倒すようなゲームはほぼ無い。
Airtoneはいい線行ってはいるけど、それでもアーケードの音ゲーに比べるとかなり簡単だし、すでに一部のトリガー配置にただの嫌がらせみたいな所はある。
Vive棒で空間軸をベースにした操作でプレイする以上は、ボタン操作を絡ませない限り上限をかなり下げざるを得ない印象。ただ、ボタンに寄りすぎてもVRの意味が薄れそうだし、無理に難しくしても誤反応を誘発してイラつくだけになりそうでもある。特にInto the Rhythmがそれで、操作性が譜面に追いついておらず理不尽さしか感じられない。

プレイ感覚大事
  • 曲に乗りながら体を動かすこと自体を楽しめるか
  • 演出面が気持ち良い出来になっているか

の2点がVR音ゲーには重要っぽい。あまりスコアとかクリアは気にしないで済むような作りになっていたほうが良さそうに思う。
このどちらかさえクリアしていればそれなりに面白いゲームになっていた。前者はSoundBoxing、後者はRezやThumper。Airtoneは両方。


ハズレもかなり多いがそれを差し引いても大分遊べるようにはなってきた。
Airtone、Soundboxing、RezだけでもVive買ってよかったと思える。まだまだ可能性は感じるので今後さらにいろいろ出てくることに期待したい。

他にいい感じのゲームあれば教えてください。