Curvyでドリフト移動してみる

はじめに

Curvy1とは、Unity2上でスプラインカーブを扱うAssetです。
また、付属のFollowSpline3コンポーネントをアタッチすると、スプラインカーブに沿ってオブジェクトを移動することが出来ます。

しかし、Curvyではコントロールポイントの向きがオブジェクトに反映されません。
以下の例のように、自動車のドリフトや、正面を向いたまま飛び降りさせることができません。

curvy_drift

これにより、移動方向に向かって予め振り向かせることで、VR酔いの低減が期待できます。

実装してみる

方法としては、コントロールポイントのScaleを補完する機能があるため、これを複製してコントロールポイントのRotationを補完する機能を追加します。

InterpolateScaleメソッドを改造したInterpolateRotation関数を実装する。

  • CurvySplineBase.csに下記コードを追加

  • CurvySpline.csに下記コードを追加

  • CurvySplineGroup.csに下記コードを追加

  • CurvySplineSegment.csに下記コードを追加

FollowSplineRotationコンポーネントを実装する。

  • FollowSplineRotation.csを新規作成

使い方

  1. FollowSplineをアタッチしてSet Orientationのチェックを外す
  2. FollowSplineOrientationをアタッチする
    スクリーンショット 2015-08-08 17.42.51

  1. Unity Pro 5.0.2p3で確認しました。 
  2. Curvy 1.61fで確認しました。 
  3. SplineWalker、SplineWalkerDistance、SplineWalkerConは古いコンポーネントなので使わないようにしましょう。