はじめに
こんにちは。
ジョジョ好きなXRクリエイターの もふるね です。
VRChatでたまに耳にする「OSC」とは何なのか気になってきました。
こういう時は実際に触ってしまうのが理解が早いのです。
(思い立ったが元日、年明けてすぐに未知の領域を触り始める私)
OSCに関して全くの無知だった私が、OSCを触って理解できたことをここに書き連ねていきます。
結果
こいつ...動くぞ!
参考資料
ラザノアさんのポスト
VRChatでOSCを体験する手順
Honda HiromichiさんのQiita記事
OSCとは?OSC通信についてまとめてみた
がちもとさんのQiita記事
VRChatでOSCやーる(Python3.9、Windows10)
おのさんのZenn記事
VRChatがOSCに対応したので、まずはNode.jsでアバターをジャンプさせてみた
OSCとは
Open Sound Controlの略であり、電子楽器の信号の送受信に使う目的で作られたものだけど、あまりにも汎用性が高すぎるので音楽以外の目的で使われることも多い。
そして最も大事なこと...OSCは アプリ内外を繋ぐ信号の送受信ができる!
これがどういうことかと言うと───
例えばVRChatの中でボタンを押すと、押したという情報をOSCを使ってVRChatの外に送信し、その情報を元に現実の自宅の照明を付けたり消したりできちゃうのだ!
他にもできる色んな面白い事をまとめた記事があるので見てみるといいよ。↓
つまり、OSCは可能性の塊なのである!
VRChatとOSC間の通信の仕組み
2024年1月現在、VRChatはOSCに対応しています。
実際にBoothで「OSC VRChat」と検索してみると多くのギミック・ツールが出てきます。
「すっごーい! なにこれ なにこれー!」と思ってるサーバルちゃん諸君、簡単にVRChatとOSC間の通信の仕組みをお教えしよう。
- 9000番ポートに情報を送ると、VRChatに情報を送ることができる。
- 9001番ポートではVRChatから情報を受け取ることができる。
- 情報はurlみたいな階層構造の文で通信する。例:
/test/hoge
以上! ね?かんたんでしょ!
OSCをVRChatで体験しよう
言葉で理解するより、実際にやって理解する方がずっと分かり易いので、やってみましょう。
手法はラザノアさんのVRChatでOSCを体験する手順に従っています。
まず、OSCを操作するアプリのTouchOSCを以下のurlからダウンロードします。
https://hexler.net/touchosc
次に、コマンドプロンプトでipconfig
を打ち、自分のIPv4アドレスを調べます。
TouchOSCを起動し、Edit > Connectionsを開き、OSCタブをクリックし、Connection 1にチェックをつけます。
そして、以下のように設定します。
Connection 1:UDP
Host :自分のIPv4アドレス (例:192.123.4.56)
Send Port :9000
キャンパス内で右クリックしてXYを選択します。
すると赤い四角い枠ができます。
右下にあるMessagesの+を押して、OSCを選択することを2回します。
するとOSCのタブが2つできます。
OSCタブを以下のように設定します。
1つ目のOSCタブ
Connections:1
Trigger:x
Address:/input/Horizontal
Arguments:x
Scale:-1,1
Conversion:FLOAT
2つ目のOSCタブ
Connections:1
Trigger:y
Address:/input/Vertical
Arguments:y
Scale:-1,1
Conversion:FLOAT
Valuesを以下のように設定します。
xとyのどちらも
Type:FLOAT
Default:0.5
Current:0.5
Default Pull:100
VRChatを起動し、ExplessionメニューからOptions > OSC > Enabledをオンにします。
これでVRChatはOSCを送受信できるようになります。
(3の画像のOSC Debugを押すと、VRChatに送られたOSC情報が見えるようになるので、確認に使うと良いですよ)
TouchOSCの再生ボタンを押して、赤い四角の枠を操作してみましょう。
それでVRChatのキャラが前後左右に動いたら成功です!
もっと色々したい人へ
VRChatで操作できるOSCのAddressまとめ
Oscの信号を可視化するアプリ「Protokol」
OSCのポートが占領された時用の、別のポートからOSCRouterかませてルーティングさせるやつ
OSCアプリを自作した記事1
【知識0から】VRChatを別タブで操作できるアプリ自作してみた!【OSC / フォームアプリケーション】
OSCアプリを自作した記事2
OSCでVRChatのキャラを回転操作するアプリを自作してみた!【OSC / フォームアプリケーション】
OSCアプリを自作した記事3
CPU使用率をOSC通信でVRChatに送って、アバターの色を変化させてみた
OSCアプリを自作した記事4
GPU使用率の取得方法【C#】