【VRChat】コライダージャンプで空を飛ぶ方法

VRC_Unity備忘録_アバター


VRChatで空を飛びたい!ジャンプキーでどんどん上に上がっていくギミックです。
今回はかなリぁさんの無料3Dモデル、ハオラン君にコライダーとホバー移動を追加してみました。
今後モデルを作成したときに設定できるようメモを残しておきます。
参考にした記事:https://note.com/karihito/n/ndfb801abcf04

こんな感じになりました。

VRChatのモデルを用意する

今回はこちらのモデルをお借りしました。

Unityで新規プロジェクトを作成、アバターを読み込む

Unityを持ってないよ!アバターをアップロードしたことなんてないよ!という方は
こちらの動画でVCCでのアバターアップロードのやり方を丁寧に説明してくれていますので
8分辺りまでこの方法でやってください。

このアバターにはlilToonが使われているようなので、先にlilToonをインポートしておきます。
Assetsフォルダの下にlilToonフォルダができていればOKです。
ダウンロードしたハオランのファイルを展開し、中にUnityPackageが二つあると思うので、私はHAOLANをダブルクリックしました。(おそらくこっちがPC用)
ダブルクリックしてインポートができたら、Assetsの下に「HAOLAN」というフォルダがあるので
そこからPrefabファイルをHierarchyにドラッグアンドドロップします。

空を飛ぶ設定をする

空を飛びたいアバターをクリックして、「Add Component」ボタンを押します。
colと入力すると、色々なコライダーが出てくるので任意のColliderを追加します。
私は今回Box Colliderを追加して、Yの値を0.5にしてから一旦チェックを外しておきました。

次にアバター本体のInspectorより、Expression MenuとExpression Parameterを差し替えます。
Expressionsのところをみると、MenuとParametersのところにHAOLAN2~と設定されています。
ここをクリックすると、どこにそのファイルがあるのかprojectのところに表示されます。
念のためCTRL+Dでコピーを取っておきます。
Noneになっている場合は、右の丸のマークをクリックすると、DefaultExpressionsMenuというものがあるはずなので、それを選びます。

Expression ParameterのInspectorにてint型パラメータを追加します。
Addから適当に名前を付けます。Typeはintにします。私はflyと名前を付けました。

Expression Menuをクリックして「Add Control」からNew Controlの「▼」マークをクリックして開きます。
Name→さっきExpression Parameterで設定した名前と同じでflyと入力しました。
Type→Toggle
Parameter→Expression Parameterで設定した値を選びます。Valueは1です。

アバターのPlayerble Layerという▶を開いて、FXコントローラファイルというのを探します。
このFXのところをクリックすると、ProjectにFXのファイルが表示されます。
先ほどと同様にCTRL+Dでコピーを取っておきます。
Noneになっている場合は、右の丸のマークからFXを選択します。

[Window]→[Animation]→[Animator]を選択して、Animatorウィンドウを開きます。
さっきのFXのファイルを選択して、Parameterタブのほうを選んで、「+」ボタンを押下して「int」を選択。
追加したパラメータの名前をExpression Parameterで設定した名前に変更します。値は0のままです。

Layersタブを選択し、+マークから新しいLayerを作成します。
そのLayerの名前を任意に変更し、歯車のボタンからWeightを1にします。
私は同じようにflyとしました。

グリッドの何もないところを右クリックして[Create]→[Empty]を選択します。
これを2回実行すると[Empty]から矢印が引かれたオレンジ色のオブジェクトと灰色のオブジェクトがでます。

Any Stateのオブジェクトを右クリックし、「Make Transaction」を選択すると矢印がでてきます。
これをオレンジ色のオブジェクトと灰色のオブジェクト2か所にそれぞれ配置します。
オレンジ色に向かった矢印を選択して、「Conditions」の「+」ボタンをクリックします。
その設定を「(Expression Parameterで設定した値)」「Equals」「0」と設定します。

灰色に向かった矢印も同様に「Conditions」の「+」ボタンをクリックします。
その設定を「(Expression Parameterで設定した値)」「Equals」「1」と設定します。

ここで、コライダーをオンにするAnimationとオフにするAnimationを作ります。
ちょっとこのあたり参考記事のやり方がよくわからなかったので、私はこうやって作りました。

[Window]→[Animation]→[Animation]からAnimationウィンドウを開きます。
そのアバターが選択された状態でAnimationウィンドウからCreateで任意の名前を付けて保存します。
私はfly_startと付けて保存しました。

その後、「●」ボタン(録画ボタン)を選択します。
アバター本体を選択してColliderを有効にします。とのときチェックが入ったチェックボックスは赤くなっています。「●」ボタン(録画ボタン)を押します。するとCollider Enabledというのが作成されます。
Previewを押してColliderのチェックがオンになったりオフになったりすればOKだと思います。

また、▼のマークからCreate New ClipでコライダーオフのAnimationも作ります。
私はFly_stopと名前を付けました。今度はコライダーにチェックが入っている状態から「●」ボタン(録画ボタン)を押します。コライダーのチェックを外し、録画ボタンをクリックします。

ちょっと場所がわからなくなってしまったので、対象のアバターを選択して、Playable LayersのFXのところをクリックします。するとFX_HAOLANとあるのでそれをクリックします。


Animatorタブからさっき設定したflyのところの、オレンジ色のオブジェクトを選択し、MotionにColliderを無効にするAnimationを設定します。私の場合はfly_stopを設定します。
同様に、灰色のオブジェクトを選択し、MotionにColliderを有効にするAnimationを設定します。
私の場合はfly_startを設定します。
名前は変えた方がわかりやすいですが任意らしいです。
とりあえずオレンジのほうをflyoff、灰色のほうの名前をflyonに名前を変更しました。

Locomotionを設定して浮遊モーション追加する

このままでもコライダージャンプは使えて飛べるようになるのですが
空中で歩いているように見えてしまうので、のホバー移動モーションに切り替える設定をします。
こちらからホバー移動モーションをダウンロードします。
https://booth.pm/ja/items/1268362

Playerble LayerのBaseを任意のLocomotionに設定します。
私は右の丸のマークからvrc_AvatarV3LocomotionLayerを選びました。
同じようにCTRL+Dでコピーを作っておきます。

そのvrc_AvatarV3LocomotionLayerが選択された状態で、Animatorタブに移ります。
何もないところで右クリックで新しくBlendTreeオブジェクトを作成します。
名前も適当なものに変えておきます。わかりやすいものでいいらしいのでとりあえずFlyingとしました。
その新しく追加したBlendTreeを右クリックしてMake transitionで矢印を引っ張り、画像の通りに繋げます。
standing⇔flying、crouching⇔flyingと全てにつながるように右クリック→Make transitionで繋げます。

LocomotionのParametersにもExpression Parameterで設定したパラメータ名を設定します。
Parametersタブで+からint形で同じように設定します。(私ならflyとつけて値は0に)
あとはそれぞれの矢印を選択して、以下の画像と同じように値を設定していきます。

新しく作成したBlendTree(ここではflying)をクリックして、Motionを指定します。
アバターにもよると思いますが、Boothで売られているホバー移動のMotionを指定しても動きます。
試しに別のアバターにこのHoverLocomotionを指定してみましたが、問題なくホバー移動できました。

既存のホバーのLocomotionを指定してもいいらしいのですが、もしそのアバターが対応していなかった場合に自分で作る必要があるみたいなので、作り方のほうもメモしておきます。
私はStanfingLocomotionをコピーして名前をvrc_HoverLocomotionと変更しました。

そのvrc_HoverLocomotionをクリックして、どれか適当なMotionをクリックすると
そのanimが入ったフォルダがProjectに表示されます。そこにダウンロードしたホバー移動のファイルを入れておきます。

そしたらMotionを右の丸のマークから下の画像のように設定します。
数が多い場合は-で消したり、数が足りない場合は+から増やします。

設定したBlendTree(ここではflying)がさっき設定したLocomotion(私の場合vrc_HoverLocomotion)になっていることを確認してください。
あとはSceneタブに戻って、Box Colliderのチェックがオフになってることを確認したら
通常通りアバターをアップロードをするだけです。

空が飛べるアバターはいくつか作っているので、そのうち動画にもまとめたいと思います。

コメント

Ads Blocker Image Powered by Code Help Pro

本サイトは広告を使用しております。

広告をブロックする拡張機能を使用していることが検出されました。お手数おかけいたしますが、広告ブロッカーを無効にして更新ボタンをクリックいただきますようお願いいたします。