武器を取り出す、爆発エフェクトを設定する。(VRChat:Avatar3.0)
リボルバーハンマーを作成しました。
https://sarasarenge.booth.pm/items/2841030
今回は初めてBlenderで武器を作成しましたのでその武器を使った設定方法をまとめました。以前のセンティッドさんに拳銃を持たせる記事と大分被る部分はありますが、こちらはリボルバーハンマーを購入頂いた方へ、設定の助けになればと思い改めて投稿します。
後半では武器を爆発させるエフェクトの説明もありますのでリボルバーハンマーに限らず武器等にエフェクトを仕込みたい方は参考にしてみてください。
今回はUnity上でハンマーを持たせたいアバターを既に配置しているところからスタートします。
①アバターにハンマーを持たせる。
②ExpressionMenuからハンマーのON/OFFを切り替える。
③ハンマーに爆発のエフェクトを設定する。
上記の流れで説明していきますので既知の部分は適宜飛ばしてください。
①アバターにハンマーを持たせる。
ハンマーを持たせたいアバターがScene上に存在するところからスタートです。
メニューの「Assets」->「ImportPackage」->「CustomPackage」よりダウンロードした「Wep_001_210323.unitypackage」をインポートします。
インポートが完了したらProjectより「Sarasa_wep001」->「Prehab」内にある「Sarasa_Wep001.prehab」を「Hierarchy」エリアにD&Dします。
Scene上にハンマーが表示されますので左上のアイコンから位置、角度、サイズをちょうどいい具合に設定します。
右腕に配置する場合の目安としては画像のようにヘッドが少し上がる位、前面が少し上を向くくらいに設定するとVRC上でちょうどいい具合に持った状態になります。(※Tポーズ時)
細かい調整は実際にVRChat内で見てから調整しましょう。
ハンマーの位置が決まったら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しましょう。
D&Dすると上記の感じに。
これで手の動きに合わせてハンマーも動くようになったので武器を持たせることに成功しました。
②ExpressionMenuから武器のON/OFFを切り替える。
武器を持たせることは成功しましたがこのままでは常に武器を持った状態になってしまいますのでExpressionMenu(VRC上でボタン長押しで出る緑の輪状のメニュー)から表示のON/OFFを切り替えられるようにします。
まずはアニメーションファイルを作成します、Projectエリアの任意の場所で右クリック->「Create」->「Animation」を選択してアニメーションファイルを作成します、名前を「Wep_ON」としましょう。
Hierarchy上のアバターを選択して「Ctrl+D」でアバターのコピーを作成します、コピーしたアバターに先ほど作成した「Wep_ON」ファイルをD&Dします。
コピーしたアバターを選択した状態でメニューから「Window」->「Animation」->「Animation」を選択します。
Animationウィンドウが開くので左上の対象が「Wep_ON」になっていることを確認して「AddProperty」をクリックします。
クリック後に表示されるウィンドウで
「Armature」->「Hip」->「Spine」->「Chest」->「Shoulder.R」->「Upper_Arm.R」->「Lower_Arm.R」->「Hand.R」下にある
「Sarasa_Wep001」の「IsActive」選択して「+」をクリックします。
すると一覧に追加されるので「0:00」に白の縦線が入っていることを確認して一覧のチェックボックスにチェックを入れます。
次に右側にある「1:00」部分をクリックして白い縦線が移動したことを確認してこちらにもチェックを入れます。
これでハンマーを表示するアニメーションが完成しました、同じ様に次は非表示にするアニメーションを作成します。
「Wep_ON」を選択して「Ctrl+D」で複製します、名前を「Wep_OFF」としましょう。
作成した「Wep_OFF」を同様にコピーしたアバターにD&Dします。
Animationウィンドウを開いて左上で「Wep_OFF」を選択します。
後は同様に「0:00」と「1:00」の設定で、今回はチェックボックスを外します。これで非表示のアニメーションも完成です。
次に作成したアニメーションを実行する設定を行います。
アバターを選択して右の詳細ウィンドウ内の「PlayableLayers」の「FX」に設定してあるAnimatorファイルを選択します。
Animatorファイルを選択した状態で画面中央上の「Animator」タブをクリックします。
Animator画面が表示されます。
画面内で「Parameters」タブを選択して「+」ボタン->「Bool」をクリックしてパラメータを追加します。
追加したパラメータには「Weapon」と名付けましょう。
次に「Layers」タブをクリックして「+」で新規レイヤを作成します。
名前を「Weapon」にしましょう、作成後右の歯車マークをクリックして「Weight」を1に設定します。
よく忘れがちなので注意!
「Wepon」レイヤに先ほど作成した「Wepon_OFF」アニメーションファイルをD&Dします。
オレンジの四角にWepon_OFFがなっていることを確認して次に「Wepon_ON」アニメーションファイルをD&Dします。
「Weapon_ON」は灰色の四角になります。
「Wepon_OFF」上で右クリック->「Make Transition」をクリックして出てきた矢印を「Weapon_ON」にくっつけます。
接続できると画像の感じになります。
矢印を選択した状態で右の設定を行います。
HasExitTime:チェックを外す
TransitionDuration:0
Condition:「+」を押して行を追加した後「Wepon」「True」を設定。
次に同様に「Weapon_OFF」で右クリック「Make Transition」で「Weapon_ON」に矢印をくっつけて右側の設定をします。
Conditionの内容は「Wepon」「False」となります。
これで「Weapon」パラメータがTrueの時は武器が表示され、Falseになれば武器が非表示となります。
最後にパラメータの「Weapon」を切り替える設定を行います。
Hierarchy上のアバターを選択して右の詳細ウィンドウから
「Expressions」->「Parameters」に設定されているExパラメータファイルを選択します。
選択すると右にパラメータ一覧が表示されます。
ここに「Weapon」パラメータを「Bool」型で設定します。
※ここで設定するパラメータ名は先ほどAnimator画面で設定したパラメータと同名同型でないと連動してくれません。
パラメータの設定が出来たら次はメニューの設定です。
「Expressions」->「Menu」に設定されているExメニューファイルを選択します。
選択すると右側にExメニュー画面が表示されます。
「AddControl」からメニューを追加します。
Name:Weapon(任意)
Type:Toggle
Parameter:Weapon
これで設定は完了です最後にハンマーを非表示にしておきましょう。
Hierarchy上の武器オブジェクトを選択して右上のチェックを外します。
これで完成です。
アップロード後VRChat上でExpressionメニューを表示して「Weapon」を選択することで武器を表示することができます。
もう一度「Weapon」を選択すれば非表示にできます、お疲れさまでした。
③ハンマーに爆発のエフェクトを設定する。
ここからはみんな大好きパーティクルのお話になります。
ただ今回は無料の爆発パーティクルを利用するため特に難しい設定は必要なく、②の武器表示非表示が出来るなら難なく設定できるものになっています。
まずは無料のパーティクルをダウンロードから始めます。
画面中央上の「AssetStore」をクリックしてストア画面を開きます。
検索欄に「Unity Particle」を入力して検索。
検索結果に出てくる「Unity Particle Pack 5.x」をクリックします。
詳細画面から「Download」->「Import」します、無料です。
インポートが完了したらProject上の
「EffectExample」->「FireExplosionEffects」->「Prehabs」下にある
「BigExplosionEffect.prehab」をHierarchy上にD&Dします。
配置出来たら「BigExplosionEffect」のPositionを「0,0,0」に設定します。
爆発します。
Hierarchy上のアバターを選択して右クリック->「CreateEmpty」を選択します、名前を「ExplosionSystem」としましょう。
作成した「ExplosionSystem」に先程の「BigExplosionEffect」を丸っとD&Dします。
次にハンマーを持たせている箇所(今回はHand.R)を選択し「AddComponent」をクリックします。
Rigbodyを選択しましょう。
設定値は「Angular Drag」を0にし、「UseGravity」のチェックを外します。
「ExplosionSystem」を選択して「AddComponent」をクリックします。
FixedJointを選択します。
FixedJointを選択するとRigbodyもくっついてきます。
RigBodyは先ほどと同じ設定、FixedJointは「ConnectedBody」に「Hand.R」をD&Dします。
これで「ExplosionSystem」の爆発が右手に追従して動くようになりました。
次に爆発させる位置を設定します。
先程消しておいた武器を表示させます。
「ExplosionSystem」の位置をハンマーの地面に接触する面に移動します。
「BigExplosionEffect」を選択すれば爆発するのでそれを見て位置を決めましょう。
爆発位置はある程度ランダムなので位置はそこまで厳密には決めなくて大丈夫です。
実際にVRChat上で使ってみて爆発が大きすぎる場合は「BigExplosionEffect」の大きさを調整したり同じフォルダにある「SmallExplosionEffect」に変えてみたりしましょう。
爆発させる位置が決まったら「BigExplosionEffect」のチェックを外します。
後は武器を表示非表示させた設定と同じ流れになります。
任意の場所にアニメーションファイルを作成。名前は「Explosion_ON」とします。
コピーしたアバターに「Explosion_ON」ファイルをD&Dします。
※本アバターに「ExplosionSystem」等追加しているため、武器表示非表示に作成したコピーアバターは削除して再度「Ctrl+D」でコピーアバターを作成してください。
Animationウィンドウで「Explosion_ON」になっていることを確認。
「AddProperty」で「BigExplosionEffect」のIsActiveを選択して「+」
「0:00」にチェックを入れる。
「1:00」の方も忘れずに選択してチェックを入れる。
同様に「Explosion_OFF」アニメーションを作成します。
「0:00」と「1:00」のチェックが外れていること。
アバターのFXに設定されているアニメーターファイルを選択してAnimatorタブをクリックしてAnimator画面を開きます。
今回は右手をグーにしたときに爆破させようと思うのでパラメータの追加はなしでLayers画面にて「+」で新規レイヤを作成します。
名前を「WeaponAttack」とします。Weightを1にするのを忘れずに。
「Explosion_OFF」「Explosion_ON」の順でレイヤ内にD&Dします。
「Explosion_OFF」⇒オレンジの四角、「Explosion_ON」⇒灰色の四角
となること。
「Explosion_OFF」上で右クリック->「Make Transision」を選択し「Explosion_ON」に矢印を付けます。
設定値は
HasExitTime:チェックを外す
TransitionDuration:0
Condition:「+」を2回押して行を追加した後以下を設定
・「Wepon」「True」
・「GestureRight」「Equals」「1」
これで「ハンマーを出しているとき」かつ「手をグーにしたとき」に爆発が起きるようになるため暴発を防ぐことができます。
「Explosion_ON」上で右クリック->「Make Transision」を選択し「Explosion_OFF」に矢印を付けます。
設定値は
HasExitTime:チェックを外す
TransitionDuration:0
Condition:「+」を押して行を追加した後以下を設定
・「GestureRight」「EotEquals」「1」
これで手をグーにしている間だけ爆発エフェクトが発生するようになります。
以上ですべての設定完了です、最後に一時的に表示していた武器を非表示に戻しましょう。
アップロードを行いVRChat内でまずExpressionメニューから武器を表示し、そのうえで右手をグーにしたときハンマーの前面から爆発します、地面にたたきつけたタイミングで手をグーにするといいでしょう。
やはりちょっと爆発大きすぎますかね^^;
リボルバーハンマーは後ろのハンマー部分が動いたり、シリンダーが回転出来たりするので、そちらを利用したギミックの設定方法についても手の空いたタイミングで更新していこうと思います。
リボルバーハンマーをお買い上げ頂いた方もエフェクト設定を習得するための方も、最後まで読んて頂きありがとうございます、よいVRCライフを。
この記事が気に入ったらサポートをしてみませんか?