Unity で正確なホイール動作のシミュレーションを行うには、各ホイールにホイールコライダーを使用します。ホイールコライダーは、ホイールの回転と車両の動きを管理します。また、サスペンションシステムのシミュレーションを行うプロパティも持ちます。
ホイールコライダーコンポーネントは、API では WheelCollider クラスとして表されます。
ホイールコライダーはシーンビューに 2D の円として表示されます (ホイールコライダーの可視化 を参照)。ただし、実際には単一の 物理演算レイキャスト です。PhysX は、サスペンションの向きに沿ってホイールの中心を通るようにローカルの Y 軸上でレイを飛ばします。レイキャストの開始と終了は、以下の位置です。
このレイキャスト設定は、ホイールコライダーが移動中に他のサーフェス (地面など) の上を実際に転がるわけではないことを意味します。再生モードでは、ホイールコライダーの回転は変化しません。しかし、ホイールモデルの回転は、ホイールが地面に沿って転がるように見えるように変化する必要があります。これを実現するには、モデルとコライダーを 2 つの別々のゲームオブジェクトに配置する必要があります。ホイールコライダーの Transform は車両に対して相対的に固定されている必要があり、モデルは回転できる必要があります。その後、ホイールコライダーがそのグローバルな位置をホイールモデルに送信し、スクリプトでホイールモデルを回転させるように、ホイールコライダーを設定できます。このワークフローの例については、ウォークスルー ホイールコライダーを使用した車両の作成例 を参照してください。
PhysX でのホイールコライダーレイキャスト設定の詳細は、PhysX 4.1 Vehicles SDK ドキュメントを参照してください。
レイキャストの設定が示す重要な意味は、高さが変動する路面の上をタイヤが滑らかに転がり上がったり下がったりするとは限らないということです (例えば、道路からステップに転がり上がるなど)。ステップや縁石に遭遇した際、ホイールが食い込み、センターラインがステップを横切るときにようやく “跳び上がる” 可能性があります。
レイキャストは、中心点が到達したときに、道路の小さな落差やステップを滑り落ちることもあります。
このため、滑らかで正確なシミュレーションを行うためには、地面の衝突ジオメトリをできるだけ滑らかにする必要があります。地面に凹凸がある場合は、ホイールの動作に満足できるまでテストとイテレーションを行う必要があります。
ホイールコライダーを選択すると、シーンビューにホイールコライダーの主要なプロパティの一部を可視化する ギズモ が表示されます。
ギズモの視覚的なインジケーターは以下の通りです。
ギズモの可視化を使用して、クイックリファレンスとデバッグを行うことができます。