好きなアイテムを触って出し入れできるテンプレートの導入方法
boothで公開中の「好きなアイテムを触って出し入れできるテンプレート」の導入手順です
https://mimihouse.booth.pm/items/3902705
どんなことができるの?
・アバターの指定した箇所に手を触れることで任意のアイテムを出し入れすることが出来ます。
準備
・出し入れしたいアイテムを用意してください。
・VRCSDKを最新版に更新してください。
・AnimationValidator4VRCをインポートしてください。
https://booth.pm/ja/items/2067424
・VRCAvatars3Toolsをインポートしてください。
https://booth.pm/ja/items/2207020
手順について
配布しているテンプレートは右手で触れた時に反応する物になっています。左手向けの設定は途中で補足しているのでご確認ください。
導入手順
1.unitypackage のインポート
boothよりダウンロードした「contact_item_template.unitypackage」をインポートします。
ファイルは「Assets/mimi_house/contact_item_template」フォルダに展開されます。
2.触る場所の設定
アイテムを出す時に触りたい場所を設定します。
contact_item_templateフォルダ内の「contact_collider」をアバターの任意の場所に投入します。
投入した「contact_collider」を選択し、Inspectorの値を変更して触れたい場所の位置や大きさを調整します。
左手に反応させる場合
Collision Tagsの設定を「Hand L」に変更して下さい。
3.出し入れするアイテムを設置
contact_item_template フォルダ内の「contact_item」をアイテムを出現させたい場所に投入します。
投入した「contact_item」の中に出し入れしたいアイテムを投入し、位置や大きさを調整します。
調整後は「contract_item」を非表示にしてもOKです。
4.ギミックの導入① アニメーションの設定
ギミックが動作するように同梱のanimationファイルを修正します。
「Animation」フォルダ配下にあるファイルをすべて選択し、アバターにドラッグ&ドロップします。
アバターを右クリックし「アニメーションクリップ修正」を選択します。
※ない場合はAnimationValidator4VRCをインポートしてください。
https://booth.pm/ja/items/2067424
全部まとめて修正をクリックします。
正常に処理されたら×ボタンでこの画面を閉じます。
生成されたAnimator Controllerの削除
この修正作業でアバターのAnimatorのControllerが自動で作成されますが、今後は不要なので選択してDeleteキーで削除します。
5.ギミックの導入② パラメータ
※既にアバターに独自のParameterが設定されている状態の手順です。
※アバターに設定されていない場合は「Parameters」フォルダ内のファイルを割り当てるだけでOKです。設定するのはParametersだけですが、Menuも設定しないとアップロードできない為「menu_dummy」も割り当てて下さい。
使用しているParametersファイルを選択してInspectorを表示します。
「Add」ボタンをクリックしパラメータを追加します。
Name:contact_item_show
Type:Bool
Default:自由(チェックOFF=初期状態は非表示)
Saved:自由(チェックOFF=ワールド移動するとDefaultの状態に戻ります)
6.ギミックの導入③ FXレイヤー
※既にアバターに独自のFXレイヤーが設定されている状態の手順です。アバターに設定されていない場合は「FX」フォルダ内のファイルを割り当てるだけでOKです。
ツールバーの「VRCAvatars3Tools -> AnimatorControllerCombiner」を選択します。
※ない場合はVRCAvatars3Toolsをインポートします。
https://booth.pm/ja/items/2207020
「Src AnimatorController」に「FX」フォルダの「FX_contact_sample」をセットし、
「Dst AnimatorController」には現在使用しているFXをセットします。
チェックボックスは画像の通り選択して「Combine」をクリックします。
7.(オプション)暴発を防ぐ条件を追加
ここまでの手順で触れるだけでアイテムが出し入れ出来るようになりました。
実際に使用していると「気づいたらアイテムが出ていた」という事があるかもしれません。
暴発を防ぐために「特定のハンドサインの時に触れた場合~」という条件を追加する手順です。
アバターに設定したFXをダブルクリックしAnimatorビューを開きます。
ハンドサインのパラメータを覚えておく
右手で触る時は「Right Hand」左手で触る時は「Left Hand」レイヤーを選択します。
この中から条件に加えたいハンドサイン名に繋がる矢印を選択し、Inspectorの中の「Conditions」の設定を確認して覚えておきます。
例:画像では左手をOpenした時の値を確認しました。
「GestureLeft」「Equals」「2」を覚えておきます。
「Contact Item」レイヤーを選択し「contact_item_on」と「hit_item_off」の間の矢印を選択します。
Conditionsに覚えておいたハンドサインのパラメータを追加します。
同様に「contact_item_off」と「hit_item_on」の間の矢印を選択し、覚えておいたパラメータを追加します。
7.動作確認
ここまで設定お疲れさまでした。
アバターをアップロードして動作すれば導入終了です。