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
120
アバター配信アプリ『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
340
『ALTDEUS: Beyond Chronos』で物語に没入できる操作感を実現するマルチプラットフォーム対応の道のり / The path to multi-platform support for immersive storytelling in ALTDEUS: Beyond Chronos
nkjzm
0
300
『ALTDEUS: Beyond Chronos』におけるマルチプラットフォーム向けコントローラーの対応 / Support for multi-platform controllers in "ALTDEUS: Beyond Chronos
nkjzm
0
380
Unityで使える汎用的な ハンバーガーメニューの実装 / UniHamburger
nkjzm
3
1.1k
20時間超の物語をVRで!『ALTDEUS: Beyond Chronos』の制作を支えた”Uranus”の制作過程と機能紹介 [CEDEC2021] / Introduction of ALTDEUS' VR ADV tool "Uranus", CEDEC2021
nkjzm
1
2.3k
withコロナに見るXR業界のイマ! [CEDEC2021] / XR NOW CEDEC2021
nkjzm
3
1.8k
VRプロダクト開発ラウンドテーブル2021
nkjzm
0
1.4k
Unityでチャットに使えるモバイルキーボードの実現
nkjzm
2
5k
Notionで人生を公開している話
nkjzm
0
960
Other Decks in Technology
See All in Technology
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
170
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
32k
Amazon SageMaker Unified Studio(Preview)、Lakehouse と Amazon S3 Tables
ishikawa_satoru
0
150
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
280
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
190
統計データで2024年の クラウド・インフラ動向を眺める
ysknsid25
2
840
Turing × atmaCup #18 - 1st Place Solution
hakubishin3
0
480
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
400
UI State設計とテスト方針
rmakiyama
2
480
なぜCodeceptJSを選んだか
goataka
0
160
How to be an AWS Community Builder | 君もAWS Community Builderになろう!〜2024 冬 CB募集直前対策編?!〜
coosuke
PRO
2
2.8k
ブラックフライデーで購入したPixel9で、Gemini Nanoを動かしてみた
marchin1989
1
520
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
Practical Orchestrator
shlominoach
186
10k
Faster Mobile Websites
deanohume
305
30k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Documentation Writing (for coders)
carmenintech
66
4.5k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
A Philosophy of Restraint
colly
203
16k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
2
170
Fireside Chat
paigeccino
34
3.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