モーションカーブについては、エルミートカーブの使用をお勧めします。開始点/速度と終了点/速度を指定するだけで、これら2つの間に素敵で滑らかな曲線が作成されます。最初のポイントのペアの終了ポイント/速度を次のポイントのペアの開始ポイント/速度として使用すると、シームレスで長く曲がりくねった曲線ができます。
これは、速度を管理するための要件を完全に処理します。選択した速度のある時点のリストを提供し、シームレスに補間された位置と速度の値を提供します。これを使いたい場合、3Dオーサリングアプリケーションから抽出する必要があるのは、希望するパス内のポイントと速度だけです。おそらくユーザー入力に基づいて、実行時にそれらを生成することもできます。
方向を調整するには、いくつかのオプションがあります。飛行機が常にその方向を向いている場合(これは理にかなっているケースです)、エルミート曲線から補間された速度ベクトルを使用して、船が向いている場所を見つけることができます。アップベクトルがわかっている場合(平面内を移動している場合、またはどちらの方向を上にする必要があるかがわかっている場合)、3番目の軸をcross(front、up)で計算し、そこに方向を設定できます。
平面がパスの前方向から時々外れるように、何らかの「ゆらぎ」方向が必要な場合は、前方向を目的の方向として使用し、現在の方向と目的の方向の間で連続的に1ステップslerpを実行できます。
パスとは何の関係もないカスタム方向が必要な場合は、もちろんこれに方向四元数のリストを指定できます。次に、ポイントは(ポイント、速度、四元数)になります。次に、2つの連続するクォータニオン間でスラープを使用して、途中で方向を設定できます。slerpは線形補間法であることを忘れないでください。ただし、通常は問題ありません。縫い目で回転が十分にスムーズでないことがわかった場合は、セクション7で説明されているように、ベジエ曲線でクォータニオンのリストを補間してみることができます。
以下は、始めるのに役立ついくつかのソースコードです。クォータニオン(分隊、ベジエなど)のリスト用の滑らかな補間手法がいくつかあります。
ご不明な点がございましたら、お気軽にお問い合わせください。