ToNSaveManagerとOSC
VRChatにあるゲームワールドの一つ、Terrors of Nowhere
このワールドにはセーブコード式のセーブ機能が存在しております。
便利なことに、ワールド内で手動で保存する方法とは別にVRChatのログにもセーブコードが残ります。
その性質を利用して作られたKittenji氏作成のコードを自動で保存してくれるツールToNSaveManagerです。
こちらのツール、つい最近OSC機能が実装されました。
OSCは簡単に言えば外部でアバターのパラメーターを変更できる機能です。
この機能が追加されたことにより
死んだ瞬間アバターに仕込んだ物を出す。
殺人鬼に選ばれた瞬間専用の見た目になる。
ラウンドの色ごとにアバターの色も変わる。
などが出来るようになりました。
今回はそれらの簡易的な解説記事です。
ただし、自分で物のON/OFFの機構を作れるorマテリアルの差し替えが出来るのを前提に作成しております。ご注意ください。
主にこちらのドキュメントを参考に作りました。
自分自身へのメモとしてここに残しておくため雑にまとめていますが、大目に見てくださると幸いです。
使用方法
送信されるパラメーターを知りたい場合は、”設定可能なパラメーター”まで飛ばしてください。
初期設定
SaveManagerを起動し、設定を開きます。
下の方にOSCの項目があるので、項目内の”OSCパラメーターを送信”にチェックを入れます。
任意で”テラーのカラーを送信””ダメージイベントを送信””Send Death Event”にチェックを入れます。
これにて初期設定は終了です。
死んだ瞬間アバターに仕込んだ物を出す
死亡した瞬間、Intの”ToN_Damaged”の値が255で送信されるため、それを利用すればできます。
ただし、SaveManagerの初期設定だと出てくる前にワープしてしまうので以下の設定変更が必要です。
SaveManagerを起動し、設定を開きます。
上の方に”解析済みのログをスキップする(!)”の隣りにある”(更新頻度の設定)”の値を10にします。(もしかすると少し重くなるので注意)
下の方にOSCの項目内の”ダメージイベントを送信”にチェックを入れます。これで設定は完了です。
後は”ToN_Damaged”の値が255になった瞬間パーティクルを発生させたり、ワールド固定等を行えば上手く反映されるはずです。
ですが、データ送信の都合上、自分視点では上手く動きませんが、他人視点だと上手く動くはずなので確認する際は他人にお願いするのをおすすめします。
殺人鬼に選ばれた時に専用の見た目になる
サボタージュで殺人鬼に選ばれた瞬間Boolの”ToN_Saboteur”がtrueになるため、それを利用すればできます。
ただし、ラウンド開始直後にtrueになってしまうので、10秒位で切り替わる様に設定するのをおすすめします。
ラウンドの色とアバターの色を同期させる
ラウンド開始直後対応したIntの”ToN_RoundType”が切り替わるため、それを利用すればできます。
クラシックなら1、霧なら2…となるので、ドキュメントを参考にすれば設定可能です。
設定可能なパラメーター
元のドキュメントを簡易的に翻訳した物となります。
General
Events
ToN_DeathIDを使用する際ToNSaveManagerの方で設定する必要があります。
『設定→Send Death Event→(Edit)』で設定可能です。
設定時、コンマ(,)で区切る必要があります。
例として”Aくん,Bくん,Cくん”と設定すると
値が1→Aくん、値が2→Bくん、値が3→Cくんと設定されます。
これを設定することでAくんが死亡時ToN_DeathIDの値が1に設定されます。
254人分設定できるよ!
Terrors in Round
この値は現在出現しているテラーのインデックスIDを表しています。
これらのIDはインデックスを元に作られているため、テラーが出現していない場合の値は255になります。
これらの値が変更される特殊ケースも存在します。
MonarchはTerror3を識別子として使用し、Terror1とTerror2は255に設定されます。
8ページも、パラメーターの使用方法が異なります。
Terror1は正規化されたTerror IDであり、対応するグループのインデックスを使用することを意味する。
Terror2は、Terror1が属するグループである。
0-クラシック
1-オルタネイト
2-8ページオリジナル
Terror3は、8 ページで出てくるテラーの実際のインデックスとなる。
Terrors phase index.
これらの値は、一部の段階分けされたテラーを表しています。
SonicがFakerになったり、MopeMopeが発狂したりする際に使用します。
Colors_HSV - HSL Format(Default)
カラーフォーマットをHSV又はHSLに設定している際、これらのパラメーターが変更されます。
HSLの場合ToN_ColorVの代わりにToN_ColorLが使用されます。
Colors_RGB - RGB32 Format
カラーフォーマットをRGBに設定している際、これらのパラメーターが変更されます。
RGB32に設定している際は、これらの値はFloatではなくIntになります。
Encounters
おまけ
Terror Tablet
YoBro氏が作成したアバターギミックです。
SaveManagerのOSCと連携しており、レーダーの様にブラッドバスで何が出たのかを教えてくれたり、今まで何が出たのかを記録してくれたりします。
別でPoiyomiとVRCFuryが必要になります。
Web Tracker
OSCには関係ありませんが便利なので載せておきます。
Cinossu氏が作成した功績保存サイトです。
手入力が必要だが、自身の功績を確認+画像化することが可能 自身の功績の確認や、SNS等に乗せられるのでおすすめです
上の方にある”WebSocket API サーバー”と”Live Trackerと連携”にチェックを入れ、サイトの方でも右上の”Live Tracker”をクリックし緑色になれば連携できます。
サイト側の連携は毎回やる必要はありますが、連携後は出会ったテラーや獲得した実績、行ったマップ等を保存してくれるため早めに連携しておくのをおすすめします。この記事の執筆者と同じインスタンスで1人で生き残ると…?
最後に
この記事自体前回同様各作者に許可取らずに作っているため、怒られたら速攻で消すと思います。
後私自身英語がわからないため一部おかしなところもありますが、あまり気にしないでね。
みんなもTerrors of Nowhereやろうね、楽しいよ。
疲れたらBus to Nowhereにもおいで、楽しいよ。