最近巷で話題のVRChat OSCで遊んでみたときのメモです。
もろもろの前提知識
OSC(Open Sound Controll)とは?
- 通信プロトコル。元々音楽を送信するための規格らしい
- Message(URLのPathように
/
で区切る形式)とArgument(送る値)で通信する
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 OSCお試しとして、streamlitからVRChatにsendするのとか作った pic.twitter.com/PcFbeigY0j
— いりす (@irisuinwl) 2022年2月19日
OSCで表情を操作する pic.twitter.com/lRDmrjug9O
— いりす (@irisuinwl) 2022年2月19日
他にも口パクとか操作しようと思ったけど、VRChat Avatarのパラメーターをちゃんと定義しないといけなさそう(VRMを単純にエクスポートする以上にVRChatのAvatar仕様を理解する必要がありそう)だったので、一旦今回はこれで満足しました。
今後、VRChatでライブするイベントがあるときにOSCを使って複雑な操作と、バーチャルとリアルのフィードバックがされると思うとめちゃめちゃ楽しみに感じられる技術でした。
じゃあねー