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
Baku_Dreameater
March 21, 2024
Programming
590
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
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
520
初めてのKubernetes 本番運用でハマった話
oku053
0
130
act1-costs.pdf
sumedhbala
0
230
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
0
210
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
140
ランチタイムLT会3周年!ランチタイムLT会を3年間続けられたお話
y0hgi
1
140
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
120
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
460
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
380
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
140
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
960
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
170
Featured
See All Featured
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Amusing Abliteration
ianozsvald
1
230
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
We Have a Design System, Now What?
morganepeng
55
8.2k
Scaling GitHub
holman
464
140k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
340
ラッコキーワード サービス紹介資料
rakko
1
3.9M
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