備忘録_VRChatで弾を飛ばすまで

 (2020.8.7 追記 Avatars3.0リリースに伴い各種変更がありそうだ…勉強しなおしだな)

 6月ごろからVRChatに触れているが、アバターに色々仕込んでいる人々を見て自分もやってみたいと思ったので試してみることにした。
 目標設定:アバターに鉄砲を持たせて、そこから任意のタイミングで弾を飛ばすこととする。
 別に鉄砲にこだわりがあるわけではないが、これが出来るようになれば魔法とか花吹雪とか花火とか、別のものも作れるだろうと思い、まずはこの目標設定とした。
 
少しずつその時々分かったことをTwitterでつぶやいていたが、見読性に欠けるので一つの記事としてまとめることにした。つまりこの記事は、越えるべき段階別に分類した役に立ちそうな記事へのリンクと、その時々理解したことを記した自分用の備忘録である。適宜更新するつもりだったが、めんどくさがりなので多分これ以上は更新しないと思う。

0.基礎知識

 基本的に私はUnityを触ったことがない人間なので、大まかな流れを掴んでおかないと爆死することは不可避である。実際に作業を行った偉大なる先人の方々の記事を読んでみた。以後の項目は全てこれらの記事を前提としている。


1.アバターに鉄砲を持たせる

 鉄砲そのものはBooth等で素材データが販売されているので適宜購入する。
 Unityに読み込み、持たせたいアバターの手のボーンへ配置すれば、手に追従して動いてくれる。

2.鉄砲の弾を準備する

 鉄砲の弾は、Unityのパーティクルシステムという機能を用いて、それらしい物体が移動するエフェクトを作ることで用意できる。また、Unityのアセットストアでも作成済みのパーティクルを購入することが出来る。

3.鉄砲から弾が出るようにする

 何らかのトリガーにより、弾のエフェクトを再生させるようにすれば良い。表情を変えたときに色々発動するような仕組みを作る。表情を変えるためにはアニメーションオーバーライドという仕組みを利用する。

 そのうえで、ローカルではなくワールドで弾を正しく動かすための工夫が必要になる。

今はConstraintという方式が主流らしい。

https://note.com/berylmoon/n/neb481c4f1f9d
https://note.com/berylmoon/n/nc00ca751876b


別方式だがこのサイトも参考になりそうだ。


4.鉄砲を出し入れ出来るようにする

 これはgatosyocora氏が作成し無償で公開して下さっているEmoteswitchというギミックを使えば簡単に実現可能。Emoteの中にオブジェクトを出し入れするボタンが追加される。
 しかし、このように仕込んだ武器から弾を発射させるには一手間必要になる。


この記事が気に入ったらサポートをしてみませんか?