Flying Disc System
VRChat ワールド向けフライングディスクの導入手順、操作方法、よくある問題。
VRChat ワールド向けのフライングディスクです。FlyingDisc と FlyingRing を配置して使えます。
必要なもの
- VRChat Creator Companion(VCC)
- VRC SDK3
- UdonSharp
セットアップ
Assets/Applicotsource/FlyingDisc内の FlyingDisc または FlyingRing の prefab をシーンに配置します。- FlyingDiscBody を選択し、Inspector の
Ground Collision > Ground Objectsに、床や地形など着地先の GameObject を登録します。登録する GameObject にはコライダーが必要です。
Ground Objects は必ず設定してください。 未設定だとディスクが地面を貫通し、落下し続けます。
操作方法
VR
トリガーで手に取り、腕を振りながらトリガーを離して投げます。スピンをかけると揚力が発生し、遠くまで飛びます。
デスクトップ
- 拾う・離す:通常の VRChat Pickup 操作
- 左右に傾ける:J / L キー
- 前後に傾ける:I / K キー
- 投げる:右クリックを長押しして、離します
右クリックを長く押すほど速く飛びます。最大チャージ時間は Desktop Max Charge Time で調整できます。
飛行中・着地後に Auto Reset Time で指定した時間が経過すると、初期位置に戻ります。既定値は20秒です。
よくある問題
地面を貫通する
Ground Objects が未設定、または登録した GameObject にコライダーがありません。着地先の床・地形とコライダーの有無を確認してください。
投げても飛ばない
速度とスピンが、どちらも Min Throw Speed・Min Throw Spin の下限を下回ると不発になります。VR ではより素早く腕を振り、デスクトップではチャージ時間を長くしてみてください。
フレームレートによって投げ方が安定しない
既定の Throw Mode = PeakCluster はフレームレートの変動に強い方式です。Throw Average Time を 0.15 秒程度に広げる方法もあります。Regression は開発中の実験的なモードです。
詳細設定(Inspector)
必要な項目だけ調整してください。Ground Objects は設定が必須です。それ以外の項目は、まず既定値で試せます。
地面の判定(Ground Collision・必須)
Ground Objects(既定:空):着地判定を行うコライダーを持つ GameObject。必ず設定してください。Disk Radius(既定:0.2 m):着地判定 SphereCast の半径
着地マーカーと自動リセット(Marker & Auto-reset)
Landing Marker(既定:なし):着地位置に表示するマーカー用 GameObject(任意)Marker Height Offset(既定:0.1 m):着地マーカーの表示高さオフセットAuto Reset Time(既定:20 s):飛行中・着地後、この秒数が経過すると初期位置に自動リセット
グリップ(Grip)
Right Grip(既定:なし):VR 右手でピックアップしたときのグリップ基準 TransformLeft Grip(既定:なし):VR 左手でピックアップしたときのグリップ基準 Transform
飛行の物理設定(Physics)
Lift Coeff(既定:1.6):揚力の強さ。値を大きくすると浮きやすくなるLift Precession Scale(既定:0.5):揚力によるジャイロ歳差回転の強さ。カーブの曲がり具合に影響するDrag Coeff(既定:0.16):抗力係数(速度²に乗算)。大きいほど速く減速するGravity(既定:9.81 m/s²):重力加速度Angular Damping(既定:0.10):スピン減衰率(1秒あたりの割合)。大きいほどスピンが早く失われるReference Spin Rate(既定:12 rad/s):揚力が最大になる基準スピン量
姿勢の安定化(Alignment)
Auto Align Speed(既定:1.0):スピンが弱いときにディスク法線を上向きに戻す速さAuto Align Spin Boost(既定:1.0):自動安定化をスピンで抑制するスケール
投げ方(Throw)
Throw Mode(既定:PeakCluster):速度・スピンの計算方式。PeakCluster(ピーク速度クラスター平均・推奨)/Average(区間平均)/Regression(2次回帰、開発中)から選択Throw Average Time(既定:0.07 s):投げ直前の速度・スピンを探すタイムウィンドウ。PeakClusterモードでは 0.15 s 程度を推奨Throw Peak Cluster Half(既定:1):PeakCluster専用。ピーク速度フレームを中心に前後いくつのフレームを平均に含めるか(1 → 計3フレーム)Throw Min Frame Dt(既定:0.004 s):PeakCluster専用。速度計算に使うフレーム間隔の下限。これより短いフレームは偽スパイクとして除外Throw Max Frame Dt(既定:0.10 s):PeakCluster専用。速度計算に使うフレーム間隔の上限。これより長いフレームはスタッターとして除外Throw Speed Scale(既定:1.9):計算した投げ速度に掛けるスケール(飛距離の調整)Angular Velocity Scale(既定:1.9):計算した角速度に掛けるスケール(スピン量の調整)Min Throw Speed(既定:0.3 m/s):投げ速度の下限。スピンも下限以下のとき不発になるMin Throw Spin(既定:1.7 rad/s):投げスピンの下限。速度も下限以下のとき不発になるSymmetric Disc(既定:false):表裏対称なリング型ディスク用。投げた瞬間に裏向き(法線が下向き)だった場合、物理計算を表向きとして扱う
見た目(Visual)
Disable Visual Rotation(既定:false):チェックするとディスクの回転アニメーションを無効化(物理挙動には影響しない)
デスクトップ操作(Desktop Mode)
Desktop Max Charge Time(既定:2.0 s):右クリックチャージの最大時間Desktop Max Speed(既定:14 m/s):チャージ最大時の投げ速度Desktop Max Spin(既定:25 rad/s):チャージ最大時のスピンDesktop Tilt Speed(既定:90 deg/s):J / L キーの傾き変化速度Desktop Pitch Speed(既定:90 deg/s):I / K キーのピッチ変化速度Desktop Tilt Limit(既定:70 deg):傾き・ピッチのクランプ上限