⚠️現環境には対応していない可能性があります!【無料】VRChat LogMonitor to OSC β|アバター向け情報表示スクリプト
【注意!】 このギミックは現環境のVRChatでは動作しない可能性が高いです。 アバターギミック自体は導入できますが、OSCアプリが誤作動します。 修正まで今しばらくお待ちください。 ※画像は開発中のものです 実際に動いてる動画はこちら↓ https://twitter.com/i/status/1561865805150691328 ※本データはWindows版VRChatでのみ動作します。その他の環境では恐らく動作しません。 このデータはVRChatのログをリアルタイムで解析し、OSCでVRChatに送ることでアバターに現在のインスタンス人数と滞在時間を表示することができるスクリプトとアバターギミックのセットです。 アプリケーション単体でも動作します。 βと書いてある通り試作及び開発版です。 ところどころ作りが荒いですが、気になった方はぜひ使ってみてください……! 【v2.1.0の主な変更点】 エディタ拡張を同梱したことで自動セットアップが可能になりました! ・既知のバグ - ユーザ名に特定の特殊文字が入ったユーザが同じインスタンスに入ると、スクリプトが処理できず人数カウントができなくなる - 原因究明中です(一回しか再現しなかったのでいまのところよく分かっていません) Githubリポジトリ https://github.com/Yui0471/VRChat_Logmonitor
・同梱ファイル
・Log_Monitor_v_X_X_X.exe ログを解析しOSC送信をするアプリケーションです。 VRChatを起動した後に実行します。 ・Log_Monitor_Setup_Beta_v_X_X_X.unitypackage アバターセットアップ用のUnityPackageです。 ・ReadMe.txt 当データの説明です。 セットアップ方法などが記載されています。 ・texture/Log_Monitor_Texture.ai テクスチャのIllustratorデータです。 ・texture/Yuis_Unlit_Cutout.shader UIに使用しているシェーダーです。 カスタムUnlitシェーダーであり、汎用的なUI表示に使用できます。 ・texture unitypackage内で使用しているテクスチャデータです。 ・script/demo.exe アバターにセットアップしたオブジェクトをテストするアプリです。 ・script/server.exe VRChatからのOSCデータを閲覧できるアプリです。 ・script/OSC_file_Deleter.exe VRChatのOSC関係ファイルを削除するアプリです。 アバターのオブジェクトが動かない場合に実行してください。 ・script/python コンパイル前のPythonスクリプトです。 Python3系及びpython-oscが導入してあれば実行できます。
・セットアップ方法
1.VRCSDK3とアバターのパッケージ、その他必要なアセットをシーン上にセットアップしてください。 既に導入済みのアバターにも適用できます。(その場合バックアップをお願いします) 2.アバターが原点(0,0,0)にあることを確認してください。異なる場合、原点に移動させてください。 3.同梱のUnityPackageをインポートします。 4.メニューバーにYuis_Miniature_Garden内のLog_Monitorがセットアップされますので開きます。 5.セットアップ用ウインドウが開きますので、アバターをセットして[追加]を押します。 6.セットアップ完了です。VRCSDKからVRChatにアップロードしてください。
・使い方
1.セットアップ方法に従い、アバターに各データをセットアップします。 2.Steamのプロパティから、VRChatの起動オプションに[--enable-sdk-log-levels]を追加します。 3.VRChatが起動しているPCでアプリケーションを起動します。 4.セットアップ済みのアバターに着替えて、EXMenuからOSCが有効になっていることを確認します。 5.表示用オブジェクトは自動で表示されます。 6.VRChatがOSCを受信し、オブジェクト部分にデータが反映されます。
・OSC送信パラメータについて
・アプリケーションはVRChatのログを読み取り、インスタンス人数と滞在時間をOSCで送信します。つまり、パラメータ構造さえ分かってしまえばご自身で好きにUIを作っていただくことが可能です。 ・現在分かりやすいように実装していないためOSC送信パラメータは結構複雑です。現時点でのUI設計はあまりお勧めしません。 ・OSCパラメータ - intパラメータ [Log_Monitor] インスタンス人数2桁 滞在時間6桁 計8桁 x 0~9 がfirst~eighthまでの数字変更アニメーションで制御されます。 - int 0 (予約済み) - int 1~10 (first) - int 11~20 (second) - int 21~30 (third) - int 31~40 (fourth) - int 41~50 (fifth) - int 51~60 (sixth) - int 61~70 (seventh) - int 71~80 (eighth) first ~ eighth はそれぞれインスタンス人数計2桁と滞在時間計6桁に10ずつ割り振られます。 このfirst ~ eighthまでの範囲をVRChatの読み込みに合わせて1範囲に付き0.3秒間隔で送信します。
・あまりない質問
Q. 表示が止まってしまう時がある A. 何らかの要因でOSCパラメータの反映ができなくなることがあります(Sit判定を使用した時など) その場合、EXMenu -> AvatarResetをすることでリセットすることができます。 Q. 滞在時間はどこまで反映されるの? A. インスタンスに入ってから抜けるまでの時間を計算しています。アプリ側で計算しているのでアバターを着替えたりしてもリセットされません。 Q. アバターにデータをセットアップしなくても使える? A. アプリ側にデバッグ表示を設けているのでそちらを参照すれば使えます。 Q. アバターにセットアップしたのに動かない! A. 以前と同じブループリントIDを使ってアップロードしていませんか? その場合AppData/VRChat/OSCフォルダ内の[同じブループリントID.json]を削除して着替えなおすか、新しいIDを発行してアップロードしてください。 Q.デスクトップモードだとUIが揺れるんだけど? A.デスクトップモードですと歩行時にアニメーションでHeadが上下するのでそれに追従してしまい揺れてしまいます。VRモードで使用した場合は発生しません。 Q. 他の人から見えたりしないの? A.オブジェクト自体のオンオフ操作を全てローカルで行っているので、グローバルには反映されないため見えません。また同梱のシェーダーを用いることで自分のカメラやミラーにも映らなくなります。 Q.オブジェクトに阻まれて見えなくなる時がある A.どのオブジェクトよりも前に描画されるようにRenderQueueを調整していますが、どうしてもアバターなどに描画が阻まれてしまいます。これに関してはどうしようもない気がします……。 Q.UIの透明度を変更したい! A.シェーダーの設定にあります、Color設定にてAlpha値を変更することで透明度の変更が可能です。
・基本仕様
・マテリアル数 : 9 ・パラメータ数 : 2 ・メモリ占有数 : 9 bit ・テクスチャ数 : 2 Unity2019.4.31.f1 動作確認済み VRCSDK3-AVATAR-2022.06.03_Public 動作確認済み VRChat build 1230 動作確認済み EXEアプリケーション ・Windows 10 21H1 動作確認済み Pythonスクリプト ・Python3系及びpython-osc導入機器にて動作できます
・利用規約
とりあえずいまのところMITLicenseですが、 再配布、販売などは常識の範囲内でお願いします。 仕様が変わる可能性があります(まだβ版ですからね) また使用する前にプロジェクトのバックアップを取っておいてください。 オブジェクトをセットアップする際にスクリプトを使用するので、 実行する際は自己責任でお願いいたします。
・更新履歴
〇2022/08/23 【Beta v1.0.0】 -Boothにてベータ版リリース 〇2022/08/23 【Beta v1.1.0】 -シェーダー同梱によりカメラやミラーに映らなくなりました 〇2022/08/23 【Beta v1.2.0】 -シェーダーのRenderQueueを調整 〇2022/08/25 【Beta v1.3.0】 -シェーダーに透明度設定機能を追加 -スクリプトの動作を大幅変更, パラメータ反映にかかる時間が短くなりました 〇2022/08/26 【Beta v1.3.1】 -アバター変更時やワールド移動時に表示がおかしくなる問題を修正 〇2022/08/27 【Beta v2.0.0】 -150~160cmの身長でもUIの位置が合うように座標を調整 -OSCアプリケーションからの通信が無い時の表示を追加 -滞在時間の更新頻度が上がりました -OSCアプリケーションの挙動を大幅に変更しました -VRChatからのOSCを監視しアバターの変更,リセット,ワールド移動を検知できるようになりました -VRChatを再起動しても最新のログファイルを追跡するようになりました -ログファイルに変更があった場合データ更新が行われるように修正 -処理を始める際のEnter入力を削除しました -実装手順の一部を修正 〇2022/08/28 【Beta v2.0.1】 -一部のアニメーションがMissingになっていた問題を修正 〇2022/09/03 【Beta v2.1.0】 -unitypackage内にEditorを含めました -オブジェクトのセットアップをエディタ拡張で自動化しました -テスト用アプリケーションを同梱しました -VRChatからのOSCを閲覧できるアプリケーションを同梱しました -VRChatのOSCファイルを削除するアプリケーションを同梱しました -Sit判定に座った際、Animatorがリセットされる問題を回避 -VRChat Creator Companion の仕様に暫定対応 〇2022/09/10 【Beta v2.1.1】 -2時間以上同じインスタンスに滞在した時に、人数表示がおかしくなるバグを修正 〇2022/09/20 【Beta v2.1.2】 -テクスチャのAlpha Is Transparencyにチェックが入っていなかったミスを修正 -EditorディレクトリをLog_Monitorディレクトリ以下に移動しました -[実験的]UI2.0のデザインに合わせたテクスチャをセットアップしたunitypackageを同梱 -[実験的]OSCの送受信IP、ポート番号を引数で指定できるようになりました
・開発環境
-Windows 10 Home 21H1 -Python 3.8.2 -python-osc 1.8.0 -PyInstaller 4.9 -Visual Studio Code 1.65.2 -Adobe illustrator 2022
・開発者、連絡先など
開発製作 - 風庭ゆい Twitter : @Yui0471 技術サポート, エディタ拡張開発 - Rounz Twitter : @ro_rounz1 アイディア提供 - デューク アプリケーションやエディタ拡張を使用していて、突然動作しなくなるなどのバグに遭遇した場合、VRChatのログと一緒に症状を報告していただけると嬉しいです。