OSCがあればメニュー改変いらず。OSCでVRChatアバターの色やアイテムを瞬時に操作する改変方法メモ

アバターのOSC関連改変から逃げてたんだけど、仕事の関係で腰を据えてやることにしたのでちょっとした改変メモがてら。

まず、OSCを使えばメニュー操作のない即アクションが可能。OSC命令を送ったタイミングでアバターの色が瞬時に変わったり、アイテムが瞬時に出たり、手に持った如意棒の長さがぐにょぐにょ変わる、といったことができる。Experssionsメニュー操作を登録しておいて、メニュー同等のことをOSC「でも」できるようにすることもできるけど、Experssionsメニュー登録をする必要すらない。が、結構最初はハマりがちなので流れをば。

まずFxレイヤーを選択↓

FXレイヤー(Animator Controller)をダブルクリック↓

新しいレイヤー(ここではNekoHand)をつくる↓

注意!

ここでWeightを1にするのを絶対に忘れないこと。うごかねー、となる多分1番の原因…!

とっても大事な「パラメーター」を作る。Parametersのタブを選んで、+を押して、IntやFloatなどを選んでNekoHand・・・などと入力して独自パラメーターを作る。このパラメーター名はこのあとめちゃくちゃ使うので、覚えやすい、ミススペルしにくいものを。

※Int Bool Floatの選択は、オンオフぐらいならBoolでよくて、徐々に色を変えていく、長さを変える、みたいなものはIntやFloatを使うといい。

アニメーターコントローラーを書いていく。判断ロジックは矢印を選択して決める。
+キーを押して、パラメーターが何なら、どういうアニメーションを再生するかを決めていく。
ここではNekoHand(という名前のパラメーター)が0ならばHumanHandに遷移する、と設定している↓

同じくNekoHandが1ならNekoHandに遷移するようにする↓

HumanHandとNekoHandそれぞれのステートにアニメーションを設定していく。ここではHumanHandのステートに、NekonoteOFF-SaberONというアニメーションを割り当てている。

※アニメーションの作り方は省略。VRChat アニメーション 作り方 ぐらいでぐぐって。

最後。ここがとにかく忘れがち。Parameterを選んで、Avatar ParameterにNekoHandというのがあるよ、と設定する。これがないと動かない

Expression Parametersをダブルクリック↓

+を押して、NekoHandをパラメーター追加する。IntとかBoolとかを間違えないように

最後にOSCやるまえにDebug。これがModular Avatar入っているとめちゃくちゃハマるので注意。必ずこの手順でやってほしい。まず再生ボタン▶ を押し、ヒエラルキーから該当アバターを選び(ここ重要!)、FX_xxxxxxを選ぶ。

そのうえで、Projectウィンドウで該当するFx_xxxxのアニメーターコントローラーを選ばないといけない↓
Packages > Non-Destructive….というパスになっているところに注目。ModularAvatarが自動生成するフォルダなので、ここにあるFx_xxxxxを選ばないといけないというわけ。

ParametersからNekoHandの値を1か0かに書き換えてみて、AnimationControllerがうまく遷移するかを確認する。1にしたら猫ハンド、0にしたら人間の手になる設定なので、これでヨシ

あとはVRChatにアップロードしてOSC命令を送るだけ。
TouchOSCなどのソフトで送り先を127.0.0.1 : 9000にして、送付先アドレスは /avatar/parameters/NekoHand
末尾のNekoHandは自分で定義したパラメーターの値を使えばいい。ボタンを2つ用意して、1を送るボタン、0を送るボタンを用意しておけば、猫の手、人間の手をぽちぽち切り替えられるというわけ。