![見出し画像](https://assets.st-note.com/production/uploads/images/99555322/rectangle_large_type_2_e2b5f5be1b4ce82c16fbb0cdda84e864.png?width=1200)
【VRChat】EXメニューなしに物を出し入れしたい!(導入方法)
23/10/04 内容一部修正しました
[追記]
応用としてこちらの方法もおすすめです。誤操作が減ります。本記事を読んだ後に読むとわかりやすいかもしれないです。
こんにちは!!!
魔法と眼鏡とロポリこんちゃんが好きなVRC民のじゃこです。
今回は↓のように、
グラブする(トリガーで握る)ことで物を手に持つことができるアバターギミックの導入方法について解説します。
EXメニューを使わずに物を出し入れする方法について、noteにまとめてみました!
— じゃこピータン (@Jako_piitan) March 7, 2023
動画みたいなことができます。リプライにあるので良ければ見てね!#VRChat pic.twitter.com/0nUd8DQOid
2本立ての記事です。
『導入方法』だけで導入できます。
『解説と応用』は詳しく知りたい方向けです。
前提条件
Unity2019.4.31f1
VRChat SDK -Avatars 3.1.10
アバターのアップロード方法や、手の形の変更方法は割愛します。
基本的にはQuest対応です(たぶん)。非対応の項目は明記します。
導入方法
今回は、ハオラン君にホルスターの銃をEXメニューを使わず出し入れしてもらいます。
今回は↓を使用させていただきました。素敵なモデルを本当にありがとうございます。
オリジナル3Dモデル ハオランーHAOLAN (かなリぁさんち 様)
【無料品】ハンドガン (virtualgaroth様)
まず、アバターと出し入れする物がインポートされたUnityファイルをご用意ください。
(1) 出した状態、しまった状態の物の配置
「ホルスターに格納された銃」と「手に装備された銃」を配置します。
![](https://assets.st-note.com/img/1677712396780-AsGmiMDxdC.png?width=1200)
![](https://assets.st-note.com/img/1677712868649-2ImgE1HNPN.png?width=1200)
(2) PhysBoneを使ったスイッチの作成
銃の表示・非表示を切り替えるためのスイッチを作成します。
①スイッチ用Objectの作成
![](https://assets.st-note.com/img/1696411756918-5VjYSLCWUe.png?width=1200)
![](https://assets.st-note.com/img/1696411856422-db9cimNPGL.png?width=1200)
(画像にはMeshRenderなどありますが、間違いです。実際はありません。)
②スイッチ用PhysBoneの設定
![](https://assets.st-note.com/img/1677752439949-sGMqe5Hf80.png?width=1200)
![](https://assets.st-note.com/img/1696411262731-7xmfAoJFbY.png?width=1200)
(3) 物の出し入れアニメーションの作成
銃の表示・非表示を切り替えるアニメーションを作成します。
①取り出す用Animationファイルの作成
![](https://assets.st-note.com/img/1677712882990-dCb559CmdB.png?width=1200)
②取り出す用Animationの編集
![](https://assets.st-note.com/img/1677712891969-B5X5QXP3Hj.png?width=1200)
この操作で新たに作成されるコントローラーファイルは作業終了後に削除して大丈夫です。
![](https://assets.st-note.com/img/1677712896150-ghmk4GiCbN.png?width=1200)
録画中に関係ない操作をしないように!
③しまうAnimationの作成
![](https://assets.st-note.com/img/1677712901085-4oH3d3KoKk.png?width=1200)
これで「取り出すAnimation」「しまうAnimation」が完成しました!
ここから少し難しいので、休憩をはさみながら読んでくださいね。
(4) FXレイヤーコントローラーの編集
FXレイヤーコントローラーを作成します。まず、編集用のコントローラーを複製して作りましょう!
![](https://assets.st-note.com/img/1677713870301-rozp15C9DM.png?width=1200)
(4)-1 PhysBoneパラメータの設定
スイッチがグラブされたら値の変わるパラメータを設定します。
![](https://assets.st-note.com/img/1677988452444-z5bDwPYlpL.png?width=1200)
大文字小文字完全一致です!
(4)-2 出し入れ切替えのアニメーションレイヤーの作成
スイッチをグラブして離す操作を受けて、『入れる⇔出す』を切り替える仕組みを作ります。
![](https://assets.st-note.com/img/1678268319514-vMYARErTB0.png?width=1200)
Animation Layersについてはこちらのサイトがおすすめ
![](https://assets.st-note.com/img/1677989682142-0sLTEjGBsH.png?width=1200)
わかりやすいように名前を変更しましょう。
![](https://assets.st-note.com/img/1677757161944-4f9CwxqCmr.png?width=1200)
『スイッチを離し』たら【上のNew Stateから手に持った状態へ遷移】します。
下のNew Stateも同じです。
![](https://assets.st-note.com/img/1677758264586-feYj9i8kPG.png?width=1200)
![](https://assets.st-note.com/img/1677758640418-AVpSycbrWV.png?width=1200)
今回は先に作ったスイッチをグラブしているか、していないかを遷移条件にします。
![](https://assets.st-note.com/img/1677991038899-8GkcPv4zTX.png?width=1200)
true=『スイッチがグラブされている』、false=『スイッチがグラブされていない』
![](https://assets.st-note.com/img/1678022306512-W8EFhPmkac.png?width=1200)
![](https://assets.st-note.com/img/1678022441958-j3HnVAbdlT.png?width=1200)
これで、『スイッチをグラブ』→『スイッチを離す』という操作で、出す⇔しまうを切り替えられるようになりました。
(4)-3 Animation出力のアニメーションレイヤー作成
最後に、『銃を出す』『銃をしまう』のAnimationを出力できるようにしましょう!
![](https://assets.st-note.com/img/1678023509632-aQqKpSxB3y.png?width=1200)
![](https://assets.st-note.com/img/1678023676804-iSYhmFpImy.png?width=1200)
Stateを右クリック→『SetAsLayerDefaultState』でオレンジ色にできます。
![](https://assets.st-note.com/img/1678024071191-lPlp1hgD7N.png?width=1200)
![](https://assets.st-note.com/img/1678268175928-Ja5hYa9fu0.png?width=1200)
![](https://assets.st-note.com/img/1678268199283-zh7LUGIHyT.png?width=1200)
(4)-4 作成したアニメーションレイヤーの適用
![](https://assets.st-note.com/img/1678030573603-6qqCXGWz5a.png?width=1200)
今回の改変によりバグが起こった場合は、元のコントローラーを適用すれば元に戻ります。
![](https://assets.st-note.com/img/1678030567080-gtytWPizuJ.png?width=1200)
EXパラメータについてはこちらのサイトがおすすめです。
![](https://assets.st-note.com/img/1678030560369-0w5l8xK8Nm.png?width=1200)
これで完成です!おつかれさまでした!
解説と応用
長くなっちゃったので、記事を分けました。
今回使ったコンポーネントの簡単な解説と応用について書いてあります。
こんなこと書いてます
![](https://assets.st-note.com/production/uploads/images/99428438/picture_pc_2fe110811d14e7e8e0cb9ecf1387868d.gif?width=1200)
![](https://assets.st-note.com/production/uploads/images/99643368/picture_pc_1e95da42831e45752262c6d3c5aa1934.gif?width=1200)
さいごに
最近たまたま、銃の出し入れについて聞かれることが重なったので、このような記事を書いてみました。
でも、銃のことは全然わからないので、好きな人から「構え方とか違う!」とか怒られないかドキドキしながら作ってます。間違ってても許してね!
今回、理屈はなるべく減らして、具体的なUnity操作のみに絞って書くことを意識してみました。逆にわかりにくくなってたらごめんなさい。
もし、記事の内容に間違いや、より良い方法あれば、教えてもらえたら嬉しいです。
書き始めたら楽しくなっちゃったので、またこういった解説記事を書きたいと思っています。
最後に、ここまで読んでくれて本当にありがとうございました!
今回の記事は一部tofuさんに教えてもらった方法を参考にさせてもらいました。tofuさんありがとー!
参考にさせていただいたサイト
PhysBone VRChat アバター改変 AvatarDynamics 刀の抜刀納刀(【VRChat】unity最強解説の笹田つるぎ様)
【VRChat】PhysBoneの設定方法・Componentについて (しぐにゃもブログ様)
【VRChat】Avatars3.0の基礎、アニメーターについてのおさらい☆
【Avatars3.0】Avatars3.0の仕組みについて!VRChatから内部の動きの解説 (めかにゃんこ様)