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
VRMを使ったAR/MR撮影ツールを試作開発してみた話 / Prototype of Mobi...
Search
sotanmochi
February 19, 2019
Technology
0
1.5k
VRMを使ったAR/MR撮影ツールを試作開発してみた話 / Prototype of Mobile Mixed Capture
sotanmochi
February 19, 2019
Tweet
Share
More Decks by sotanmochi
See All by sotanmochi
URP/HDRPを使ったVRM対応アプリの開発方法 / VRM Importer Extension
sotanmochi
0
1.6k
Unityとゲームプログラムの基本的な構造について / Unity and Game Programming Basic Patterns
sotanmochi
0
810
画像処理から始めるコンピュートシェーダ / Introduction to Image Processing using Compute Shader
sotanmochi
2
2.3k
Diminished Reality 入門 / Introduction to Diminished Reality
sotanmochi
2
8.6k
Unityでテクスチャにお絵描きするための線分描画アルゴリズムの話 / Line drawing algorithm using fragment shader
sotanmochi
2
3.5k
MagicOnionでマルチプレイゲームを作ってみる / Introduction to developing multiplayer games using MagicOnion
sotanmochi
1
2.2k
SmartRig Bipedを使ってみよう / Introduction to SmartRig Biped
sotanmochi
0
3k
リアルとバーチャルの融合によって越えられない壁を壊す / TechCafe vol.8 LT
sotanmochi
0
240
ユニティちゃんと鬼ごっこができるMRゲームと戦術位置解析システム / Mixed reality game and tactical position analysis
sotanmochi
0
560
Other Decks in Technology
See All in Technology
君はPostScriptなウィンドウシステム 「NeWS」をご存知か?/sunnews
koyhoge
0
720
自動テストの世界に、この5年間で起きたこと
autifyhq
10
7.1k
急成長する企業で作った、エンジニアが輝ける制度/ 20250214 Rinto Ikenoue
shift_evolve
2
880
Data-centric AI入門第6章:Data-centric AIの実践例
x_ttyszk
1
370
関東Kaggler会LT: 人狼コンペとLLM量子化について
nejumi
3
460
Ask! NIKKEIの運用基盤と改善に向けた取り組み / NIKKEI TECH TALK #30
kaitomajima
1
450
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB / Readable test code
nihonbuson
11
5.8k
AndroidデバイスにFTPサーバを建立する
e10dokup
0
240
データ基盤の成長を加速させる:アイスタイルにおける挑戦と教訓
tsuda7
3
650
ビジネスと現場活動をつなぐソフトウェアエンジニアリング~とあるスタートアッププロダクトの成長記録より~
mizunori
0
210
バックエンドエンジニアのためのフロントエンド入門 #devsumiC
panda_program
16
6.5k
Building Products in the LLM Era
ymatsuwitter
10
4.4k
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Building Applications with DynamoDB
mza
93
6.2k
Being A Developer After 40
akosma
89
590k
Become a Pro
speakerdeck
PRO
26
5.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Docker and Python
trallard
44
3.3k
Building an army of robots
kneath
302
45k
Navigating Team Friction
lara
183
15k
Optimizing for Happiness
mojombo
376
70k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
10
1.3k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
Transcript
2019/02/19 sotan (@sotanmochi) VRMを使ったAR/MR撮影ツール を試作開発してみた話
自己紹介 • sotan (@sotanmochi) • TIS株式会社・戦略技術センター • xR(VR/AR/MR)技術に関する応用研究・プロトタイプ開発 2019/02/19 VRM勉強会
2 https://www.microsoft.com/store/apps/9P4XXMW3F1GC 現実空間をフィールドにしてユニティちゃんと鬼ごっこができるHoloLens用アプリなどを趣味で作ってます
話の流れ • 実現したいこと • デモ動画 • AR/MR撮影ツールの構成 • 開発Tips •
まとめ 2019/02/19 VRM勉強会 3
実現したいこと 2019/02/19 VRM勉強会 4 屋内外の色々な場所で バーチャルキャラクターのAR/MR動画を撮影したい
実現したいこと AR撮影システムを「個人」で「ワンオペレーション」で実現したい 2019/02/19 VRM勉強会 5 http://dwango.co.jp/pi/ns/2018/0625/index.html 【先行事例】 http://panora.tokyo/66291/
試作開発中のAR/MR動画撮影ツール • キャラクターと現実を合成した動画を撮影(デバイスの動画キャプチャ機能) • キャラクターの身体を動かす(モーションキャプチャ) • キャラクターの位置と方向を変える(コントローラー操作) 2019/02/19 VRM勉強会 6
AR/MR動画撮影ツールのデモ動画 Mobile Mixed Capture (仮称) のデモ動画 • 複数のデバイスで撮影 • カメラマン視点と客観視点の映像
2019/02/19 VRM勉強会 7 デモ動画(HoloLens) https://youtu.be/b55dc6V3jvg デモ動画(iPad) https://youtu.be/XmKdsECYGf0
AR/MR撮影ツールの構成 2019/02/19 VRM勉強会 8
ハードウェア構成 2019/02/19 VRM勉強会 9 RealSense D435 (モーションキャプチャ) Joy-Con (L)/(R) (キャラクター操作)
iPad or HoloLens (動画撮影用) モバイルノートPC GPD Pocket 2 (入力・データ配信用) Wi-Fi (データ通信用) 自撮りバックパック SHOOT
• 開発環境:Unity2018.3.4f1 ソフトウェア構成 2019/02/19 VRM勉強会 10 iOSアプリ HoloLensアプリ Windows10 PC用アプリ
(入力・データ配信用) キャラクターの姿勢 キャラクターの相対位置 モーションキャプチャ キャラクターの移動・回転 デバイスの相対位置・回転 上半身と下半身の モーション合成 基準位置調整(手動) 基準位置設定 VRMモデル読込 (ランタイム) キャラクターの姿勢 キャラクターの相対位置 デバイスの相対位置・回転 基準位置調整(手動) VRMモデル読込 (ランタイム)
ソフトウェア構成 利用している主なアセット・ライブラリ • UniVRM • Mirror(ネットワークライブラリ) • JoyconLib(Joy-Conライブラリ for Unity)
• Kinect v2 Examples with MS-SDK and Nuitrack SDK (モーションキャプチャ用のアセット) • Nuitrack(3Dトラッキング用のミドルウェア) 2019/02/19 VRM勉強会 11
開発Tips 2019/02/19 VRM勉強会 12
キャラクターの姿勢を同期させる • HumanPoseのデータを同期用オブジェクトで送受信 • HumanPoseTransferを使ってHumanPoseをキャラクターに反映 2019/02/19 VRM勉強会 13
• HumanPoseのデータを同期用オブジェクトで送受信 • HumanPoseTransferを使ってHumanPoseをキャラクターに反映 同期用オブジェクト(Clone) HumanPose Transfer キャラクターの姿勢を同期させる 2019/02/19 VRM勉強会
14 iOS or HoloLens用アプリ PC用アプリ VRMモデル 同期用オブジェクト(Clone) 操作用キャラクター HumanPose Transfer
キャラクターの位置を同期させる • HumanPoseで位置を同期させようとしても一致しない • Animator.humanScaleの違いによって移動する距離に差が出る • HumanPoseのbodyPositionを固定、位置の同期用オブジェクトを追加 2019/02/19 VRM勉強会 15
キャラクターの姿勢を合成する • 上半身をモーションキャプチャ、下半身をアニメーションで動かす • 上半身用モデルと下半身用モデルのHumanPoseから必要なmusclesを取得する 2019/02/19 VRM勉強会 16 上半身用モデル 下半身用モデル
操作キャラクター
キャラクターの姿勢を合成する • 上半身をモーションキャプチャ、下半身をアニメーションで動かす • 上半身用モデルと下半身用モデルのHumanPoseから必要なmusclesを取得する 2019/02/19 VRM勉強会 17 【参考】 HumanTrait.MuscleNames.csv:
https://gist.github.com/neon-izm/0637dac7a29682de916cecc0e8b037b0
パフォーマンスチューニング • HumanPoseのmusclesをfloat型(32bit)からhalf型(16bit)に変換してデータ削減 • とりすーぷ(@toRisouP)さんのスクリプトを参考にしました • https://gist.github.com/TORISOUP/464e64313ad8da544729549452878e6d 2019/02/19 VRM勉強会 18
C#にはhalf型がないのでshort型で代用
パフォーマンスチューニング • 精度の違いを考慮し忘れて float → half の変換処理で躓いた 2019/02/19 VRM勉強会 19
送信側 受信側 実質0の小さい値が正しく変換できてなかった
パフォーマンスチューニング • 絶対値が 1.0 × 10−4 より小さい値を0に変換することで対応した 2019/02/19 VRM勉強会 20
4.0 × 10−5 程度までは half型で表現できていた 【参考】シェーダーのデータ型と精度 https://docs.unity3d.com/ja/current/Manual/SL-DataTypesAndPrecision.html
VRMモデルの髪と顔が消える • キャラクターの髪と顔が消えてしまうことがある(現象の発生条件が不明) • VRMをランタイムロードした後に updateWhenOffscreen = true で暫定対応 2019/02/19
VRM勉強会 21 updateWhenOffscreen = true updateWhenOffscreen = false
まとめ 2019/02/19 VRM勉強会 22
まとめ • 屋内外の色々な場所で使えるAR/MR撮影ツールを試作してみた • 個人で購入できるハードウェアの組み合わせで実現した • ワンオペレーションでAR/MR動画を撮影できた • モーションキャプチャの精度向上など、いくつか課題を解決すれば 実用化できそう(自分以外のニーズがあるか不明)
2019/02/19 VRM勉強会 23
ありがとうございました