-
Notifications
You must be signed in to change notification settings - Fork 4
Swivel Chair 2
VRChatのワールドに設置できるギミック椅子です。
以下の機能を備えています。
- 座った後の座位置調整(手動)
- 椅子のスイベル回転
- [Option]椅子のキャスター移動
- [Option]ピックアップによる椅子の運搬
旧SwivelChairからの追加変更点として、
- スマホモードに対応しました。
- 椅子に座っている間、Sit判定や関係するピックアップ判定を無効にします。
- キャスター移動とピックアップ運搬機能が共存可能になりました。
- 物理演算制御でキャスター移動が可能となりました。
- スイベルチェアー2ギミック
- 各種設定済みサンプルプレハブ
Packages > Fukuro Udon > Samples > SwivelChair2 にサンプルプレハブが入っています。
サンプルプレハブをHierarchyに置いたら、仮メッシュをEditorOnlyにするか1回だけUnpackして削除し、本命の椅子メッシュを入れて、設置位置やコライダーの大きさ等を調整してお使いください。
※ Seat
オブジェクトの子に入れると、椅子の横回転時に一緒に回転します。
※ SwivelChair2
オブジェクトの直下に入れると、椅子の横回転ギミックの影響を受けません。
ジャンプボタン長押しで椅子から降りる
ジャンプボタンを押す度にInput Mode切り替え
Input Mode : Vertical の時、左サムスティック上下で座高調整、左右で横に座位置調整、右サムスティック左右でスイベル回転
Input Mode : Horizontal の時、左サムスティック上下で座深調整、左右で横に座位置調整
Input Mode : CasterMove の時、左サムスティック上下左右でキャスター水平移動、右サムスティック左右で椅子ごと左右回転
ジャンプボタン長押しで椅子から降りる
ジャンプボタンを押す度にInput Mode切り替え
Input Mode : Vertical の時、W Sキー上下で座高調整、A Dキーでスイベル回転
Input Mode : Horizontal の時、W Sキーで座深調整、A Dキーで横に座位置調整
Input Mode : CasterMove の時、W Sキーでキャスター前後移動、A Dキーで椅子ごと左右回転
ジャンプボタンをダブルタップで椅子から降りる
ジャンプボタンを押す度にInput Mode切り替え
Input Mode : Vertical の時、バーチャルスティック上下で座高調整、左右でスイベル回転
Input Mode : Horizontal の時、バーチャルスティック上下で座深調整、左右で横に座位置調整
Input Mode : CasterMove の時、バーチャルスティック上下でキャスター前後移動、左右で椅子ごと左右回転
Swivel Chair 2
(Additional Settings)
- Pickup : 持ち運べる椅子にする時、ここに
VRCPickup
コンポーネントをセットしておくことで、椅子に座った人が座っている間ピックアップ不可になります。誤操作防止用。 - Caster : キャスター移動機能を使う際は、ここに
SC2 Caster
コンポーネントをセットしてください。
SC2 Seat Adjuster
- Adjust Min Limit : 座位置調整範囲の下限側。(単位:ローカル座標)
- Adjust Max Limit : 座位置調整範囲の上限側。(単位:ローカル座標)
- Adjust Speed : 位置調整時の移動速度です。(単位:m/s)
- Forward Snap Threthold : 椅子のスイベル回転量がこの閾値以内の場合、強制的に真正面を向きます。(単位:度)
- Rotate Speed : スイベル回転時の回転速度です。(単位:度/s)
SC2 Input Manager
- Tooltip Animator : 入力イベントをTriggerパラメーターとして渡すAnimatorをセットします。一応無くても動きます。
- LongPushDuration : 椅子から降りるためのジャンプボタンの長押し判定時間。(単位:秒)
- DoubleTapDuration : 椅子から降りるためのダブルタップ受付時間。(単位:秒)
SC2 Caster
- Immobile : これが有効になっている間、キャスター移動をしなくなります。
- Move Speed : キャスター移動時の移動速度です。(単位:m/s) 物理演算制御時は力になります。(単位:N)
- Turn Speed : キャスター移動時の回転速度です。(単位:度/s) 物理演算制御時はトルクになります。(単位:Nm)
SC2 Caster
と共に Is Kinematic がオフの Rigidbody
が付いている場合、キャスター移動が物理演算制御になります。
物理演算制御には、Unityの物理演算関連のコンポーネントに対する各種知識が必要になってきます。例えば、壁や床と接触するにはコライダーが必須です。
SwivelChair2withPhysicsCaster_sample
プレハブでは、接地面との摩擦係数を減らすため、 Caster
コライダーにはPhysicMaterialを付けています。 また、Unity 2019のうちは重心(Center of Mass)が手動設定できないため、UIレイヤー(どのレイヤーともコリジョンしない)に属した Balancer
コライダーを追加する事で、低重心になるよう調節してあります。
以下のワールドにサンプルを設置しています。
https://vrchat.com/home/world/wrld_4b7ed36e-c436-409f-9f87-8a6f4c80e79b