VRChatで空を飛ぶ方法(外部ツール不使用)
今回はVRChatで空を飛べるアバターを作成する方法について解説します。
宗教上の理由でPlayspaceMoverなどの外部ツールを利用できない方向けです。
外部ツールに比べると不便な点がいくつかあります。
・操作が若干複雑
・飛行中に変な方向にぶっとんだり、回転が止まらなくなることがある
この辺を許容できる方のみ、実践してみるとよいと思います。
記事の内容は2018/09/24時点でのものです。
今後のアップデートなどで使えなくなる場合があります。
また、この方法を使用したことで何か不利益が生じたとしても、
私は責任を負いませんので自己責任で実行をお願いします。
完成図
まず最初に、これが実際に飛んでみた感じです。
とんだ pic.twitter.com/o3m7feyBpw
— きり (@KiliWare) 2018年9月24日
火炎放射のパーティクルを手と足につけています。
動画では上方向へ上昇しているだけですが、
空中で浮遊したまま横方向へ移動することもできます。
空を飛ぶ仕組み
ColliderのついたCubeを足元に置いて、足場として利用することで空中浮遊を実現しています。
足元のCubeにジャンプで飛び乗る動作を繰り返すことにより、空中に浮くことができます。
以下、具体的な流れです。
1. 足元にColliderのついたCubeを置き、アバターの子オブジェクトとして非アクティブにする
2. CubeをActiveにするAnimationを作成し、AnimationOverrideControllerへと割り当てる
3. CubeのMeshを非表示にして見えなくする
4. VRChatへアップロードした後、VRChat内でAnimationを再生しつつジャンプを連打すると、キャラクターが浮遊する
以下で画像付きの解説を行います。
画像付き解説
1. 足元にColliderのついたCubeを置き、アバターの子オブジェクトとして非アクティブにする
Unityのシーン上にCubeを作成して、アバターの子オブジェクトとします。
その後、値をresetして画像のようにします。
Cubeを非アクティブにします。
2. CubeをActiveにするAnimationを作成し、AnimationOverrideControllerへと割り当てる
新規にAnimationを作成し、Animation再生中にCubeをActiveにするようにします。
Animationの作成の方法については、こちらの記事がとても参考になります!
shiasakura.hatenablog.com
(私も初めて表情をつけた際にお世話になりました...感謝)
作成したら、使用しているAnimationOverrideControllerに割り当てます。
3. CubeのMeshを非表示にして見えなくする
CubeのMeshRendererコンポーネントのチェックを外して、Meshを非表示にします。
4. VRChatへアップロードした後、VRChat内でAnimationを再生しつつジャンプを連打すると、キャラクターが浮遊する
これで下準備は完成です。
ですがおそらく、後述の変な動作に対処するため、何回か試行錯誤を繰り返すことになると思います
VRChat内でアップロードしたアバターへ切り替え、
先ほど作成したAnimationを再生します。
そのAnimationを再生した状態を維持したままジャンプを連打します。
上手く設定できていれば、あなたのアバターが空へと舞い上がっていく様を見ることができるでしょう。
空に浮いている状態は、ColliderのついたCubeに乗ることで生じているため、
Animationを解除すると浮遊状態も解除され、下に落ちます。
欠点
VRのコントローラーだと、片方のコントローラーだけで上記の操作を行うのは難しいです。
上昇したい場合、片方のコントローラーでAnimationを再生した状態で、もう片方でジャンプを繰り返す。
横移動したい場合、移動を行う方ではないコントローラーでAnimationを再生するようにして、移動を行う。
このような若干複雑な操作を行うことになります。
また、アバターやプレイヤーの身長の設定によっては、
空中浮遊中に変な方向へぶっとんだり、回転が止まらなくなったりします。
— きり (@KiliWare) 2018年9月24日
正直、この辺の不具合の原因が私にはわからないです(すみません)
Cubeの位置・プレイヤーの身長設定などの数値を変更して、
不具合が起きないような設定を見つけ出すか、運命を受け入れるかしていただきたいです...
終わりに
結構不便な点がありますが、外部ツールをインストールせずにUnityだけで完結することができるので、
一定の層に需要があるのではないかと思います。
変な不具合の解消法が分かった方は、教えていただきたいです。
今回の記事で使用させていただいたアバターは、
こまど (@komado_vrc) | Twitterさんの「しろねこラムネ」を改変したモデルです。
booth.pm
ありがとうございました。