Transform/Interaction/Slider

Last-modified: 2026-06-13 (土) 13:45:43


Slider (スライダー)

掴んで移動させたときに動きを制御(制限)するコンポーネント


項目

Enabled:
このコンポーネントを有効にするかどうか。

EditModeOnly:
編集モードの時だけ掴めるようにする。

AllowSteal:
他のユーザーが奪い取れるようにする。(DontDriveがTrueの時に機能する。)

DropOnDisable:
掴んでいる間にEnabledをFalseにしても、それを離すまでは掴んでいられるようにする。
即座に切り離したい場合はFalseにする。

DontDrive:
自スロットのPositionらを駆動しない。
初期設定(False)の時、掴むとPositionが駆動されます。Trueの時は書込みっぽい。

ホストがAFK(不在)だったり、一部のヘッドレスセッションでは、挙動がおかしくなるかも。
とりあえずTrueにして、様々な環境やユーザーでテストしてみましょう。
さらに、Positionを他からも制御している場合は難解です。(ローカルで動いちゃってる可能性もあるので、様々な検証が必要です。)


AllowOnlyPhysicalGrab:
レーザー操作(リモートグラブ)で掴めないようにする。
これをTrueにするとデスクトップモードの人が不憫です。

ActiveUserFilter:
物がユーザーの中にあるとき、掴めるかどうかを指定する。
(Sliderを掴んでも手の中(Holder)に入らないので、Grabbableとは挙動が異なります。)
0Disabled無効
1OnlyActiveUserユーザーの中にあるとき、そのユーザーだけ掴める。ユーザーの中にないとき、誰も掴めない。
2ActiveUserWhenPresentユーザーの中にあるとき、そのユーザーだけ掴める。ユーザーの中にないとき、誰でも掴める。
3ExcludeActiveUserユーザーの中にあるとき、そのユーザーだけ掴めない。ユーザーの中にないとき、誰でも掴める。

CustomCanGrabCheck:
???

_grabber:
自動。
手の掴むヤツ。

(掴んだユーザーのグラバーが自動的に設定される。上級者向けですが、Flux等で設定する事も可能です。)

_holdSlot:
自動。
手の掴むヤツのスロット。(放しても残るので、最後に掴んだ人が分かる。)

_pos:
自動。
自スロットのPositionを駆動。

_rot:
自動。
自スロットのRotationを駆動。

_scl:
自動。
自スロットのScaleを駆動。

__legacyActiveUserRootOnly:
???

GrabPriority:
掴む優先度。
複数の物を同時に掴んだ際、数字が大きい方が優先される。同じ数字だと一緒に掴める。

Rotatable:
回転させる。

Scalable:
拡大縮小させる。

Range:
移動距離。
例えばx軸1mだと±1mではなく、Origin(原点位置)から±0.5mです。

Origin:
原点位置。

MinScale:
大きさの最小値。

MaxScale:
大きさの最大値。

VibrationOffset:
振動間隔。
0だと掴んでいる間、ずっと振動し続ける。
1だと1m移動する度に1回振動する。

VibrationPreset:
掴んで動かした時のコントローラー振動設定。
0None
1Short
2Medium
3Long

SnapIncrement:
スナップ値。
0だと無段階。
1だと1m単位でスナップ移動する。

SnapTime:
スナップアニメーションの時間。
SnapOnReleaseがTrueの時に働く。
1だと1秒かけて移動する。

SnapOnRelease:
放した時にスナップさせる。
初期設定(False)だと、Snap位置に瞬間移動する。
Trueだと、無段階に動かせる。放した時にアニメーション(Tween)が働く。

SnapInterpolationCurve:
スナップ時のトゥイーン(自動補完アニメーション)の種類を選択できる。
2026.6.12.557で追加された新機能。以前のトゥイーンはSineだけだった。(issue #5087)
0Linearリニア
1Sineサイン
2Cosineコサイン
3Smoothスムーズ
4Smootherスムーザー
5SineIn
6SineOut
7SineInOut
8QuadradicInクアドラティック(二次)
9QuadradicOut
10QuadradicInOut
11CubicInキュービック(三次)
12CubicOut
13CubicInOut
14QuarticInクォーティック(四次)
15QuarticOut
16QuarticInOut
17QuinticInクインティック(五次)
18QuinticOut
19QuinticInOut
20ExponentialInエクスポネンシャル(指数)
21ExponentialOut
22ExponentialInOut
23CircularInサーキュラー(円形)
24CircularOut
25CircularInOut
26ReboundInSmallリバウンド(反動) Backともいう
27ReboundOutSmall
28ReboundInOutSmall
29ReboundInLarge
30ReboundOutLarge
31ReboundInOutLarge
32ElasticInSmallエラスティック(弾性)
33ElasticOutSmall
34ElasticInOutSmall
35ElasticInLarge
36ElasticOutLarge
37ElasticInOutLarge
38BounceInバウンス(弾む)
39BounceOut
40BounceInOut


SnapPositions(list):
Add押すと増える。
スナップさせる地点と範囲を設定できる。

Position:
スナップさせる位置。

MaxDistance:
スナップさせる距離。(この範囲内に近づくと、スナップする。)
範囲が被っている場合の挙動は謎でした。(確実に動作させるなら、被せない方が良さそう。)


posOffset:
自動。
掴んだ時の位置オフセット。

rotOffset:
自動。
掴んだ時の回転オフセット。

scaleReference:
自動。
掴んだ時のスケール。

referenceParent:
自動。
親スロット。


使用例

  • 掴めるようにするにはColliderも必要。
    他のグラブ系コンポーネントは消しておきましょう。
  • スライド扉を例に、RangeとOriginの解説をします。
    Range(移動範囲)x軸1mなら、Origin(原点位置)から左右に-0.5~0.5mの範囲で動くという事です。
    その為、スライド扉のOrigin(原点位置)は半開き状態(0.5mオフセット)の位置にすることで、扉が綺麗に開閉できるようになります。
    さらに、VibrationやSnap設定を行う事でインタラクションが充実します。


その他

  • UIXにもSlider<T>がある。
  • Sliderを掴んでも手の中(Holderスロット)に入らないので、Grabbableとは挙動が異なります。
    グラブモード「手のひら」等だと、複数人又は両手で掴むと階層を遡って掴みます。(片手で掴むと左右だけ、両手で掴むと左右上下に動かせるギミックが作れます。)
    上階層を掴んでほしくない時はGrabBlockを中間の階層にアタッチします。
  • 掴んでコンテキストメニュー操作「破棄」「複製」「保存」等ができます。
    阻止する場合は、DestroyBlockDuplicateBlockGrabbableSaveBlockを自スロット又は上の階層にアタッチします。
    DestroyRootをアイテムのRootにアタッチする事で、Sliderを破棄した際にアイテム毎破棄する事が可能です。
    ObjectRootによって「保存」等の挙動が変化します。
  • SmoothValue(WriteBack)を組み合わせれば、動きを滑らかにできます。
  • GrabbableAvatarPoseFilterを組み合わせれば、アバターの手の動きを乗っ取る事ができます。
  • 似たコンポーネントにJointがあります。