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
580
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
250
Other Decks in Programming
See All in Programming
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
190
1B+ /day規模のログを管理する技術
broadleaf
0
120
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.6k
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.6k
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.8k
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
0
330
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
170
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
210
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
180
The NotImplementedError Problem in Ruby
koic
1
1.1k
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
230
技術記事、 専門家としてのプログラマ、 言語化
mizchi
14
7.3k
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
880
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
340
Mind Mapping
helmedeiros
PRO
1
280
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
170
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Tell your own story through comics
letsgokoyo
1
980
The Spectacular Lies of Maps
axbom
PRO
1
850
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
250
Prompt Engineering for Job Search
mfonobong
0
370
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
580
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