Slide 1

Slide 1 text

トラッキングできたら アバターを動かしたい! バーチャルモーションキャプチャー、VMCProtocol、VMT、DVRSDK あきら@VMC 2021/06/11

Slide 2

Slide 2 text

あきら DMM VR lab所属 チーフエンジニア/コミュニティマネージャー バーチャルモーションキャプチャーの作者です Twitter: @sh_akira GitHub: sh-akira https://akira.works/

Slide 3

Slide 3 text

バーチャルモーションキャプ チャー VirtualMotionCapture 3

Slide 4

Slide 4 text

バーチャルモーションキャプチャーとはとは 4

Slide 5

Slide 5 text

バーチャルモーションキャプチャーとは 5 ➢ トラッキングしてVRMアバターを動かせるアプリ 
 ➢ 改良を続けているキャリブレーション 
 ➢ VRゲームと同時起動可能
 ➢ コントローラーやトラッカーを好きな部位に自由に割り当て可能 
 ➢ コントローラー/キーボード/MIDIのボタンに自由にキー設定可能 
 ➢ OSCでモーションデータの送受信が可能(VMCProtocol) 
 ➢ MR合成に対応
 ➢ 通称 ばもきゃ
 ➢ https://vmc.info/
 オープンソースで全てのソースコードを公開中


Slide 6

Slide 6 text

動きはSteamVR+Final IKがベース 6 ➢ SteamVR Pluginの機能には依存せずに直接OpenVRを叩いている
 ➢ OpenVRの初期化を自分で書くことで同時起動をしている
 ➢ キャリブレーション処理をこだわってFinal IKに渡す


Slide 7

Slide 7 text

キャリブレーションは手の位置を最優先 7 詳細は歌舞伎座.tech#15で話した「バーチャルモーションキャプチャーとは」の 資料を参照してください https://akira.fanbox.cc/posts/168685

Slide 8

Slide 8 text

同時起動はOpenVRをOverlayモードで初期化 8 選べる種別:
 ● Scene : 通常のVRゲーム (SteamVRの初期化あり/複数起動不可) 
 ● Overlay : オーバーレイアプリ (SteamVRの初期化あり/複数起動可) 
 ● Background : (SteamVRの初期化なし/複数起動可/SteamVRがいないとエラー) 
 ● Utility : セットアップ用 (ハードウェアが無くても起動する/複数起動?) 
 →ばもきゃは同時起動したいしSteamVRが必須なのでOverlayを選択 
 
 Scene以外だと通常の方法では3DモデルをHMDに表示できない。 
 SteamVRダッシュボードと同じように2Dのパネルをオーバーレイ表示できる。 


Slide 9

Slide 9 text

つまり・・・ 9 ➢ ばもきゃはどんな(Steam)VRのゲームとも同時起動できる
 ➢ 良い感じのキャリブレーションで良い感じにアバターが動く
 ➢ とりあえずアバター動かすならこれ
 
 
 せっかく良い感じのモーションが取れてるなら他でも使いたい→  

Slide 10

Slide 10 text

VMCProtocol Virtual Motion Capture Protocol 10

Slide 11

Slide 11 text

Virtual Motion Capture Protocol (VMCProtocol)とは 11 ➢ バーチャルモーションキャプチャーのあらゆる情報を
 送受信するためのプロトコルとして生まれました。
 ➢ UDP(OSC)とVRMを前提に、シンプルな数値・文字列の送受信のみで構 成されています。
 ➢ 高度な知識が必要なアバター制御やVR機器の取り扱いを
 ばもきゃ等に任せ、利用者は受信ライブラリを使うだけで
 とてもシンプルにアバター撮影環境を構築できます。
 ➢ https://protocol.vmc.info/  メインメンテナ:gpsnmeajp(@Seg_Faul) 


Slide 12

Slide 12 text

VMCProtocol 受信ライブラリ 12 Unity
 
 Unreal Engine
 EVMC4U
 VMC4UE
 @Seg_Faul
 @HAL9_HARUKU


Slide 13

Slide 13 text

EVMC4Uとはとは 13

Slide 14

Slide 14 text

14 広がるVMCProtocolの輪 Performer(モーション送信) バーチャルモーションキャプチャー waidayo 360KinectGum ThreeDPoseTracker/TDPT VSeeFace Marionette(モーション受信) EVMC4U VMC4UE Virtual Streamer 360 だれでもVsinger Collaboll Oredayo4V/4M VSeeFace VMC-Websocket-OBS ゆかりねっとコネクター VMCProtocolModelViewer VMCProtocolRotationCamera Assistant(拡張情報送信) waidayo QuestOSCTransformSender Simple Motion Tracker VMCOculus Sknuckle VMCSaberTraining vmc2bvh パイロットクロス VMCAvatar-BS VMCProtocolMonitor VMCbroadcaster VMCProtocolRefrector Remote Marionette

Slide 15

Slide 15 text

15 構成例1 waidayo (iPhoneでフェイストラッキング) Sknuckle (Noitom Hi5でハンドトラッキング) バーチャルモーションキャプチャー (トラッカーでフルボディトラッキング) EVMC4U (Unityでオリジナルの配信環境を作る) デバイス VMCProtocol

Slide 16

Slide 16 text

16 構成例2 ThreeDPoseTracker(Win) / TDPT(iOS) (カメラの映像で全身トラッキング) バーチャルモーションキャプチャー (仮想トラッカーで受け取る) VSeeFace (ボーン情報で受け取る) デバイス VMCProtocol Oredayo4V(Win) / 4M(Win, Mac, Linux) (ボーン情報で受け取る)

Slide 17

Slide 17 text

構成例3 ばもきゃ (フルトラ) デバイス VMCProtocol EVMC4U (遠隔地とコラボする)   #解釈不一致 / memex インターネット経由

Slide 18

Slide 18 text

つまり・・・ 18 ➢ VMCProtocolはアバターを動かしたいときのあらゆる情報を
 送受信できるプロトコル
 ➢ 多種多様な対応アプリを組み合わせてあらゆるスタイルに適応
 ➢ VMCProtocolに対応すれば既存の資産を活かせる
 
 せっかくトラッキングが出来てるならSteamVRで動かしたい→  

Slide 19

Slide 19 text

VMT Virtual Motion Tracker 19

Slide 20

Slide 20 text

VMT (Virtual Motion Tracker)とは 20 ➢ シンプルなOpenVR 仮想トラッカードライバ
 ➢ UDP(OSC)で姿勢を受け取り、トラッカーとして SteamVR上で利用できます。
 ➢ 難易度の高いVRトラッキングデバイスの自作をと ても簡単に行えるようになります。
 
 ➢ https://github.com/gpsnmeajp/VirtualMotionTracker 
 作者:gpsnmeajp(@Seg_Faul)
 


Slide 21

Slide 21 text

どのくらい簡単か 21 OSCで、
 /VMT/Room/Unityに
 トラッカー番号と
 PosとRot送るだけです。


Slide 22

Slide 22 text

使われているアプリ 22 KawaiiSitter
 通常の3点トラッキングで可愛く座ることが できるアプリ。腰と足の位置を自動計算し てVMTで仮想的に動かす
 MocapForAll
 普通のWebカメラを複数使い簡易なモー ションキャプチャをするアプリ。
 Unity/UEで受信するサンプルもある


Slide 23

Slide 23 text

つまり・・・ 23 ➢ VMTは簡単に使えるSteamVRの仮想トラッカー
 ➢ 難しいトラッカードライバの事を考える必要がなくなる
 ➢ 誰でもSteamVR対応のトラッカーデバイスが作れちゃう
 
 
 トラッカーが動いたらトラッカーを使うアプリも作りたい→  

Slide 24

Slide 24 text

DVRSDK DMM VR Connect SDK 24

Slide 25

Slide 25 text

DVRSDK(DMM VR Connect SDK)とはとは 25

Slide 26

Slide 26 text

DVRSDK (DMM VR Connect SDK)とは 26 ➢ DMM VR ConnectをUnityで使えるSDK
 ➢ 誰でもつかえて無料配布中
 ➢ サンプル開けばすぐに使える簡単設計
 ➢ VRのアプリ作りたいときに困るあれこれが
 詰まったSDKです。
 
 ➢ https://devs.connect.vrlab.dmm.com/ 
 


Slide 27

Slide 27 text

27 DVRSDKのコンポーネントたち DVRAuth Connectの認証 ユーザーデータの取得 アバターデータの取得 他者のアバターの取得も可能 DVRStreaming Unityから直接RTMP配信 YouTube/Twitch等に配信可能 Oculus Quest/Quest2対応 Windowsも対応 DVRCamera 第三者視点カメラ カメラワーク オートシーケンス 複数カメラの制御 DVRAvatar SteamVRのトラッカー処理 VRMの様々な制御 キャリブレーション 表情や指の制御、自動まばたき

Slide 28

Slide 28 text

トラッカーでアバター動かすには難しいこといっぱい 28 ➢ まずSteamVRでトラッカーちゃんと扱うのが難しい
 ➢ ボタンの取得とかSkeletal Inputも大変
 ➢ アバターは人によって全然大きさも身体の比率も違う
 ➢ キャリブレーションが大変
 ➢ Final IKを理解するのも難しい
 ➢ 表情の実装も必要だしリップシンクが欲しいし合成が必要
 ➢ そもそもアバターのファイルの管理も要るし・・・
 


Slide 29

Slide 29 text

29 SteamVRむずかしいんですけど SteamVR 1.x →トラッカーはIndex番号で管理する SteamVR 2.x →トラッカーは役割(ロール)で管理する (ボタンはBindingして・・・指はSkeletalで・・・) 例えば2.xで腰(Waist)にトラッカーを割り当てて使いたいときは PoseのActionをSteamVR_Inputに定義して、SteamVRでそのActionを バインディングして、それをデフォルトバインディングとしてアプリに入れ て、Actionのフルパスを取得して、Actionのハンドルを取得して、 InputSourceハンドルを取得して、ActionとInputSourceからPoseを取得 して、生のMatrixからUnity座標を取得します。

Slide 30

Slide 30 text

30 もちろん大丈夫です 3点(頭と両手)~11点(頭、両手、両ひじ、胸、腰、両ひざ、両足)を トラッカー3つまではVRChat方式でロール関係なく自動で、 それ以上はロールを参考に自動で割り当てます

Slide 31

Slide 31 text

31 キャリブレーションもむずかしいんですけど! Final IKで出来ると聞いてやってみると超いろんなことが起きる

Slide 32

Slide 32 text

32 なんと DVRSDKには ソースコードごと 全て入ってます すべてを詰め込んだキャリブレーション処理もDVRSDKを入れれば 誰でもご利用可能です! (さらに指のSkeletal Inputとスティックでの表情変更も入ってます)

Slide 33

Slide 33 text

33 身長だけで自動計算をするキャリブレーション 詳細はDMM meetup #27で話した「意のままに身体を動かすキャリブレーション」の 資料を参照してください https://dmm.connpass.com/event/208446/

Slide 34

Slide 34 text

つまり・・・ 34 ➢ DVRSDKは様々なアバターの処理を詰め込んだSDK
 ➢ 難しいアバターの動かし方を考える必要がなくなる
 ➢ 何かアプリを作るとき最初に入れておくととても楽!
 
 
 


Slide 35

Slide 35 text

35 まとめ バーチャルモーションキャプチャー とりあえずアバター動かした くなったらこれ!沢山の連携 ツールでやりたいことがきっ と見つかります。 vmc.info VMCProtocol モーションを送受信したくなった らこれ!多彩なビューアーも 揃っているので色々な拡張と組 み合わせられます。 protocol.vmc.info VMT SteamVRの仮想トラッカーが 作りたくなったらこれ!超簡 単に仮想トラッカーデバイス が使えてしまいます。 github.com/gpsnmeajp/VirtualMotionTracker DVRSDK アプリにアバター入れたくなったら これ!難しい事無しで入れるだけ で動きます。VRアプリ開発するとき は最初に入れよう。 devs.connect.vrlab.dmm.com