Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
トラッキングできたら アバターを動かしたい!
Search
sh_akira
June 11, 2021
Programming
0
1.9k
トラッキングできたら アバターを動かしたい!
https://connpass.com/event/214152/
トラッキング技術勉強会の登壇資料です
sh_akira
June 11, 2021
Tweet
Share
More Decks by sh_akira
See All by sh_akira
【令和最新版】意のままに身体を動かすキャリブレーション
sh_akira
3
2.1k
Other Decks in Programming
See All in Programming
Fast JSX: Don't clone props object #28768
yossydev
1
130
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
2
880
新宿ダンジョンを可視化してみた
satoshi7190
2
260
デフォルトにして至高、RubyMineの大好きな所
ruzia
0
420
AWS Application Composerで始める、 サーバーレスなデータ基盤構築 / 20240406-jawsug-hokuriku-shinkansen
kasacchiful
1
260
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
try!Swift Tokyo 2024 参加報告 LT
akidon0000
1
220
SIMD Parallel Programming with the Vector API
josepaumard
0
180
使ってみよう Azure AI Document Intelligence
kosmosebi
2
320
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
270
Anthropic Cookbook のおすすめレシピ
schroneko
7
990
try! Swift Tokyo 初参加報告LT
hinakko2
0
220
Featured
See All Featured
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
357
22k
Building Flexible Design Systems
yeseniaperezcruz
319
37k
It's Worth the Effort
3n
180
27k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
In The Pink: A Labor of Love
frogandcode
138
21k
Writing Fast Ruby
sferik
621
60k
The Pragmatic Product Professional
lauravandoore
25
5.8k
GraphQLとの向き合い方2022年版
quramy
32
12k
Practical Orchestrator
shlominoach
182
9.7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
187
16k
Transcript
トラッキングできたら アバターを動かしたい! バーチャルモーションキャプチャー、VMCProtocol、VMT、DVRSDK あきら@VMC 2021/06/11
あきら DMM VR lab所属 チーフエンジニア/コミュニティマネージャー バーチャルモーションキャプチャーの作者です Twitter: @sh_akira GitHub: sh-akira
https://akira.works/
バーチャルモーションキャプ チャー VirtualMotionCapture 3
バーチャルモーションキャプチャーとはとは 4
バーチャルモーションキャプチャーとは 5 ➢ トラッキングしてVRMアバターを動かせるアプリ ➢ 改良を続けているキャリブレーション ➢ VRゲームと同時起動可能
➢ コントローラーやトラッカーを好きな部位に自由に割り当て可能 ➢ コントローラー/キーボード/MIDIのボタンに自由にキー設定可能 ➢ OSCでモーションデータの送受信が可能(VMCProtocol) ➢ MR合成に対応 ➢ 通称 ばもきゃ ➢ https://vmc.info/ オープンソースで全てのソースコードを公開中
動きはSteamVR+Final IKがベース 6 ➢ SteamVR Pluginの機能には依存せずに直接OpenVRを叩いている ➢ OpenVRの初期化を自分で書くことで同時起動をしている ➢ キャリブレーション処理をこだわってFinal
IKに渡す
キャリブレーションは手の位置を最優先 7 詳細は歌舞伎座.tech#15で話した「バーチャルモーションキャプチャーとは」の 資料を参照してください https://akira.fanbox.cc/posts/168685
同時起動はOpenVRをOverlayモードで初期化 8 選べる種別: • Scene : 通常のVRゲーム (SteamVRの初期化あり/複数起動不可) •
Overlay : オーバーレイアプリ (SteamVRの初期化あり/複数起動可) • Background : (SteamVRの初期化なし/複数起動可/SteamVRがいないとエラー) • Utility : セットアップ用 (ハードウェアが無くても起動する/複数起動?) →ばもきゃは同時起動したいしSteamVRが必須なのでOverlayを選択 Scene以外だと通常の方法では3DモデルをHMDに表示できない。 SteamVRダッシュボードと同じように2Dのパネルをオーバーレイ表示できる。
つまり・・・ 9 ➢ ばもきゃはどんな(Steam)VRのゲームとも同時起動できる ➢ 良い感じのキャリブレーションで良い感じにアバターが動く ➢ とりあえずアバター動かすならこれ
せっかく良い感じのモーションが取れてるなら他でも使いたい→
VMCProtocol Virtual Motion Capture Protocol 10
Virtual Motion Capture Protocol (VMCProtocol)とは 11 ➢ バーチャルモーションキャプチャーのあらゆる情報を 送受信するためのプロトコルとして生まれました。 ➢
UDP(OSC)とVRMを前提に、シンプルな数値・文字列の送受信のみで構 成されています。 ➢ 高度な知識が必要なアバター制御やVR機器の取り扱いを ばもきゃ等に任せ、利用者は受信ライブラリを使うだけで とてもシンプルにアバター撮影環境を構築できます。 ➢ https://protocol.vmc.info/ メインメンテナ:gpsnmeajp(@Seg_Faul)
VMCProtocol 受信ライブラリ 12 Unity Unreal Engine EVMC4U VMC4UE @Seg_Faul
@HAL9_HARUKU
EVMC4Uとはとは 13
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 構成例1 waidayo (iPhoneでフェイストラッキング) Sknuckle (Noitom Hi5でハンドトラッキング) バーチャルモーションキャプチャー (トラッカーでフルボディトラッキング) EVMC4U
(Unityでオリジナルの配信環境を作る) デバイス VMCProtocol
16 構成例2 ThreeDPoseTracker(Win) / TDPT(iOS) (カメラの映像で全身トラッキング) バーチャルモーションキャプチャー (仮想トラッカーで受け取る) VSeeFace (ボーン情報で受け取る)
デバイス VMCProtocol Oredayo4V(Win) / 4M(Win, Mac, Linux) (ボーン情報で受け取る)
構成例3 ばもきゃ (フルトラ) デバイス VMCProtocol EVMC4U (遠隔地とコラボする) #解釈不一致 / memex インターネット経由
つまり・・・ 18 ➢ VMCProtocolはアバターを動かしたいときのあらゆる情報を 送受信できるプロトコル ➢ 多種多様な対応アプリを組み合わせてあらゆるスタイルに適応 ➢ VMCProtocolに対応すれば既存の資産を活かせる
せっかくトラッキングが出来てるならSteamVRで動かしたい→
VMT Virtual Motion Tracker 19
VMT (Virtual Motion Tracker)とは 20 ➢ シンプルなOpenVR 仮想トラッカードライバ ➢ UDP(OSC)で姿勢を受け取り、トラッカーとして
SteamVR上で利用できます。 ➢ 難易度の高いVRトラッキングデバイスの自作をと ても簡単に行えるようになります。 ➢ https://github.com/gpsnmeajp/VirtualMotionTracker 作者:gpsnmeajp(@Seg_Faul)
どのくらい簡単か 21 OSCで、 /VMT/Room/Unityに トラッカー番号と PosとRot送るだけです。
使われているアプリ 22 KawaiiSitter 通常の3点トラッキングで可愛く座ることが できるアプリ。腰と足の位置を自動計算し てVMTで仮想的に動かす MocapForAll 普通のWebカメラを複数使い簡易なモー ションキャプチャをするアプリ。 Unity/UEで受信するサンプルもある
つまり・・・ 23 ➢ VMTは簡単に使えるSteamVRの仮想トラッカー ➢ 難しいトラッカードライバの事を考える必要がなくなる ➢ 誰でもSteamVR対応のトラッカーデバイスが作れちゃう
トラッカーが動いたらトラッカーを使うアプリも作りたい→
DVRSDK DMM VR Connect SDK 24
DVRSDK(DMM VR Connect SDK)とはとは 25
DVRSDK (DMM VR Connect SDK)とは 26 ➢ DMM VR ConnectをUnityで使えるSDK
➢ 誰でもつかえて無料配布中 ➢ サンプル開けばすぐに使える簡単設計 ➢ VRのアプリ作りたいときに困るあれこれが 詰まったSDKです。 ➢ https://devs.connect.vrlab.dmm.com/
27 DVRSDKのコンポーネントたち DVRAuth Connectの認証 ユーザーデータの取得 アバターデータの取得 他者のアバターの取得も可能 DVRStreaming Unityから直接RTMP配信 YouTube/Twitch等に配信可能
Oculus Quest/Quest2対応 Windowsも対応 DVRCamera 第三者視点カメラ カメラワーク オートシーケンス 複数カメラの制御 DVRAvatar SteamVRのトラッカー処理 VRMの様々な制御 キャリブレーション 表情や指の制御、自動まばたき
トラッカーでアバター動かすには難しいこといっぱい 28 ➢ まずSteamVRでトラッカーちゃんと扱うのが難しい ➢ ボタンの取得とかSkeletal Inputも大変 ➢ アバターは人によって全然大きさも身体の比率も違う ➢
キャリブレーションが大変 ➢ Final IKを理解するのも難しい ➢ 表情の実装も必要だしリップシンクが欲しいし合成が必要 ➢ そもそもアバターのファイルの管理も要るし・・・
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 もちろん大丈夫です 3点(頭と両手)~11点(頭、両手、両ひじ、胸、腰、両ひざ、両足)を トラッカー3つまではVRChat方式でロール関係なく自動で、 それ以上はロールを参考に自動で割り当てます
31 キャリブレーションもむずかしいんですけど! Final IKで出来ると聞いてやってみると超いろんなことが起きる
32 なんと DVRSDKには ソースコードごと 全て入ってます すべてを詰め込んだキャリブレーション処理もDVRSDKを入れれば 誰でもご利用可能です! (さらに指のSkeletal Inputとスティックでの表情変更も入ってます)
33 身長だけで自動計算をするキャリブレーション 詳細はDMM meetup #27で話した「意のままに身体を動かすキャリブレーション」の 資料を参照してください https://dmm.connpass.com/event/208446/
つまり・・・ 34 ➢ DVRSDKは様々なアバターの処理を詰め込んだSDK ➢ 難しいアバターの動かし方を考える必要がなくなる ➢ 何かアプリを作るとき最初に入れておくととても楽!
35 まとめ バーチャルモーションキャプチャー とりあえずアバター動かした くなったらこれ!沢山の連携 ツールでやりたいことがきっ と見つかります。 vmc.info VMCProtocol モーションを送受信したくなった
らこれ!多彩なビューアーも 揃っているので色々な拡張と組 み合わせられます。 protocol.vmc.info VMT SteamVRの仮想トラッカーが 作りたくなったらこれ!超簡 単に仮想トラッカーデバイス が使えてしまいます。 github.com/gpsnmeajp/VirtualMotionTracker DVRSDK アプリにアバター入れたくなったら これ!難しい事無しで入れるだけ で動きます。VRアプリ開発するとき は最初に入れよう。 devs.connect.vrlab.dmm.com