Slide 1

Slide 1 text

フィットネスバイクで VR空間を乗り回す話 ざわざわ

Slide 2

Slide 2 text

自己紹介 ざわざわです ● 新卒Unity(VR)エンジニア ● 大学院時代にVRの開発を始める ○ ビデオシースルーが大好き ○ 歩きVRの研究をしていました ● 好きな技術分野はShaderです ○ 特にジオメトリシェーダが好きです

Slide 3

Slide 3 text

今回のLTの発端 今とっても運動不足

Slide 4

Slide 4 text

そこで 家でも運動できるようにフィットネスバイクを買おう

Slide 5

Slide 5 text

そこで 家でも運動できるようにフィットネスバイクを買おう →買った

Slide 6

Slide 6 text

なんかオーディオ端子がついてるぞ

Slide 7

Slide 7 text

なんかオーディオ端子がついてるぞ →これにESP32っていう基盤くっつ けてArduino入門してみよう

Slide 8

Slide 8 text

なんかオーディオ端子がついてるぞ →これにESP32っていう基盤くっつ けてArduino入門してみよう →WifiとかBluetoothとかで速度情 報を飛ばせばUnityとかVRでおもし ろいことできるんじゃね??

Slide 9

Slide 9 text

完全なる見切り発車

Slide 10

Slide 10 text

ESP32をフィットネスバイクに取付 初めてのLチカ! 初めてのはんだ付け! ArduinoOSCというライブラリで1回転にかかった時間をUnityに送信(uOSCで受信)

Slide 11

Slide 11 text

そうだ、VRChatに持ち込んで空中サイクリングしてみよう と思うVRChatプレイ時間一桁のど素人であった

Slide 12

Slide 12 text

なんでVRChatなのか ● ワールドというコンテンツが豊富 ○ いろんなワールドを乗り回したい ○ →ワールドに仕込むギミック以外の方法がいい ● SteamVRというプラットフォーム準拠の機能を勉強したい ○ 可能であればSteamVRの他のアプリでも使えるようにしたい ○ →アバターに仕込むコライダーとかのハック以外の方法がいい というわがままを言った結果...

Slide 13

Slide 13 text

SpaceDragとVMTとTrackingOverrides を組み合わせることに

Slide 14

Slide 14 text

SpaceDragとは ● SteamVRのOVRAdvancedSettingsという無料アプリのいち機能 ● コントローラで空間を掴んでドラッグすることによりプレイヤーの位置を移 動することができる ● SteamVRのアプリで空中浮遊ができる(できないやつもあるみたい) しかし ● 自由な空中サイクリングができない(腕の長さ領域に制約) そこで ● 腕が無限に伸ばせるようにすればよいのでは?

Slide 15

Slide 15 text

VMTとは ● バーチャルモーショントラッカー ● SteamVRに仮想トラッカーを登録できる ● uOSCから自身のposとrotを送って仮想トラッカーに反映

Slide 16

Slide 16 text

TrackingOverridesとは ● OpenVR(HMDやVRデバイスを操作するAPI群やSDK)の機能の一つ ● HMDやコントローラ、トラッカーの位置を上書きする ● steamvr.vrsettings(json)を編集する

Slide 17

Slide 17 text

SpaceDragとVMTとTrackingOverrides を組み合わせることで 仮想トラッカーの位置を変えながらSpaceDragを行える! 空中サイクリングが可能となる! ただし片手はあきらめることになる!

Slide 18

Slide 18 text

簡易的な操作パネルも用意 ● ± position.y ● ± pitch ● ± speedの係数 ● EasyOpenVROverlayForUnity というスクリプトをお借りしました

Slide 19

Slide 19 text

とりあえずSteam VR Homeで動作 デモ動画

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

セルフフィードバック ● 酔いやすい性質だけど、特に酔わなかった ○ 行為と映像が一致しているため? ○ HMD追従のUIがあるからかも ● UIで高さとか傾きを変えるという体験の質が悪かった ○ なんか3D空間が安っぽく感じてしまった ○ 安易に高所に行けてしまったから? そこで ● 頑張って漕ぐと上向きベクトル加算🚀 ● さぼると下向きベクトル加算😖 デモ動画

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

VRChatでも動かしてみた 一瞬だけ動く でも、ESP32でOSC接続をしようとす るとVRChatがDisconnectedですよっ て言われてしまう。これはポート番 号とか接続の問題.....?? デモ動画

Slide 24

Slide 24 text

まとめ ● フィットネスバイクをESP32につなげてUnityで制御をつくり、VR空間で空中 サイクリングをできるようにしてみたよ ● SpaceDragとVMTとTrackingOverridesを使ったよ(片手は失うけどね) ● 今更だけどOpenVRのAPIでできることが多いことがわかったよ