VRChat内のポスターをスプレッドシートで楽々管理!みかん電機さんの革新的なアイデア

詳細情報

集会名 個人開発集会
日時 2024年08月29日 22:00 - 22:30
テーマ VRC内ポスターをスプレッドシート管理したい
発表者 みかん電機
発表資料 ファイル

発表のハイライト

  • VRChat内でポスターを管理する際に発生する面倒な問題点を解決するアイデアが発表されました。
  • GoogleスプレッドシートとCloudflare R2を活用することで、ポスターの更新や管理を効率化できます。
  • みかん電機さんが、VRChatのPNGミュージアム5コラボハッカソン「展」で開発したシステムについて解説してくれました。

VRChatポスター管理の悩み、ありませんか?

VRChatでワールドを制作・公開している皆さん、ワールド内に設置するポスターの管理って大変ですよね?イベント告知やキャスト変更の度に、ワールドを更新したり、画像を差し替えたり…想像しただけでゾッとしませんか?

みかん電機さんの発表では、VRChatでポスターを更新する際に発生する様々な問題点が浮き彫りになりました。

  • イベント告知のポスターに誤字脱字を発見!
  • キャストの変更ごとにワールドの更新が必要!
  • ワールドをビルドした人しかポスターの変更ができない!
  • 画像を変更する度にワールドを再アップロードする必要があり、Unityでのビルドも必要!

これらの問題を解決するために、みかん電機さんは、GoogleスプレッドシートとVRCImageDownloaderを使ってポスターを管理するシステムを開発しました。

VRCImageDownloaderとスプレッドシートでポスター管理!…のはずが?

VRCImageDownloaderは、VRChat内で画像をWebからダウンロードして表示する仕組みです。これを利用すれば、ワールド内に画像データを直接埋め込む必要がなくなり、画像の更新もURLを変更するだけで済むので、とても便利そう!

しかし、みかん電機さんは、この方法でシステムを構築しようとした際に、いくつか課題に直面しました。

  • ユーザごとに画像リクエストが発生するため、スプレッドシートAPIのアクセス制限に引っかかりやすい。
  • 画像ダウンロードに時間がかかり、インスタンスの起動時間が長くなる。
  • 画像の転送に時間がかかり、料金も発生してしまう。

当初の設計では、CloudRun上でリダイレクト処理をする予定でしたが、上記のような課題が出てしまい、うまく機能しませんでした。

Cloudflare R2で解決!新しい設計とは?

そこで、みかん電機さんは、Cloudflareが提供するオブジェクトストレージサービス「Cloudflare R2」を活用することにしました!

Cloudflare R2は、エグレス料金(ダウンロード時の通信料金)が無料という魅力的なサービスです。

新しい設計では、以下の流れでポスターの管理が行われます。

  1. スプレッドシート管理者が画像更新ボタンを押す。
  2. スプレッドシートから画像のURLを取得する。
  3. 画像をダウンロードする。
  4. Cloudflare R2に画像を保存する。
  5. VRChatユーザーは、Cloudflare R2から画像を取得する。

この設計により、スプレッドシートAPIのアクセス制限や通信料の問題を解決することができました!

まだまだ課題はあるけれど…未来は明るい!

Cloudflare R2を活用することで、VRChat内のポスターをスプレッドシートで楽に管理できるようになりましたが、まだ解決すべき課題もいくつかあります。

  • 画像の更新処理はGASで大丈夫なのか?
  • 画像のアップロード枚数に制限を設けるべきか?
  • スプレッドシートの認証は、誰でも閲覧できるようにするのか?
  • 不適切な画像の対策は?

これらの課題をクリアしていくことで、より使いやすいシステムに進化していくことが期待できます。

まとめ

みかん電機さんの発表では、VRChat内のポスター管理における課題と、それを解決するためのCloudflare R2を活用したシステムについて学ぶことができました。スプレッドシートと連携することで、ポスターの更新や管理が格段に楽になるだけでなく、Cloudflare R2によって通信料の心配も軽減できます。

今後の課題を解決し、より使いやすいシステムへと進化していくことで、VRChatのワールド制作がより一層楽しくなることは間違いありません。みかん電機さんの今後の活躍に期待しましょう!

VRC内ポスターをスプレッドシート管理したい