Version: Unity 6.0 (6000.0)
言語 : 日本語
ホイールコライダー
ホイールコライダーの摩擦

ホイールコライダーの概要

Unity で正確なホイール動作のシミュレーションを行うには、各ホイールにホイールコライダーを使用します。ホイールコライダーは、ホイールの回転と車両の動きを管理します。また、サスペンションシステムのシミュレーションを行うプロパティも持ちます。

ホイールコライダーコンポーネントは、API では WheelCollider クラスとして表されます。

ホイールコライダーレイキャスト

ホイールコライダーはシーンビューに 2D の円として表示されます (ホイールコライダーの可視化 を参照)。ただし、実際には単一の 物理演算レイキャスト です。PhysX は、サスペンションの向きに沿ってホイールの中心を通るようにローカルの Y 軸上でレイを飛ばします。レイキャストの開始と終了は、以下の位置です。

  • レイキャストは、サスペンションの最大圧縮時にホイールの上端のすぐ上 (つまり、半径のすぐ外側、Y 軸上のサスペンション距離の上端) から開始します。
  • レイキャストは、サスペンションの最大伸長時にホイールの下端のすぐ下 (つまり、半径のすぐ外側、Y 軸上のサスペンション距離の下端) で終了します。

このレイキャスト設定は、ホイールコライダーが移動中に他のサーフェス (地面など) の上を実際に転がるわけではないことを意味します。再生モードでは、ホイールコライダーの回転は変化しません。しかし、ホイールモデルの回転は、ホイールが地面に沿って転がるように見えるように変化する必要があります。これを実現するには、モデルとコライダーを 2 つの別々のゲームオブジェクトに配置する必要があります。ホイールコライダーの Transform は車両に対して相対的に固定されている必要があり、モデルは回転できる必要があります。その後、ホイールコライダーがそのグローバルな位置をホイールモデルに送信し、スクリプトでホイールモデルを回転させるように、ホイールコライダーを設定できます。このワークフローの例については、ウォークスルー ホイールコライダーを使用した車両の作成例 を参照してください。

PhysX でのホイールコライダーレイキャスト設定の詳細は、PhysX 4.1 Vehicles SDK ドキュメントを参照してください。

レイキャストホイールコライダーのための地面の準備

レイキャストの設定が示す重要な意味は、高さが変動する路面の上をタイヤが滑らかに転がり上がったり下がったりするとは限らないということです (例えば、道路からステップに転がり上がるなど)。ステップや縁石に遭遇した際、ホイールが食い込み、センターラインがステップを横切るときにようやく “跳び上がる” 可能性があります。

ステップ (地面の急激な上昇) を移動するホイールコライダー車両の 2 つのフレーム。最初のフレームでは、ホイールがステップに食い込んでいるように見えます。これは、ホイールモデルの中心にあるレイキャストがまだステップに到達していないためです。2 番目のフレームでは、ホイールモデルがステップ上に正しく表示されています。この変化は、ホイールの中心にあるレイキャストが高さの変化を検出したときに起こり、ホイールが現実的に転がるのではなくステップを “跳び上がる” ように見えます。
ステップ (地面の急激な上昇) を移動するホイールコライダー車両の 2 つのフレーム。最初のフレームでは、ホイールがステップに食い込んでいるように見えます。これは、ホイールモデルの中心にあるレイキャストがまだステップに到達していないためです。2 番目のフレームでは、ホイールモデルがステップ上に正しく表示されています。この変化は、ホイールの中心にあるレイキャストが高さの変化を検出したときに起こり、ホイールが現実的に転がるのではなくステップを “跳び上がる” ように見えます。

レイキャストは、中心点が到達したときに、道路の小さな落差やステップを滑り落ちることもあります。

落差 (地面の急激な下降) を移動するホイールコライダー車両の 2 つのフレーム。最初のフレームでは、ホイールは落差の上の正しい位置にあるように見えます。これは、ホイールモデルの中心にあるレイキャストがまだ落差に到達していないためです。2 番目のフレームでは、ホイールモデルが落差に落下したように見えます。この変化は、ホイールの中心にあるレイキャストが高さの変化を検出したときに起こり、ホイールが現実的に転がるのではなく突然落下するように見えます。
落差 (地面の急激な下降) を移動するホイールコライダー車両の 2 つのフレーム。最初のフレームでは、ホイールは落差の上の正しい位置にあるように見えます。これは、ホイールモデルの中心にあるレイキャストがまだ落差に到達していないためです。2 番目のフレームでは、ホイールモデルが落差に落下したように見えます。この変化は、ホイールの中心にあるレイキャストが高さの変化を検出したときに起こり、ホイールが現実的に転がるのではなく突然落下するように見えます。

このため、滑らかで正確なシミュレーションを行うためには、地面の衝突ジオメトリをできるだけ滑らかにする必要があります。地面に凹凸がある場合は、ホイールの動作に満足できるまでテストとイテレーションを行う必要があります。

ホイールコライダーの可視化

ホイールコライダーを選択すると、シーンビューにホイールコライダーの主要なプロパティの一部を可視化する ギズモ が表示されます。

シーンビュー内の 1 つのホイールコライダーギズモ。このスクリーンショットでは、ギズモを明確に表示するために、すべてのメッシュが無効になっています。
シーンビュー内の 1 つのホイールコライダーギズモ。このスクリーンショットでは、ギズモを明確に表示するために、すべてのメッシュが無効になっています。

ギズモの視覚的なインジケーターは以下の通りです。

  • 大きな 2D の円: 物理演算ホイールのサイズを表します。サイズを変更するには、ホイールコライダーの Radius プロパティを使用します。
  • 水平の緑の線: X 軸に沿ったホイールコライダーの中間点を表します。この線の角度はホイールの回転を表します。
  • 小さな 3D の球: ホイールの力が加わる点を表します。この値を変更するには、ホイールコライダーの Force App Point Distance プロパティを使用します。
  • 垂直のオレンジ色の線: 線の最上点と最下点は、力が加わった結果としてホイールが中心点から上下に (垂直の Y 軸に沿って) 移動できる最大距離を表します。この値を変更するには、ホイールコライダーの Suspension Distance プロパティを使用します。オレンジ色の線が緑の線と交差する点は、力が作用していない、または等しい力が作用しているときにホイールが “静止” する点を表します。この値を変更するには、ホイールコライダーの Target Position プロパティを使用します。

ギズモの可視化を使用して、クイックリファレンスとデバッグを行うことができます。

ホイールコライダー
ホイールコライダーの摩擦