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
250
アバター配信アプリ『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
270
VRMアバターでギターの弾き語りがしたい!! 『Vフレット』の開発で考えたこと
nkjzm
0
500
『ALTDEUS: Beyond Chronos』で物語に没入できる操作感を実現するマルチプラットフォーム対応の道のり / The path to multi-platform support for immersive storytelling in ALTDEUS: Beyond Chronos
nkjzm
0
350
『ALTDEUS: Beyond Chronos』におけるマルチプラットフォーム向けコントローラーの対応 / Support for multi-platform controllers in "ALTDEUS: Beyond Chronos
nkjzm
0
430
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.7k
Other Decks in Technology
See All in Technology
嗚呼、当時の本番環境の状態で AI Agentを再評価したいなぁ...
po3rin
0
400
【AWS reInvent 2025 関西組 事前勉強会】re:Inventの“感動と興奮”を思い出してモチベ爆上げしたいです
ttelltte
0
140
マウントとるやつ、リリースするやつ
otsuki
1
120
QAセントラル組織が運営する自動テストプラットフォームの課題と現状
lycorptech_jp
PRO
0
360
CDKの魔法を少し解いてみる ― synth・build・diffで覗くIaCの裏側 ―
takahumi27
1
140
フライトコントローラPX4の中身(制御器)を覗いてみた
santana_hammer
1
140
AIでテストプロセスを自動化しよう251113.pdf
sakatakazunori
0
110
Master Dataグループ紹介資料
sansan33
PRO
1
3.9k
開発者が知っておきたい複雑さの正体/where-the-complexity-comes-from
hanhan1978
6
2.4k
「データ無い! 腹立つ! 推論する!」から 「データ無い! 腹立つ! データを作る」へ チームでデータを作り、育てられるようにするまで / How can we create, use, and maintain data ourselves?
moznion
6
3.6k
はじめての OSS コントリビューション 〜小さな PR が世界を変える〜
chiroito
3
140
コンピューティングリソース何を使えばいいの?
tomokusaba
1
140
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
The Pragmatic Product Professional
lauravandoore
36
7k
We Have a Design System, Now What?
morganepeng
54
7.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
1.8k
Site-Speed That Sticks
csswizardry
13
960
BBQ
matthewcrist
89
9.9k
[RailsConf 2023] Rails as a piece of cake
palkan
57
6k
Why Our Code Smells
bkeepers
PRO
340
57k
Code Review Best Practice
trishagee
72
19k
Documentation Writing (for coders)
carmenintech
76
5.1k
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