Upgrade to Pro — share decks privately, control downloads, hide ads and more …

トラッキングできたら アバターを動かしたい!

トラッキングできたら アバターを動かしたい!

https://connpass.com/event/214152/
トラッキング技術勉強会の登壇資料です

091c8449decb2f3549c695b5f903865a?s=128

sh_akira

June 11, 2021
Tweet

Transcript

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

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

    https://akira.works/
  3. バーチャルモーションキャプ チャー VirtualMotionCapture 3

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

  5. バーチャルモーションキャプチャーとは 5 ➢ トラッキングしてVRMアバターを動かせるアプリ 
 ➢ 改良を続けているキャリブレーション 
 ➢ VRゲームと同時起動可能


    ➢ コントローラーやトラッカーを好きな部位に自由に割り当て可能 
 ➢ コントローラー/キーボード/MIDIのボタンに自由にキー設定可能 
 ➢ OSCでモーションデータの送受信が可能(VMCProtocol) 
 ➢ MR合成に対応
 ➢ 通称 ばもきゃ
 ➢ https://vmc.info/
 オープンソースで全てのソースコードを公開中

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

    IKに渡す

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

  8. 同時起動はOpenVRをOverlayモードで初期化 8 選べる種別:
 • Scene : 通常のVRゲーム (SteamVRの初期化あり/複数起動不可) 
 •

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

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


    せっかく良い感じのモーションが取れてるなら他でも使いたい→  
  10. VMCProtocol Virtual Motion Capture Protocol 10

  11. Virtual Motion Capture Protocol (VMCProtocol)とは 11 ➢ バーチャルモーションキャプチャーのあらゆる情報を
 送受信するためのプロトコルとして生まれました。
 ➢

    UDP(OSC)とVRMを前提に、シンプルな数値・文字列の送受信のみで構 成されています。
 ➢ 高度な知識が必要なアバター制御やVR機器の取り扱いを
 ばもきゃ等に任せ、利用者は受信ライブラリを使うだけで
 とてもシンプルにアバター撮影環境を構築できます。
 ➢ https://protocol.vmc.info/  メインメンテナ:gpsnmeajp(@Seg_Faul) 

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


    @HAL9_HARUKU

  13. EVMC4Uとはとは 13

  14. 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
  15. 15 構成例1 waidayo (iPhoneでフェイストラッキング) Sknuckle (Noitom Hi5でハンドトラッキング) バーチャルモーションキャプチャー (トラッカーでフルボディトラッキング) EVMC4U

    (Unityでオリジナルの配信環境を作る) デバイス VMCProtocol
  16. 16 構成例2 ThreeDPoseTracker(Win) / TDPT(iOS) (カメラの映像で全身トラッキング) バーチャルモーションキャプチャー (仮想トラッカーで受け取る) VSeeFace (ボーン情報で受け取る)

    デバイス VMCProtocol Oredayo4V(Win) / 4M(Win, Mac, Linux) (ボーン情報で受け取る)
  17. 構成例3 ばもきゃ (フルトラ) デバイス VMCProtocol EVMC4U (遠隔地とコラボする)   #解釈不一致 / memex インターネット経由

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


    せっかくトラッキングが出来てるならSteamVRで動かしたい→  
  19. VMT Virtual Motion Tracker 19

  20. VMT (Virtual Motion Tracker)とは 20 ➢ シンプルなOpenVR 仮想トラッカードライバ
 ➢ UDP(OSC)で姿勢を受け取り、トラッカーとして

    SteamVR上で利用できます。
 ➢ 難易度の高いVRトラッキングデバイスの自作をと ても簡単に行えるようになります。
 
 ➢ https://github.com/gpsnmeajp/VirtualMotionTracker 
 作者:gpsnmeajp(@Seg_Faul)
 

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


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


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


    トラッカーが動いたらトラッカーを使うアプリも作りたい→  
  24. DVRSDK DMM VR Connect SDK 24

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

  26. DVRSDK (DMM VR Connect SDK)とは 26 ➢ DMM VR ConnectをUnityで使えるSDK


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

  27. 27 DVRSDKのコンポーネントたち DVRAuth Connectの認証 ユーザーデータの取得 アバターデータの取得 他者のアバターの取得も可能 DVRStreaming Unityから直接RTMP配信 YouTube/Twitch等に配信可能

    Oculus Quest/Quest2対応 Windowsも対応 DVRCamera 第三者視点カメラ カメラワーク オートシーケンス 複数カメラの制御 DVRAvatar SteamVRのトラッカー処理 VRMの様々な制御 キャリブレーション 表情や指の制御、自動まばたき
  28. トラッカーでアバター動かすには難しいこといっぱい 28 ➢ まずSteamVRでトラッカーちゃんと扱うのが難しい
 ➢ ボタンの取得とかSkeletal Inputも大変
 ➢ アバターは人によって全然大きさも身体の比率も違う
 ➢

    キャリブレーションが大変
 ➢ Final IKを理解するのも難しい
 ➢ 表情の実装も必要だしリップシンクが欲しいし合成が必要
 ➢ そもそもアバターのファイルの管理も要るし・・・
 

  29. 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座標を取得します。
  30. 30 もちろん大丈夫です 3点(頭と両手)~11点(頭、両手、両ひじ、胸、腰、両ひざ、両足)を トラッカー3つまではVRChat方式でロール関係なく自動で、 それ以上はロールを参考に自動で割り当てます

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

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

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

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


  35. 35 まとめ バーチャルモーションキャプチャー とりあえずアバター動かした くなったらこれ!沢山の連携 ツールでやりたいことがきっ と見つかります。 vmc.info VMCProtocol モーションを送受信したくなった

    らこれ!多彩なビューアーも 揃っているので色々な拡張と組 み合わせられます。 protocol.vmc.info VMT SteamVRの仮想トラッカーが 作りたくなったらこれ!超簡 単に仮想トラッカーデバイス が使えてしまいます。 github.com/gpsnmeajp/VirtualMotionTracker DVRSDK アプリにアバター入れたくなったら これ!難しい事無しで入れるだけ で動きます。VRアプリ開発するとき は最初に入れよう。 devs.connect.vrlab.dmm.com