OSCを使って、VRCでのアクションの値をMax/MSPに送る(VRChatでOSC送信)
こちらでVRChatにデータを送って反映、ということをやりましたが、今度はその逆です。逆は非常にシンプルでVRC側は何も設定いらずで、PC側でOSCの値を受け取った後の処理を書くことになります。
今回は2点を試してみました。
・VRChatアバターの移動距離をMax/MSP(PC)に送る
・TouchOSC(スマホ)でスライダーを操作し、その値をアバターのリボンの色に反映させる。さらにその値をMax/MSP(PC)に送る
です。これで何ができるかですが、Max/MSPに送った値をArduinoやM5Stackというマイコン(小さなコンピュータ)に送ることで、LEDやモータ、電球などを制御することができます。
直接ArduinoやM5StackにVRCからのデータを送ることもできますが、それはまた次の機会に。
要するに、今回のを応用すれば、スマホでアバターにちょっかい出しつつ物理現実にも何らかの形で影響を与えることもできるわけです。
ただ出力は電気を扱ったりする場合もあるので、完全な自己責任でお願いします。
OSCって?何ができるの?
超絶ざっくりですと、OSCは送信者→受信者へデータを送るための仕組みみたいなものです(ざっくりなので通信のプロの方突っ込まないで…)。
こちらの動画がまとまっていて分かりやすいです。
Max/MSPって?
主にメディアアーティストやDJ・VJがよく使っている、非常に使いやすいサウンド系の開発環境です。このようにブロックを接続していくノード型の開発環境で、20年以上の歴史があります。
体験版もあり、30日間全機能&保存機能を無料で使うことができます。
なおサブスクもあり、1か月1000円強で使うこともできます。
VRChatの準備をする
1.こちらの記事を参考にして、お使いのVRCをベータ版にする
2.VRChatを立ち上げる
3.「R」キーを押してリングメニューを開き、「Options」にマウスを持っていってクリックする
4.すると次のようなリングメニューが出るので、「OSC」にマウスを持っていってクリックする
5.次のようなリングメニューが出るので、「Enabled」にマウスを持っていってクリックする。これでOSCが使用可能な状態になる
6.「R」キーを押してリングメニューを開き、「Options」にマウスを持っていってクリックする
7.「Config」にマウスを持っていってクリックする
8.「Debug」にマウスを持っていってクリックする
9.そうするとこのようなデバック画面が表示される。ここのParametersに書かれている項目がOSCでアクセス可能な項目なので、気に留めておく。特にアバターアップロードの際に特殊アニメーションを追加した場合(Expression Parametersに設定したもの)は、下記だと「RibbonColorChange」のようにOSC送受信両方で使用可能になる。
PCやスマホからの入力をトリガーに「RibbonColorChange」で設定したアニメーションを再生することもできるし、「RibbonColorChange」の状態を取得してOSCでPCに送ることもできる
Max/MSP(PC)の準備をする
Max/MSPを起動し、下記のようにパッチを設定する。パッチの内訳は下記です。
・udpreceive 9001 VRCからの情報を受け取る準備。VRCから受け取ったデータをPCやマイコンで処理する場合は必ずポートを「9001」にする。Max/MSPだけでなく他の開発環境でも同じ
・routeなんちゃら VRCから受け取ったものを値だけ取り出すフィルタ。例えば左右にアバターが動いた場合、「avatar/parameters/VelocityX 数値」というデータが出てくるので、数値だけ取り出すためにrouteでフィルタをかけている。「routeなんちゃら」から出てきた値をArduinoなどのマイコンの処理に接続すれば、VRCからモータやLEDをコントロールすることもできる
この記事が気に入ったらサポートをしてみませんか?