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
自作ソフト(VMagicMirror)がVRMA対応してる話+実装のTips
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Baku_Dreameater
March 21, 2024
Programming
570
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
自作ソフト(VMagicMirror)がVRMA対応してる話+実装のTips
Baku_Dreameater
March 21, 2024
More Decks by Baku_Dreameater
See All by Baku_Dreameater
趣味開発でVRM1.0モデルに対応した話
bakudreameater
1
7.5k
Oculus Questでマリオネットを召喚して遊んでみた
bakudreameater
1
1.8k
キーボードとマウス入力で動かすVRM(キャラ付き版)
bakudreameater
0
1.8k
キーボードとマウス入力で動かすVRM(キャラ無し版)
bakudreameater
0
240
Other Decks in Programming
See All in Programming
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
5.1k
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
260
OSもどきOS
arkw
0
560
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
2
620
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
270
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
190
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
140
スマートグラスで並列バイブコーディング
hyshu
0
130
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
160
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
220
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
750
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
180
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
The Spectacular Lies of Maps
axbom
PRO
1
800
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
200
Practical Orchestrator
shlominoach
191
11k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Become a Pro
speakerdeck
PRO
31
6k
Unsuck your backbone
ammeep
672
58k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
How to train your dragon (web standard)
notwaldorf
97
6.7k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
360
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
The Limits of Empathy - UXLibs8
cassininazir
1
360
Transcript
自作ソフト(VMagicMirror)が VRMA対応してる話 + 実装のTips 獏星 (ばくすたー) 2024/03/21 1/12
/15 自己紹介 • 獏星 (ばくすたー) / @baku_dreameater • VMagicMirrorの開発者 •
clusterのソフトウェアエンジニア 2
/15 目次 • アプリケーション紹介: VMagicMirror • VRM Animationの前: 自前定義 •
Unity + UniVRMでVRMA対応を実装 • 基本編 • 応用編 • ついで: AnimationClip→VRMA変換 3
/15 アプリケーション紹介: VMagicMirror ・Windows向けのVRM表示ソフト ・設定UI + アバターウィンドウ ・デスクトップマスコット化 ・マウス/キーボード操作に反応 ・ゲームパッドとかでも動く
・今月で開発5周年 4
/15 アプリケーション紹介: VMagicMirror ゲーム入力モード ・ゲームキャラ風の動き ・ユーザーがモーションを 追加できる VRM Animationとして ハイキックのモーションを
読み込んで指定 5
/15 VRM Animationの前: 自前定義 独自フォーマット & 自前のセーブ + ロード実装 ・自前実装がそもそも多い
・データ設計がイケてるか自信がない ・第三者がファイルを配布しにくい ・ 個人開発者として悩ましい → VRM Animationに移行判断 専用ファイル (.vmm_motion) 変換用コード 自作ソフト Help: https://malaybaku.github.io/VMagicMirror/tips/use_custom_motion/ GitHub: https://github.com/malaybaku/VMagicMirror_MotionExporter ファイル 自作コード 元データ (AnimationClip) 変換用Project セーブ ロード+再生 6
/15 Unity + UniVRMでVRMA対応を実装(基本編) ファイルを読み込んで指定して終わり? ※詳しくはVRM10_Sampleの SimpleVrma.cs を参照 VRM10Runtime runtime;
Vrm10AnimationInstance vrma; runtime.VrmAnimation = vrma; 7
/15 Unity + UniVRMでVRMA対応を実装(基本編) ファイルを読み込んで指定して終わり? → 要件によってはもうちょっと凝る必要があります VRM10Runtime runtime; Vrm10AnimationInstance
vrma; runtime.VrmAnimation = vrma; 8
/15 Unity + UniVRMでVRMA対応を実装(基本編) やりたいこと • ボーンの更新タイミングを自前で調整 • 複数のVRM Animationの姿勢どうしをブレンド
• … 9
/15 Unity + UniVRMでVRMA対応を実装(応用編) やりたいこと • ボーンの更新タイミングを自前で調整 • 複数のVRM Animationの姿勢どうしをブレンド
• … → さっきのとは別のAPIを呼ぶことで解決 10
/15 Unity + UniVRMでVRMA対応を実装(応用編) 実は一つのAPIで解決する public static class Vrm10Retarget {
public static void Retarget( (INormalizedPoseProvider Pose, ITPoseProvider TPose) source, (INormalizedPoseApplicable Pose, ITPoseProvider TPose) sink ); } 11
/15 Unity + UniVRMでVRMA対応を実装(応用編) 呼び出し方 // ↓基本編で使ってるのと同じ変数 Vrm10Runtime runtime; Vrm10AnimationInstance
vrma; // こう呼ぶと、再生中のVRMAの現在の姿勢がVRMに書き込まれる Vrm10Retarget.Retarget( vrma.ControlRig, (runtime.ControlRig, runtime.ControlRig) ); 12
/15 Unity + UniVRMでVRMA対応を実装(応用編) ・ボーンの更新タイミングを自前で調整 → Retarget()を呼んだ時点で更新される ・複数のVRM Animationをブレンド →
Retarget()を2回呼んで補間すればOK Retarget Retarget 1つ目のVRMA 2つ目のVRMA VRM + → → → VRMのボーン姿勢を取得 VRMのボーン姿勢を取得 → ↓ 2つの姿勢どうしを補間 13
/15 まとめ VMagicMirror + VRMAの事例紹介 自前でのモーションデータ定義は大変! → VRMAの活用を検討するのがおすすめ UniVRMでVRMAを再生する方法はいくつかある →
Retargetで細かいこともできる 14
/15 ついで: AnimationClip→VRMA変換 note: VRM Animation (.vrma)をUnity上で簡単に生成できるようにした話 https://note.com/baku_dreameater/n/n26908f443e5b GitHub: https://github.com/malaybaku/AnimationClipToVrmaSample
15