武器を取り出す、爆発エフェクトを設定する。(VRChat:Avatar3.0)

リボルバーハンマーを作成しました。

https://sarasarenge.booth.pm/items/2841030

今回は初めてBlenderで武器を作成しましたのでその武器を使った設定方法をまとめました。以前のセンティッドさんに拳銃を持たせる記事と大分被る部分はありますが、こちらはリボルバーハンマーを購入頂いた方へ、設定の助けになればと思い改めて投稿します。

後半では武器を爆発させるエフェクトの説明もありますのでリボルバーハンマーに限らず武器等にエフェクトを仕込みたい方は参考にしてみてください。


今回はUnity上でハンマーを持たせたいアバターを既に配置しているところからスタートします。

①アバターにハンマーを持たせる。

②ExpressionMenuからハンマーのON/OFFを切り替える。

③ハンマーに爆発のエフェクトを設定する。

上記の流れで説明していきますので既知の部分は適宜飛ばしてください。


①アバターにハンマーを持たせる。

画像1

ハンマーを持たせたいアバターがScene上に存在するところからスタートです。


画像2

メニューの「Assets」->「ImportPackage」->「CustomPackage」よりダウンロードした「Wep_001_210323.unitypackage」をインポートします。


画像3

画像4

インポートが完了したらProjectより「Sarasa_wep001」->「Prehab」内にある「Sarasa_Wep001.prehab」を「Hierarchy」エリアにD&Dします。


画像5

Scene上にハンマーが表示されますので左上のアイコンから位置、角度、サイズをちょうどいい具合に設定します。


画像6

画像7

画像8

画像9

右腕に配置する場合の目安としては画像のようにヘッドが少し上がる位、前面が少し上を向くくらいに設定するとVRC上でちょうどいい具合に持った状態になります。(※Tポーズ時)

細かい調整は実際にVRChat内で見てから調整しましょう。


画像10

ハンマーの位置が決まったらHierarchy内の「Sarasa_Wep001」を丸ごと

「Armature」->「Hip」->「Spine」->「Chest」->「Shoulder.R」->「Upper_Arm.R」->「Lower_Arm.R」->「Hand.R」下にD&Dします。

※今回は右手に持たせるため「R」にD&Dします。

※アバターによってArmature下の名前は変わることがありますのでその場合もHandを探してその下にD&Dしましょう。


画像11

D&Dすると上記の感じに。

これで手の動きに合わせてハンマーも動くようになったので武器を持たせることに成功しました。


②ExpressionMenuから武器のON/OFFを切り替える。

武器を持たせることは成功しましたがこのままでは常に武器を持った状態になってしまいますのでExpressionMenu(VRC上でボタン長押しで出る緑の輪状のメニュー)から表示のON/OFFを切り替えられるようにします。

画像12

まずはアニメーションファイルを作成します、Projectエリアの任意の場所で右クリック->「Create」->「Animation」を選択してアニメーションファイルを作成します、名前を「Wep_ON」としましょう。


画像13

Hierarchy上のアバターを選択して「Ctrl+D」でアバターのコピーを作成します、コピーしたアバターに先ほど作成した「Wep_ON」ファイルをD&Dします。


画像14

コピーしたアバターを選択した状態でメニューから「Window」->「Animation」->「Animation」を選択します。


画像15

Animationウィンドウが開くので左上の対象が「Wep_ON」になっていることを確認して「AddProperty」をクリックします。

画像16

クリック後に表示されるウィンドウで

「Armature」->「Hip」->「Spine」->「Chest」->「Shoulder.R」->「Upper_Arm.R」->「Lower_Arm.R」->「Hand.R」下にある

「Sarasa_Wep001」の「IsActive」選択して「+」をクリックします。


画像17

すると一覧に追加されるので「0:00」に白の縦線が入っていることを確認して一覧のチェックボックスにチェックを入れます。


画像18

次に右側にある「1:00」部分をクリックして白い縦線が移動したことを確認してこちらにもチェックを入れます。

これでハンマーを表示するアニメーションが完成しました、同じ様に次は非表示にするアニメーションを作成します。

画像19

「Wep_ON」を選択して「Ctrl+D」で複製します、名前を「Wep_OFF」としましょう。

画像20

作成した「Wep_OFF」を同様にコピーしたアバターにD&Dします。


画像21

Animationウィンドウを開いて左上で「Wep_OFF」を選択します。

画像22

画像23

後は同様に「0:00」と「1:00」の設定で、今回はチェックボックスを外します。これで非表示のアニメーションも完成です。


次に作成したアニメーションを実行する設定を行います。

画像24

アバターを選択して右の詳細ウィンドウ内の「PlayableLayers」の「FX」に設定してあるAnimatorファイルを選択します。

画像25

Animatorファイルを選択した状態で画面中央上の「Animator」タブをクリックします。


画像26

Animator画面が表示されます。


画像27

画面内で「Parameters」タブを選択して「+」ボタン->「Bool」をクリックしてパラメータを追加します。


画像28

追加したパラメータには「Weapon」と名付けましょう。


画像29

次に「Layers」タブをクリックして「+」で新規レイヤを作成します。

名前を「Weapon」にしましょう、作成後右の歯車マークをクリックして「Weight」を1に設定します。

画像30

よく忘れがちなので注意!


画像31

「Wepon」レイヤに先ほど作成した「Wepon_OFF」アニメーションファイルをD&Dします。


画像32

オレンジの四角にWepon_OFFがなっていることを確認して次に「Wepon_ON」アニメーションファイルをD&Dします。


画像33

「Weapon_ON」は灰色の四角になります。


画像34

「Wepon_OFF」上で右クリック->「Make Transition」をクリックして出てきた矢印を「Weapon_ON」にくっつけます。


画像35

接続できると画像の感じになります。


画像36

矢印を選択した状態で右の設定を行います。

HasExitTime:チェックを外す

TransitionDuration:0

Condition:「+」を押して行を追加した後「Wepon」「True」を設定。


画像37

次に同様に「Weapon_OFF」で右クリック「Make Transition」で「Weapon_ON」に矢印をくっつけて右側の設定をします。

Conditionの内容は「Wepon」「False」となります。


これで「Weapon」パラメータがTrueの時は武器が表示され、Falseになれば武器が非表示となります。


最後にパラメータの「Weapon」を切り替える設定を行います。


画像38

Hierarchy上のアバターを選択して右の詳細ウィンドウから

「Expressions」->「Parameters」に設定されているExパラメータファイルを選択します。

画像39

選択すると右にパラメータ一覧が表示されます。


画像40

ここに「Weapon」パラメータを「Bool」型で設定します。

※ここで設定するパラメータ名は先ほどAnimator画面で設定したパラメータと同名同型でないと連動してくれません。


画像41

パラメータの設定が出来たら次はメニューの設定です。

「Expressions」->「Menu」に設定されているExメニューファイルを選択します。


画像42

選択すると右側にExメニュー画面が表示されます。


画像43

「AddControl」からメニューを追加します。

Name:Weapon(任意)

Type:Toggle

Parameter:Weapon

これで設定は完了です最後にハンマーを非表示にしておきましょう。

画像44

Hierarchy上の武器オブジェクトを選択して右上のチェックを外します。

画像45

これで完成です。

アップロード後VRChat上でExpressionメニューを表示して「Weapon」を選択することで武器を表示することができます。

もう一度「Weapon」を選択すれば非表示にできます、お疲れさまでした。

画像46



③ハンマーに爆発のエフェクトを設定する。

ここからはみんな大好きパーティクルのお話になります。

ただ今回は無料の爆発パーティクルを利用するため特に難しい設定は必要なく、②の武器表示非表示が出来るなら難なく設定できるものになっています。


まずは無料のパーティクルをダウンロードから始めます。

画像47

画面中央上の「AssetStore」をクリックしてストア画面を開きます。


画像48

検索欄に「Unity Particle」を入力して検索。


画像49

検索結果に出てくる「Unity Particle Pack 5.x」をクリックします。


画像50

詳細画面から「Download」->「Import」します、無料です。


画像51

画像52

インポートが完了したらProject上の

「EffectExample」->「FireExplosionEffects」->「Prehabs」下にある

「BigExplosionEffect.prehab」をHierarchy上にD&Dします。


画像53

配置出来たら「BigExplosionEffect」のPositionを「0,0,0」に設定します。


画像54

爆発します。


画像55

Hierarchy上のアバターを選択して右クリック->「CreateEmpty」を選択します、名前を「ExplosionSystem」としましょう。

画像56

作成した「ExplosionSystem」に先程の「BigExplosionEffect」を丸っとD&Dします。


画像57

次にハンマーを持たせている箇所(今回はHand.R)を選択し「AddComponent」をクリックします。


画像58

Rigbodyを選択しましょう。


画像59

設定値は「Angular Drag」を0にし、「UseGravity」のチェックを外します。


画像60

「ExplosionSystem」を選択して「AddComponent」をクリックします。

画像61

FixedJointを選択します。


画像62

FixedJointを選択するとRigbodyもくっついてきます。

RigBodyは先ほどと同じ設定、FixedJointは「ConnectedBody」に「Hand.R」をD&Dします。

画像63

これで「ExplosionSystem」の爆発が右手に追従して動くようになりました。

次に爆発させる位置を設定します。


画像64

先程消しておいた武器を表示させます。


画像65


画像66

「ExplosionSystem」の位置をハンマーの地面に接触する面に移動します。


画像67

画像68

「BigExplosionEffect」を選択すれば爆発するのでそれを見て位置を決めましょう。

画像69

爆発位置はある程度ランダムなので位置はそこまで厳密には決めなくて大丈夫です。

実際にVRChat上で使ってみて爆発が大きすぎる場合は「BigExplosionEffect」の大きさを調整したり同じフォルダにある「SmallExplosionEffect」に変えてみたりしましょう。


画像70

爆発させる位置が決まったら「BigExplosionEffect」のチェックを外します。

画像71



後は武器を表示非表示させた設定と同じ流れになります。

画像72

任意の場所にアニメーションファイルを作成。名前は「Explosion_ON」とします。


画像73

コピーしたアバターに「Explosion_ON」ファイルをD&Dします。

※本アバターに「ExplosionSystem」等追加しているため、武器表示非表示に作成したコピーアバターは削除して再度「Ctrl+D」でコピーアバターを作成してください。


画像74

Animationウィンドウで「Explosion_ON」になっていることを確認。


画像75

「AddProperty」で「BigExplosionEffect」のIsActiveを選択して「+」


画像76

「0:00」にチェックを入れる。

画像77

「1:00」の方も忘れずに選択してチェックを入れる。

同様に「Explosion_OFF」アニメーションを作成します。


画像78

「0:00」と「1:00」のチェックが外れていること。


画像79

アバターのFXに設定されているアニメーターファイルを選択してAnimatorタブをクリックしてAnimator画面を開きます。


画像80

今回は右手をグーにしたときに爆破させようと思うのでパラメータの追加はなしでLayers画面にて「+」で新規レイヤを作成します。

名前を「WeaponAttack」とします。Weightを1にするのを忘れずに。


画像81

「Explosion_OFF」「Explosion_ON」の順でレイヤ内にD&Dします。

「Explosion_OFF」⇒オレンジの四角、「Explosion_ON」⇒灰色の四角

となること。


画像82

「Explosion_OFF」上で右クリック->「Make Transision」を選択し「Explosion_ON」に矢印を付けます。

設定値は

HasExitTime:チェックを外す

TransitionDuration:0

Condition:「+」を2回押して行を追加した後以下を設定

・「Wepon」「True」

・「GestureRight」「Equals」「1」

これで「ハンマーを出しているとき」かつ「手をグーにしたとき」に爆発が起きるようになるため暴発を防ぐことができます。


画像83

「Explosion_ON」上で右クリック->「Make Transision」を選択し「Explosion_OFF」に矢印を付けます。

設定値は

HasExitTime:チェックを外す

TransitionDuration:0

Condition:「+」を押して行を追加した後以下を設定

・「GestureRight」「EotEquals」「1」

これで手をグーにしている間だけ爆発エフェクトが発生するようになります。

以上ですべての設定完了です、最後に一時的に表示していた武器を非表示に戻しましょう。

画像84


アップロードを行いVRChat内でまずExpressionメニューから武器を表示し、そのうえで右手をグーにしたときハンマーの前面から爆発します、地面にたたきつけたタイミングで手をグーにするといいでしょう。

画像85

やはりちょっと爆発大きすぎますかね^^;


リボルバーハンマーは後ろのハンマー部分が動いたり、シリンダーが回転出来たりするので、そちらを利用したギミックの設定方法についても手の空いたタイミングで更新していこうと思います。


リボルバーハンマーをお買い上げ頂いた方もエフェクト設定を習得するための方も、最後まで読んて頂きありがとうございます、よいVRCライフを。

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