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
nkjzm
August 01, 2024
Technology
1
230
アバター配信アプリ『Vフレット』 でVRM 1.0対応をしてみる
2024年8月1日に開催された『VRM Meetup #4 VRM LT大会』での発表資料です
https://vrmc.connpass.com/event/322649/
nkjzm
August 01, 2024
Tweet
Share
More Decks by nkjzm
See All by nkjzm
個人iOSアプリ開発で使っているClaude Code Hooksの紹介
nkjzm
0
81
VRMアバターでギターの弾き語りがしたい!! 『Vフレット』の開発で考えたこと
nkjzm
0
490
『ALTDEUS: Beyond Chronos』で物語に没入できる操作感を実現するマルチプラットフォーム対応の道のり / The path to multi-platform support for immersive storytelling in ALTDEUS: Beyond Chronos
nkjzm
0
340
『ALTDEUS: Beyond Chronos』におけるマルチプラットフォーム向けコントローラーの対応 / Support for multi-platform controllers in "ALTDEUS: Beyond Chronos
nkjzm
0
420
Unityで使える汎用的な ハンバーガーメニューの実装 / UniHamburger
nkjzm
3
1.4k
20時間超の物語をVRで!『ALTDEUS: Beyond Chronos』の制作を支えた”Uranus”の制作過程と機能紹介 [CEDEC2021] / Introduction of ALTDEUS' VR ADV tool "Uranus", CEDEC2021
nkjzm
1
2.5k
withコロナに見るXR業界のイマ! [CEDEC2021] / XR NOW CEDEC2021
nkjzm
3
1.8k
VRプロダクト開発ラウンドテーブル2021
nkjzm
0
1.5k
Unityでチャットに使えるモバイルキーボードの実現
nkjzm
2
5.5k
Other Decks in Technology
See All in Technology
20250912_RPALT_データを集める→とっ散らかる問題_Obsidian紹介
ratsbane666
0
100
【NoMapsTECH 2025】AI Edge Computing Workshop
akit37
0
220
250905 大吉祥寺.pm 2025 前夜祭 「プログラミングに出会って20年、『今』が1番楽しい」
msykd
PRO
1
980
品質視点から考える組織デザイン/Organizational Design from Quality
mii3king
0
210
La gouvernance territoriale des données grâce à la plateforme Terreze
bluehats
0
190
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
10
75k
DDD集約とサービスコンテキスト境界との関係性
pandayumi
3
290
はじめてのOSS開発からみえたGo言語の強み
shibukazu
3
890
[ JAWS-UG 東京 CommunityBuilders Night #2 ]SlackとAmazon Q Developerで 運用効率化を模索する
sh_fk2
3
450
「Linux」という言葉が指すもの
sat
PRO
4
140
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
190
複数サービスを支えるマルチテナント型Batch MLプラットフォーム
lycorptech_jp
PRO
1
820
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Rails Girls Zürich Keynote
gr2m
95
14k
The Language of Interfaces
destraynor
161
25k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
BBQ
matthewcrist
89
9.8k
A Modern Web Designer's Workflow
chriscoyier
696
190k
Automating Front-end Workflow
addyosmani
1370
200k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Designing for humans not robots
tammielis
253
25k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
850
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