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
アバター配信アプリ『Vフレット』 でVRM 1.0対応をしてみる
Search
Nakaji Kohki
August 01, 2024
Technology
1
110
アバター配信アプリ『Vフレット』 でVRM 1.0対応をしてみる
2024年8月1日に開催された『VRM Meetup #4 VRM LT大会』での発表資料です
https://vrmc.connpass.com/event/322649/
Nakaji Kohki
August 01, 2024
Tweet
Share
More Decks by Nakaji Kohki
See All by Nakaji Kohki
VRMアバターでギターの弾き語りがしたい!! 『Vフレット』の開発で考えたこと
nkjzm
0
310
『ALTDEUS: Beyond Chronos』で物語に没入できる操作感を実現するマルチプラットフォーム対応の道のり / The path to multi-platform support for immersive storytelling in ALTDEUS: Beyond Chronos
nkjzm
0
290
『ALTDEUS: Beyond Chronos』におけるマルチプラットフォーム向けコントローラーの対応 / Support for multi-platform controllers in "ALTDEUS: Beyond Chronos
nkjzm
0
370
Unityで使える汎用的な ハンバーガーメニューの実装 / UniHamburger
nkjzm
3
1.1k
20時間超の物語をVRで!『ALTDEUS: Beyond Chronos』の制作を支えた”Uranus”の制作過程と機能紹介 [CEDEC2021] / Introduction of ALTDEUS' VR ADV tool "Uranus", CEDEC2021
nkjzm
1
2.2k
withコロナに見るXR業界のイマ! [CEDEC2021] / XR NOW CEDEC2021
nkjzm
3
1.7k
VRプロダクト開発ラウンドテーブル2021
nkjzm
0
1.4k
Unityでチャットに使えるモバイルキーボードの実現
nkjzm
2
4.9k
Notionで人生を公開している話
nkjzm
0
960
Other Decks in Technology
See All in Technology
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
250
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
220
TypeScript、上達の瞬間
sadnessojisan
46
13k
[FOSS4G 2024 Japan LT] LLMを使ってGISデータ解析を自動化したい!
nssv
1
210
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
170
スクラムチームを立ち上げる〜チーム開発で得られたもの・得られなかったもの〜
ohnoeight
2
350
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
120
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
500
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
430
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
520
複雑なState管理からの脱却
sansantech
PRO
1
140
Featured
See All Featured
Making Projects Easy
brettharned
115
5.9k
Building Applications with DynamoDB
mza
90
6.1k
YesSQL, Process and Tooling at Scale
rocio
169
14k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Teambox: Starting and Learning
jrom
133
8.8k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
How to Ace a Technical Interview
jacobian
276
23k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Transcript
2024/08/01 VRM Meetup #4 VRM LT大会! アバター配信 アプリ『Vフレット 』 でVRM
1.0対応をしてみた
なかじ @nkjzm • VRとプログラミング が得意 • 個人開発で「Vフレット」を作っている Unity / VR
Engineer
アンケート 本日の参加者ってどんな属性ですか? • 開発者の方 • VRoid
/ 3Dモデルを触ってる方 • とりあえず興味があって来てみた方
今日は開発者向けの話がメインですが、 雰囲気だけでも伝わるとうれしいです 🙏
VRMとは • VR向けの3Dアバターファイルフォーマット ◦ アバターを VRM形式で作っておくと、いろいろなプラットフォームで使えるのが特徴 ◦ 発表後にすごい勢いで流行った(会場の
clusterでも採用している!) • VRM 0.x:2018年にベータ版として発表 • VRM 1.0:2022年9月に正式版としてリリース ◦ 変数名として 「VRM10」表記が使われることが多い ◦ (個人的な印象) VRM 0.xほど浸透していない・・・?
知ってるサービスの VRM 1.0 対応状況を調べてみた 2022年 • 9月
◦ VRM 1.0リリース ◦ バーチャルキャスト • 11月 ◦ VMagicMirror 2023年 • 3月 ◦ VRoid Studio ◦ VDRAW • 8月 ◦ LuppetX
知ってるサービスの VRM 1.0 対応状況を調べてみた 2022年 • 9月
◦ VRM 1.0リリース ◦ バーチャルキャスト • 11月 ◦ VMagicMirror 2023年 • 3月 ◦ VRoid Studio ◦ VDRAW • 8月 ◦ LuppetX ➡めちゃくちゃ対応進んでた
自分のアプリでも VRM1.0 対応をやってみた (未完了なので現時点の所感です 🙏)
Vフレットとは • アバターを使ってギターの弾き語りができるアプリ • Windows / Mac 向けに Booth
で配布中! • VRMアバター読み込みに対応 ◦ プリセットアバター ◦ PC内のVRMファイル ◦ VRoid Hub連携 • トラッキング不要、アバターと PCがあれば使える • 最近は YouTube ショートとかに使ってくれる人も https://booth.pm/ja/items/3024741
VRoid SDK とは • VRoid Hubと連携させる開発者向けライブラリ • Web(API)、Unity、Unreal Engineに対応(開発者登録が必要)
https://developer.vroid.com/sdk/ より
環境 • Unity 2021.3.35f1 • VRoid SDK for Unity 0.5.2
(2024/06/24) ◦ アップデートのバージョンは 0.1.0 • UniVRM v0.122.0 (2024/05/10) ◦ アップデート前: v0.89.0 ◦ VRoid SDKに内包されている UniVRMを使用
このスライドがめちゃくちゃ参考になる (ので抜粋して紹介します ) UniVRM 利用アプリケーションの VRM 1.0 への移行について -
Speaker Deck
UniVRM 利用アプリケーションの VRM 1.0 への移行について - Speaker Deck より
UniVRM 利用アプリケーションの VRM 1.0 への移行について - Speaker Deck より
UniVRM 利用アプリケーションの VRM 1.0 への移行について - Speaker Deck より
➡ 基本的にはリネームとか メンバアクセスの修正で⾏けそう UniVRM 利用アプリケーションの VRM 1.0 への移行について - Speaker
Deck より
対応が簡単だった差分 • モデル読み込み ◦ メソッド名が変わっただけで使い勝手は変更なし • VRM
0.x系の変換処理 ◦ ほぼすべて自動で変換してくれるので、共存について考えることが少ない • 表情 ◦ 「VRMBlendShape」から「 Expression」に変わっただけ ▪ 例:BlendShapePreset → ExpressionPreset
対応が大変そうな差分 • アクセス方法が変わっている箇所について ◦ 一部 MonoBehaviourとして提供されなくなった ◦
GetComponent<T>()している箇所を、親のクラスなどのメンバ変数からを辿る必要がある • ライセンス ◦ 仕様として、意図的に 1:1 変換をしていない ◦ 0.x系ライセンスは 0.x系ライセンスとして表示する必要がある • ボーン ◦ 正規化された?ボーン構造が変わった?らしい ◦ まだやっていないのでここが一番大変そう
VRoid SDK の対応 • 基本的には専用の対応は不要だった ◦ メタデータは VRoid SDK独自の型で返ってくるので差分なし
◦ VRMをUnity上で3Dデータとして生成した型 RuntimeGltfInstance を ▪ VRMファイル読み込みの場合は UniVRMから ▪ VRoid Hub上のキャラクターの場合は VRoid SDKから ◦ 読み込むという違いのみ • → アプリのVRM 1.0対応ができれば自動的に対応完了っぽい
まとめ • VRM 0.xから 1.0への互換性がかなり考慮されていて共存が可能 • 型名が全体的に変更されているが、機械的に変換していける •
ライセンス回りとボーン回りはちょっと大変そう • VRoidSDKへの対応は一瞬だった
余談:困っていること • Vrm10Dataからサムネイルが取得できない取得の例 • https://vrm.dev/api/vrm1_load/ によると、下記のように取得可能
• 返ってくる値は nullではないが、 RawImage.textureに渡すと Missing になる • もし何かわかる方がいたらぜひ教えてください 🙏 using var loader = new Vrm10Importer(vrm); var texture2D = await loader.LoadVrmThumbnailAsync();
宣伝: VketRealに出展します! 8/4(日) 秋葉原 【B8】
None
ご清聴ありがとうございました!
None