irisuinwl’s diary

サークル不思議(略)入巣次元の、数学や技術的なことを書きます。

VRChat OSCを試してみた

最近巷で話題のVRChat OSCで遊んでみたときのメモです。

もろもろの前提知識

OSC(Open Sound Controll)とは?

  • 通信プロトコル。元々音楽を送信するための規格らしい
  • Message(URLのPathように/で区切る形式)とArgument(送る値)で通信する

OpenSound Control - Wikipedia

yoppa org – openFramewoks – OSC (Open Sound Control) を利用したネットワーク連携

VRChat OSCとは?

  • VRC上でOSCを使ってAvatarと通信する機能がオープンベータで追加されたよ
  • 外部サービスとVRCのAvatarを通信することができるよ(eyetrackingしたりアバターの表情を外部アプリから操作したり…etc)
  • 詳しくはdocumentとgithubのもろもろを見てね!
  • clientは各言語のOSC Clientを使えばOK

VRCのリリースブログ: VRChat OSC for Avatars — VRChat

公式ドキュメント: https://docs.vrchat.com/v2022.1.1/docs/osc-overview

遊んでみた

python-oscとstreamlitを使ってVRChat上のアバターを操作するようなアプリを作りました

VRChatのOSC Serverは127.0.0.1:9000で立っているっぽいのでdocker containerからhostの127.0.0.1:9000にアクセスするようにするようにアプリケーションとdocker-composeを作りました。

streamlitは良い感じに公式ドキュメントみてparamの設定とsendを行うアプリケーションを作ります。

repos: GitHub - irisu-inwl/vrc_osc_python

demo:

他にも口パクとか操作しようと思ったけど、VRChat Avatarのパラメーターをちゃんと定義しないといけなさそう(VRMを単純にエクスポートする以上にVRChatのAvatar仕様を理解する必要がありそう)だったので、一旦今回はこれで満足しました。

今後、VRChatでライブするイベントがあるときにOSCを使って複雑な操作と、バーチャルとリアルのフィードバックがされると思うとめちゃめちゃ楽しみに感じられる技術でした。

じゃあねー

参考

VRChatでOSCやーる(Python3.9、Windows10) - Qiita