はじめに
VRChat では、VRChat 公式の SDK に含まれている 動画プレイヤー用の Prefab をシーンに導入することで、 YouTube の動画を視聴することができます。
この公式の動画プレイヤーの使い勝手を向上させるために、色々な方が様々な拡張アセットを製作しており、 Booth などを通して、一般に公開しています。
自分は、今まで動画プレイヤーを導入するようなワールドを製作していなかったこともあり、動画プレイヤーにあまり興味がなかったのですが、ふと、YouTube の動画検索に関して不便に感じたことがあったのを思い出し、検索ができるギミックを作れるのかどうか確かめてみました✨
作ってみた
という訳で、サクッと YouTube 検索ギミックを作ってみました。
下記の動画から、実際に YouTube の検索をしている様子を見ることができます。
仕組みとしては、VRChat ワールド (Unity) 側から、自作の YouTube 検索サーバーに API 経由でリクエストをして、検索結果をレスポンスとして受け取りものです。よくあるパターンですね😊

作ってみて分かったのですが、VRChat で外部サイトに動的な入力情報を送信する場合、VRC URL というコンポーネントを使う必要があり、このコンポーネントには大きな制限があります。
具体的にいうと、VRC URL は基本的に Unity Editor 上でしか入力情報を編集できません (ランタイム時に動的に VRC URL を改変できない)
唯一、情報を動的に U#スクリプトで受け取る手段があって、それは VRChat でユーザーに直接、特殊な VRC 専用の Input Filed に テキストを入力してもらう方法です。
動画では、3つ縦に並んだ入力欄のうち、3つ目が実際に外部にデータを送信するための専用 Input Field で、残り2つが通常の Input Field です。
この制限があるため、外部にテキスト情報を送るために、本来なら1つで済むはずの入力欄が3つ必要になってしまいました・・・
ユーザービリティが悪い・・・
また、他にも制限があって、外部サイトにリクエストをする場合、VRC SDK の VRCStringDownloader か VRCImageDownloader を使う必要があるのですが、リクエストは5秒おきでしか行うことができません。5秒以内にリクエストしても、内部的にキュー (待ち行列) に溜まる仕組みになっているようです。(2024年10月時点)
このような制限のある中、多少の迂回策は取りましたが、なんとか YouTube 検索のギミックを作れて良かったです。
おわりに
今回作ったギミックは、一応有料の外部サーバーを利用していることもあり、Booth などで配布はしませんが、 (そもそも、自分の Booth 持ってない) 折角作ったギミックですし、一部に需要がありそうなので、フレンドのワールドに導入してもらうことになりました✨
たまには、動画系のギミック作ってみるのも良いですね!
参考
-
VRCStringDownloader
-
VRCImageDownloader