Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
トラッキングできたら アバターを動かしたい!
Search
sh_akira
June 11, 2021
Programming
2.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
トラッキングできたら アバターを動かしたい!
https://connpass.com/event/214152/
トラッキング技術勉強会の登壇資料です
sh_akira
June 11, 2021
More Decks by sh_akira
See All by sh_akira
【令和最新版】意のままに身体を動かすキャリブレーション
sh_akira
3
2.8k
Other Decks in Programming
See All in Programming
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
470
AHC070解法紹介
eijirou
0
120
Intent as Code
shoppingjaws
6
1k
アクセシビリティから考える情報設計
high_g_engineer
0
380
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
390
Heart of Swift Concurrency
koher
0
740
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
570
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
120
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
240
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
140
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
190
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
370
Featured
See All Featured
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Making Projects Easy
brettharned
120
6.8k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
How to Talk to Developers About Accessibility
jct
2
550
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
850
The untapped power of vector embeddings
frankvandijk
2
1.9k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
500
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
690
Optimising Largest Contentful Paint
csswizardry
37
4k
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