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
オーディオリアクティブなVR空間で生演奏のライブがしたくてライブシステムを作った話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
pibo
August 31, 2020
Programming
0
380
オーディオリアクティブなVR空間で生演奏のライブがしたくてライブシステムを作った話
xR Developers Community Conferenceで発表した内容です。
https://vrtokyo.connpass.com/event/185043/
pibo
August 31, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
660
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
260
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
Raku Raku Notion 20260128
hareyakayuruyaka
0
370
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
280
CSC307 Lecture 08
javiergs
PRO
0
670
AI巻き込み型コードレビューのススメ
nealle
2
1.5k
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
390
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
480
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
1k
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
470
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.6k
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
77
Marketing to machines
jonoalderson
1
4.7k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
The untapped power of vector embeddings
frankvandijk
1
1.6k
What does AI have to do with Human Rights?
axbom
PRO
0
2k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
150
How GitHub (no longer) Works
holman
316
140k
The agentic SEO stack - context over prompts
schlessera
0
650
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Transcript
オーディオリアクティブなVR空間で 生演奏のライブがしたくて ライブシステムを作った話 ぴぼ(memex) @memex_pibo
自己紹介 • ぴぼ(@memex_pibo) • 大学院で裸眼MR(空中映像)を研究 • 在学中にVR空間での音楽活動に興味を持ち 2人組音楽ユニット「memex」でVR音楽活動開始 • 本業:Androidエンジニア
手乗り裸眼MR「FairLift」 memex
memex ワンマンライブ 「#解釈不一致」 memexがVR空間で行ったライブ • 生歌生ギター • リアルタイムモーション収録 • オーディオリアクティブな演出
• 体験可能人数無制限 YouTubeに360°立体視のアーカイブがあります
None
今日のテーマ 目的:オーディオリアクティブな演出で生演奏のVRライブがしたい! 課題:音と演出のタイミングが合わない! 解決策:アバターも演出も音も全部動画として配信すれば合う!
#解釈不一致 システム構成 Max For Live モーション 演奏 音から生成した 演出信号 音声
データ モーションと 演出の映像化 配信映像再生 コンポーネント カメラによる テクスチャ化 Shaderで モーションと 演出の復元
今日のテーマ 目的:オーディオリアクティブな演出で生演奏のVRライブがしたい! 課題:音と演出のタイミングが合わない! 解決策:アバターも演出も音も全部動画として配信すれば合う!
オーディオリアクティブな視覚演出が好き オーディオリアクティブ = 音に反応すること 例) 声の音量に合わせて円が大きくなる バスドラムに合わせて床が隆起する Soundscape of Portrait
- Ayumu Nagamatsu ハイスイノナサ"地下鉄の動態" MV
VRでオーディオリアクティブの世界に入りたい オーディオリアクティブな空間の中でライブしたい…… VRChatならできそう!バーチャルアーティストすっぞ!
VRでオーディオリアクティブの世界に入りたい オーディオリアクティブな空間の中でライブしたい…… VRChatならできそう!バーチャルアーティストすっぞ!
今日のテーマ 目的:オーディオリアクティブな演出で生演奏のVRライブがしたい! 課題:音と演出のタイミングが合わない! 解決策:アバターも演出も音も全部動画として配信すれば合う!
できない理由:同期の経路がバラバラ • VRChat アバターの モーション ライブの音声 空間演出イベント 演者 お客さん
演者 同期の経路がバラバラ • VRChat お客さん アバターの モーション ライブの音声 空間演出イベント ここは気にならない
ここが合わない
今日のテーマ 目的:オーディオリアクティブな演出で生演奏のVRライブがしたい! 課題:音と演出のタイミングが合わない! 解決策:アバターも演出も音も全部動画として配信すれば合う!
今日のテーマ 目的:オーディオリアクティブな演出で生演奏のVRライブがしたい! 課題:音と演出のタイミングが合わない! 解決策:アバターも演出も音も全部動画として配信すれば合う! 1. 素直なアプローチ 2. 演出イベントの映像化 3. アバターのモーションの映像化
今日のテーマ 目的:オーディオリアクティブな演出で生演奏のVRライブがしたい! 課題:音と演出のタイミングが合わない! 解決策:アバターも演出も音も全部動画として配信すれば合う! 1. 素直なアプローチ 2. 演出イベントの映像化 3. アバターのモーションの映像化
素直なアプローチ 音と演出のタイミングを合わせるために最低限必要そうなもの 1. モーション・音声・イベントにタイムコードを持たせたフォーマット 2. 1をやりとりするサーバー 3. 1のタイミングを一致させて再生できるクライアント
素直なアプローチ 音と演出のタイミングを合わせるために最低限必要そうなもの 1. モーション・音声・イベントにタイムコードを持たせたフォーマット 2. 1をやりとりするサーバー 3. 1のタイミングを一致させて再生できるクライアント たいへんなのでなるべく既存のものに乗っかりたい!
今日のテーマ 目的:オーディオリアクティブな演出で生演奏のVRライブがしたい! 課題:音と演出のタイミングが合わない! 解決策:アバターも演出も音も全部動画として配信すれば合う! 1. 素直なアプローチ 2. 演出イベントの映像化 3. アバターのモーションの映像化
• VRChatクラブシーンでの先行例 演出イベントを映像として配信する アバターの モーション ライブの音声 空間演出イベント (色で表現) 演者 お客さん
映像ストリーミングサービス経由 Shaderで映像を 演出にデコード (VRChat) HLS再生 オブジェクト VRChat経由
演出イベントの映像化 先行例:TouchDesignerなどで音圧レベルを白黒グラデーションにマッピング https://www.slideshare.net/noriben/vj-168074352 #解釈不一致ではMAX for LiveとUnity 映像をシーン内のカメラでRender Textureにし、シェーダーで読み込む バスドラム スネア
バスドラム(床) スネア (円周)
曲中の任意のタイミングで演出イベントを生成する 音楽制作ソフトのシーケンサーにMIDIノート(音符)を配置 UnityでMIDIを拾って映像化 伴奏音声 演出イベント (MIDIノート)
問題点:アバターと音がズレる
今日のテーマ 目的:オーディオリアクティブな演出で生演奏のVRライブがしたい! 課題:音と演出のタイミングが合わない! 解決策:アバターも演出も音も全部動画として配信すれば合う! 1. 素直なアプローチ 2. 演出イベントの映像化 3. アバターのモーションの映像化
任意のシェーダー変数が 映像として配信・再生可能 (精度は低い……)
アバターのモーションも 映像として配信しよう
#解釈不一致 の配信形式 アバターの モーション ライブの音声 空間演出イベント お客さん 映像ストリーミングサービス経由 演者 メッシュ・
シェーダー等 アセット類 VRChat経由
モーションの映像化 • VAT(Vertex Animation Texture) ◦ アニメーションの各フレームにおける各頂点の位置をテクスチャに書き込むことで テクスチャにアニメーション情報を記録する手法 #解釈不一致 では映像1フレームに1フレーム分のアニメーションを記録
エンコードによる劣化 映像として配信する際のH.264エンコードで頂点の位置情報が劣化する 外れ値をフィルタリングすることで原型を保つ エンコード フィルタリング
実際に配信した映像
演出イベント アバター1 モーションデータ アバター2 モーションデータ ツイート (空間に表示)
None
#解釈不一致 システム構成 Max For Live モーション 演奏 音から生成した 演出信号 音声
データ モーションと 演出の映像化 配信映像再生 コンポーネント カメラによる テクスチャ化 Shaderで モーションと 演出の復元
まとめ
良かったこと • VRChatに依存しなくなった ◦ 360°アーカイブはUnity上でUnityCaptureで録った映像 • 人数制限がなくなった ◦ VRChatの1インスタンス(1空間)には人数制限があるが、 この手法なら複数インスタンスに同時に現れることができる
▪ 「仲いい人だけでインスタンスを立ててライブを見るのが面白かった」 • 「VR空間上の一連のできごとが1つのファイルとして記録されている」 ことが面白い ◦ Unityのビデオプレイヤーで再生ファイルを差し替えるだけでリハーサルの様子が見られる ◦ ビルドしたクライアントと録画映像があるのでVRChatが対応しなくなっても 今後もずっと体験できる(はず)
大変だったこと • エンコードによる情報量の劣化への対処に凄く時間がかかった • AWSで1時間の映像を400人程度に配信した結果5万円かかった
より詳細な内容がQiitaにあります https://qiita.com/memex_pibo/items/3fbfcd627e5e7c7f2061
オーディオリアクティブなVR空間で 生演奏のライブがしたくて ライブシステムを作った話 ぴぼ(memex) @memex_pibo