【VRChat】空も飛べるぞ!導入簡単”コライダージャンプ”

スポンサーリンク




こんにちは!
ケーキです♪♪

皆さん!VRChat遊んでますか?
私はVRCに入る楽しみが最近増えてプレイ時間も右肩上りです。
(主にサキュバスとか小動物とか・・・)

それはさておき、
最近フレンドの方でコライダージャンプを利用した移動手段を使用していて
私も移動方法の一つとして持っておきたいなぁ・・・と思いまして。

今回の記事はそんなコライダージャンプを設定していく記事となっております。

コライダージャンプとは?

アバター自体のコライダーと足元に設置したコライダーオブジェクトを接触させることで、高速移動や連続ジャンプができるようになります。
これをコライダージャンプと呼んでおります。

〇こんな方にオススメ
・アバターアクターで飛行モーションを使いたい方
・移動目的の一つとして持っておきたい

◎注意事項
・ワールド製作者の意図しない動きをもたらす恐れがある
 ゲームワールドであればギミックの崩壊
 通常ユーザーが入れない領域への侵入など
 ↑のことをよく思わないワールド製作者もいると思います。
・コライダージャンプを利用した悪用はやめましょう

上記を踏まえてコライダージャンプの利用をお願いいたします。

作業編

ここからはUnity画面を出しながらの解説になります。

アバターの用意

まずはコライダージャンプを利用したいアバターモデルをUnityのHierarchyに用意しておきましょう。

私はおなじみのクロちゃん!
最近少しだけイメチェンをしました♪

コライダーオブジェクトの設定

上記でHirarchyに置いたアバターを選択し、右クリックから”3D Object”→”Quad”を選択

出現したQuad(板モデル)はアバターに対して縦向きになっています。

Unity画面右にあるInspector内のTransformにて、RotationのX軸に90を入れてアバターの足元に敷かれるような形にしましょう。

同じInspector内にある”Mesh Colider”を右側のメニューから”Remove Component”を押して削除します。

削除した後、Inspector内の下にある”Add Component”にて「box」と検索し”Box Colider”を選択する。

ここまでの作業でコライダージャンプのシステムは完成になります!
このままアップロードすると、無限ジャンプができるアバターの完成です。
(現状だと常に飛び続けるような感じにはなってしまいますが。。。後の一手間で解消していきます。)

ちょいと一手間

上記までだと常に飛び続ける仕様ですので、少し手を加えていきます。
VRモード限定にはなってしまうのですが、手を一定以上あげた時だけコライダージャンプを使えるように設定していきたいと思います。

まず、アバターに設定してあるQuad(コライダージャンプ)を選択します。
選択したら右側のInspector内で”Add Conponent”から「constraint」を検索し”Position Constraint”を選択する。

追加した”Position Constraint”は以下のように設定しましょう。
“Is Active”にチェックを入れる
“Constaint Settings”の中のX,Z軸のチェックを外す
“Sources”の右下の+を押して項目を追加し、Hierarchy内からアバターのツリーを開き右手をドラッグ&ドロップする

上記の設定をすることで右手を肩以上にあげるとQuadのコライダーがアバターの足と接触しコライダージャンプができるような仕様になりました。
降りたい時は右手を下げるだけでOK!
↓Unity内での動きはこんな感じ

あとはQuadの見た目を魔法陣みたいにしてあげたりすると見栄えがぐんと上がったりします!
(新規のマテリアルを作成し、魔法陣の画像をいれてあげたり)

実際の動きはこんな感じ↓↓↓

Expressionメニューを使った簡易ON/OFF機能

アバター3.0ではアクションメニューを設定することによって、物のON/OFFなどを自分で設定できるようになりました。
今回はすごい簡易ではありますが、この機能を使ってコライダージャンプをON/OFFできるように設定していきます。

まずはHierarchy内にあるアバターに設定したQuadを選択しInspectorから表示のチェックを外しましょう(非表示にする)

次にUnityの画面下のProject内で右クリックをして、以下の項目を選択・作成しましょう。(名前は任意で)
・Expression Parameters
・Expression Menu
・Animator Controller
・Animation

まずはON/OFFのアニメーションを作りましょう。
Hierarchy内のアバターを選択しCtrl+Dで複製し、複製したアバターに先ほど作成した”Animation”ファイルをドラッグ&ドロップ

次にUnityメニューバーのWindow→Animation→Animationを選択しAnimationウィンドウを表示する。

表示されたAnimationウィンドウに先ほどドラッグ&ドロップしたAnimationファイル名が出ていたらよいです。
(出ていなければHierarchy上の複製したアバターを選択してください)
では、その状態でAnimationウィンドウの”Rec”を押して、複製アバターのQuadを選択し、Inspectorから表示のチェックを入れましょう。
そのあとにAnimationウィンドウ内で、0:00~0:01に同じ項目来るようにコピーしましょう。

Animationファイルは以上で完成です。
複製したアバターは削除してしまって大丈夫です。

では次に元のアバターを選択し、Inspector内の”VRC Avatar Descriptor”を見ていただき(もしなければAdd Componentで追加してください)
項目内のPlayable LayersとExpressionsに先ほど作成した”Animator Controller”,”Expression Parameters”,”Expression Menu”をドラッグ&ドロップしていってください。

次にExpression Parmetersを選択し、Inspector内にあるAddを押しリストを追加しましょう。
そのリストにはCol_Jumpと設定し、型をIntとしました。

次にExpression Menuを選択し、Inspector内にあるAdd Controlを押し項目を追加しましょう。
項目内で名前は先ほどと同じ”Col_Jump”とし、Typeは”Toggle”、Parameterを選ぶと上記で作ったInt型の”Col_Jump”が出てくるので選択しValueを1とします。

では最後にAnimator Controllerの設定をしていきます。
Animator ControllerをダブルクリックするとAnimatorウィンドウが出てきます。
ウィンドウが出たら左上にある”Parameter”タブをクリックしその右にある+ボタンからIntの型を作成してください。
作成したら名前を入れますが、この名前はExpression Parametersで入れた名前と同じものにしてください(今回だとCol_Jump)

作成したらLayersタブに戻り、Base Layerの歯車(設定)からWeightが1になっていることを確認しておきましょう。

次にAnimator内部の処理を作っていきます。
Animator内にあるEntryを選択し右クリックからCreate state → Enptyを選択。
作成したEnptyの名前をInspectorからIdleに変えておきましょう。

次にAnimatorウィンドウ内に作成したAnimationファイルをドラッグ&ドロップしましょう。
(Animator内部も少しだけ整理しました)

Animator内のAny Stateを選択し右クリックから”Make Transition”を選択すると他のStateと線で結べるようになります。
これでIdleとAnimationファイルにそれぞれ線を繋いでください。

繋いだ線を選択するとInspectorに処理の項目が出てきます。

Any Stateから繋いだ線をそれぞれ選択して以下のように設定していきましょう。

お疲れ様です!
以上で簡易のON/OFF機能作成ができました!
(作るのは全然簡易じゃないけど・・・)

実際にVRChatでアクションメニューを見るとExpression Menuで作成した”Col_Jump”が出ております。
これを選択するとトグル式でON/OFFを切り替えられるようになっております!

最後に

コライダージャンプってかなり昔からあって、それを使うのは賛否両論みたいなところもありましたが、
使い方次第ではいいものにもできると思いますので、どうか良き心で利用していただければと思い今回はこの記事を書かせていただきました。

ではでは、今回はここまで
最後まで読んでいただきありがとうございました!!

スポンサーリンク