見出し画像

[VRC]ペッパーボックス拳銃(COP. 357)を利用した残弾が減っていく アバター用残弾システム解説

1.始めに

こんにちは、T.D.200です。残弾システムがVRCのTwitter界隈で流行してると勝手に判断して「世界的ですもんね 乗るしかない、このビッグウェーブに」と思い絶対誰も解説しないリボルバー残弾システムの書置きしておこうかなと思いましたがペッパーボックス型の方が珍しそうで説明がリボルバーと比べて4手順ぐらい楽だったので最初の説明には良いと思い途中からこちらにしました。メモ程度なので参考になれば幸いです。(リボルバー型は途中で投げ出した「カメラとレンダーテクスチャを利用した望遠鏡」の記事が終わり次第記しておきます。)
Write DefaultsONで作成しているため不具合不利益が起こる可能性があります。

この記事を応用すれば他の銃のシステムにも使えます。

※アバターに小物を持たせてアニメーションでON OFFにしたりパーティクルを出したり出来る事が前提です。小物の出し方が分からない又はアニメーションクリップの作成がわからない方はこちらを参考までにどうぞ..


2.用意するもの

・銃のモデル

・unity2019

・最新のVRCSDK

・やる気

3.仕組み説明

私が普段使用している残弾システムはAnimation Stateの推移でアニメーションを再生して残弾が減っているように見せています。そしてリロードした時以外にも銃を収納すると残弾が完全に装填されるようにしています。

※ 3.仕組み説明 で使用する写真は全てCOP. 357 で使用した残弾システムです。

画像3
画像2

↑全体

1.  Stateごとに再生されるアニメーション説明(推移ごとに説明が入ってるので長いです)

画像4

↑汚くてすみません..

※銃自体は通常は格納していますが残弾数の説明のためにONにしています。

①何も入れてないです

画像5
画像7

②一発目を撃つアニメーションが再生されます。

画像6
画像8

③1発目を射撃した後の待機状態が再生されます

画像9
画像10

④二発目を撃つアニメーションが入っています。

画像22


画像11

⑤二発目を射撃した後の待機状態が再生されます

画像22


画像14

⑥三発目を撃つアニメーションが再生されます。

画像22
画像11

⑦三発目を射撃した後の待機状態が再生されます

画像21
画像17

⑧四発目を撃つアニメーションが再生されます。

画像22
画像20

⑨四発目を射撃した後(弾切れ)の待機状態が再生されます

画像22
画像21

⑩カラ撃ちのアニメーションが再生されます

画像23
画像24

↑引き金が動くのとカラ撃ちの音が鳴ります

⑪リロードのアニメーションが再生されます

画像25
画像42

⑫EXITに導く時に分かりやすくするためのものなのでアニメーションは再生されないです。

画像26

2.どの様な parameter を基本的に使用しているか

 ・GestureRight (今回はこちらを使用します)

または

・GestureLeft


・道具を取り出すparameter  (今回は「道具持ち替え」というparameterです)

最低限の場合はこれでOKです。

・Safety用のBoolのパラメーター

・selector用のBoolのパラメーター

などがあると機能を増やす事も可能です。

3.どのような時にステートを推移させているか

今回は「GestureRight」 =1    =5     NOT=1  NOT=5

※fistとRock 'n' roll

「道具持ち替え」=47

※ 「道具持ち替え」(47)で銃(COP. 357)が出ます

を使用します。

画像27

↑アバターを読み込んだ直後です。道具を出していないので推移しないようになっています。(EXITに推移している。)

画像28

↑道具を出さない限りGestureRight=1になっても推移しないようにしています

画像29

↑条件が揃う(道具を出しfistにする)と推移して射撃アニメーションが再生される)

画像30

GestureRight→NOT=1(fistではなくなると)推移します。

ここで分岐ができるようになります。(2発目射撃待機~最終弾射撃待機 まで)

・銃を収納した場合

画像31

↑銃をしまうと強制的にEXITに推移します。(「道具持ち替え」がNOT=47になるので)

・射撃した場合

画像32

↑ジェスチャーをfist(GestureRight=1)にすると次にの射撃アニメーションに推移します。

・リロードした場合

画像33

↑ジェスチャーをRock 'n' roll((GestureRight=5)にするとリロードアニメーションに推移します。

画像34

↑ちなみに次にジェスチャーをRock 'n' rollではなく(GestureRight→NOT=5)すると初期状態に推移します。

※↓ここから説明のために右に寄せます。

画像37

⑤残弾0状態の場合

画像35

↑残弾が0になり待機している状態(ほとんどの自動式拳銃ならスライドが後退してロックがかかっている状態)

ここでも分岐があります

・銃を収納した場合

画像38

↑さっきと同じで銃をしまうと強制的にEXITに推移します。(「道具持ち替え」がNOT=47になるので)

・カラ撃ちした場合(銃によっては動作は変わる)

画像39

↑ジェスチャーをfist(GestureRight=1)にするとカラ撃ちアニメーションに推移します。

画像40

GestureRight→NOT=1(fistではなくなると)打ち切りの待機状態に推移して戻ります。

・リロードした場合

画像41

↑ジェスチャーをRock 'n' roll((GestureRight=5)にするとリロードアニメーションに推移します。

画像34

↑さっきと同じでジェスチャーをRock 'n' rollではなく(GestureRight→NOT=5)すると初期状態に推移します。


解説はここでお終いです。お疲れ様でした。

後書き

残弾システム楽しいので是非作ってみてくださいね。

感想や指摘があれば書いていただけると幸いです。

お知らせ:現在Avatar Parameter Driverを使用した残弾システム製作中です。そのうち記事にすると思うので良かったらみてください!


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