炎タイプの木の枝の導入方法
boothで公開中の「炎タイプの木の枝」の導入手順です
https://mimihouse.booth.pm/items/3982527
導入後の動作
1.ExMenuから木の枝の表示/非表示を切り替えます。
2.設定した位置に手を当てると木の枝の位置が切り替わります。
3.手の位置に移動した木の枝は火がつきます。
4.手の位置に移動した木の枝を握ると炎を発射します。
準備
・VRCSDKを最新版に更新してください。
・lilToonの最新版をインポートしてください。
https://booth.pm/ja/items/3087170
・VRCAvatars3Toolsをインポートしてください。
https://booth.pm/ja/items/2207020
導入手順
1.unitypackage のインポート
boothよりダウンロードした「Fire_Branch.unitypackage」をインポートします。
ファイルは「Assets/mimi_house/fire_branch」フォルダに展開されます。
この先の手順でファイル名が出た時は、この中のファイルの事を指します。
2.プレハブの投入
「Fire_Branch.prefab」をHierarchyのアバターに投入します。
アバターの直下に「Fire_Branch」がある状態にします。
投入した「Fire_Branch」を右クリックし「Unpack Prefab」を選択します。
3.位置合わせ① 木の枝をつかんだ状態
「Fire_Branch」を選択し Inspector から Parent Constraint の
「Branch_Grab_Point_Hand」の数値を「1」にします。
「Branch_Grab_Point_Tail」の数値は「0」にします。
「Fire_Branch」配下の「Branch_Grab_Point_Hand」とアバターの右手または左ボーンへ移動します。(持たせたい手へ移動して下さい)
移動した「Branch_Grab_Point_Hand」の位置や回転を調整して、木の枝を手に持たせます。
木の枝が黒くなった方から火が出ます。枝分かれしている方を持つようにしてください。
木の枝の大きさを調整する場合は「Fire_Branch」配下の「Branch」の Scale を変更して下さい。
3.位置合わせ② 木の枝を収納した状態
「Fire_Branch」を選択し Inspector から Parent Constraint の
「Branch_Grab_Point_Hand」の数値を「0」にします。
「Branch_Grab_Point_Tail」の数値は「1」にします。
「Fire_Branch」配下の「Branch_Grab_Point_Tail」と「Branch_Contacts_Point」を木の枝を収納したいアバターのボーンへ移動します。
(ここでは例として腰ボーンに移動して、木の枝を腰の位置に収納するようにします。)
移動した「Branch_Grab_Point_Tail」の位置や回転を調整して、木の枝を収納した状態の場所へ移動します。
「Branch_Contacts_Point」はアバターの手が当たったことを検出する判定です。この位置に手をかざしたときに木の枝を手元へ移動、または収納します。木の枝を持つ時に触りたい位置に調整します。
※左手で木の枝を持つ場合
「Branch_Contacts_Point」を選択して VRC Contact Receiver の Collision Tags を「Hand L」に変更してください。
(「Hand R」のままだと右手に反応します。)
4.ギミックの導入① ExMenuとパラメータ
※既にアバターに独自のParameterとExMenuが設定されている状態の手順です。アバターに設定されていない場合は「exmenu」フォルダ内のExMenuとParameterを割り当てるだけでOKです。
使用しているExMenuファイルを選択しInspectorを表示します。
「Add Control」をクリックしてメニューを追加して以下のように設定します。
Name:自由
Icon:自由
Type:Sub Menu
Parameter:None
Sub Menu:同梱の「exmenu_fire_branch」を割り当て
使用しているParametersファイルを選択してInspectorを表示します。
「Add」ボタンをクリックしパラメータを3つ追加します。
Name:「branch_is_show」「branch_IsGrabbed」「branch_is_handed」
Type:すべて「Bool」
Default:すべてオフ(※木の枝を表示している状態をデフォルトにしたい場合はbranch_is_showにチェックを入れて下さい)
Saved:すべてオフ(※ワールドを移動しても木の枝の表示状態をリセットしたくない場合は「branch_is_show」と「branch_is_handed」にチェックを入れて下さい。
5.ギミックの導入② FXレイヤー
※既にアバターに独自のFXレイヤーが設定されている状態の手順です。アバターに設定されていない場合はFXフォルダ内の「FX_fire_branch_sample」を割り当てるだけでOKです。
ツールを使用したFXレイヤーの設定手順
ツールバーの「VRCAvatars3Tools -> AnimatorControllerCombiner」を選択します。
※ない場合はVRCAvatars3Toolsをインポートします。
https://booth.pm/ja/items/2207020
「Src AnimatorController」にFXフォルダの「FX_fire_branch_sample」をセットし、
「Dst AnimatorController」には現在使用しているFXをセットします。
チェックボックスは画像の通り選択して「Combine」をクリックします。
6.初期表示の調整
アバター直下の「Fire_Branch」を非表示にすることができます。
ここで非表示にしておくと、アバターの選択画面やフルトラのキャリブレーション中に木の枝が非表示になります。
7.アップロードして確認
ここまで設定お疲れさまでした。
アバターをアップロードして動作すれば設定完了です!
参考資料
炎を発射する仕組みについて
木の枝に通しているPhysBoneを握ることで炎を発射する仕組みとなっています。
そのため、木の枝を握れない位置に配置した場合は炎が発射できません。
また、握っても反応しない場合は、PhysBoneの Collision の中にある Radius を太くしてみて下さい。
VRC内で持ちかえ判定の確認方法
どのあたりに手を合わせればよいか分からなくなった場合、ExMenuから判定を表示することができます。
ExMenuを開き「Options→Config→Avatar Overlay」を開きます
Contacts を選択すると判定が表示されます。
None を選択すると元に戻ります。