見出し画像

炎タイプの木の枝の導入方法

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です。

既に使用中のMenuとParametersがある場合、これを編集します。

使用している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」をクリックします。

チェックボックスは「Fire_Contacts」「Fire_Branch」「branch_onenter」「branch_is_show」「branch_IsGrabbed」「branch_is_handed」のみON
Combineをクリック後、Dst AnimatorControllerに追加されていればOKです。

6.初期表示の調整

アバター直下の「Fire_Branch」を非表示にすることができます。
ここで非表示にしておくと、アバターの選択画面やフルトラのキャリブレーション中に木の枝が非表示になります。

7.アップロードして確認

ここまで設定お疲れさまでした。
アバターをアップロードして動作すれば設定完了です!

参考資料

炎を発射する仕組みについて

木の枝に通しているPhysBoneを握ることで炎を発射する仕組みとなっています。
そのため、木の枝を握れない位置に配置した場合は炎が発射できません。
また、握っても反応しない場合は、PhysBoneの Collision の中にある Radius を太くしてみて下さい。

VRC内で持ちかえ判定の確認方法

どのあたりに手を合わせればよいか分からなくなった場合、ExMenuから判定を表示することができます。
ExMenuを開き「Options→Config→Avatar Overlay」を開きます

Contacts を選択すると判定が表示されます。
None を選択すると元に戻ります。

青くなっているのが判定です

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