Skip to main content

04.補間・スプライン

11.LERPで途中を作ろう

LERPの板書

LERP(線形補間)は、開始値 $A$ と終了値 $B$ の間を、補間係数 $t$ を使って求める方法です。

Q48.補間係数 $t$ の意味を確認しよう

$P=(1-t)A+tB$ について対応させてください。

$t$ $P$
$t=0$ ______
$t=0.5$ ______
$t=1$ ______

選択肢:A・AとBのちょうど中間・B

答え
  • $t=0$ → A
  • $t=0.5$ → AとBのちょうど中間
  • $t=1$ → B

Q49.LERPを計算しよう

開始値 $A=20$、終了値 $B=60$、$t=0.25$ とします。$P=(1-t)A+tB$ で求めた値はいくつですか。

答え:______

答え

$P=0.75\times20+0.25\times60=30$

Q50.LERPが使える場面を選ぼう

LERPを利用しやすい例をすべて選んでください。

  • A.キャラクターの位置をA地点からB地点へ補間する
  • B.カメラの距離を徐々に変える
  • C.値を0から1へ徐々に変える
  • D.AABBの最近点を直接求める
答え

A・B・C

LERPは「2つの値の間」を作る処理なので、位置だけでなくさまざまな数値に使えます。

Q51.複数点をLERPだけでつなぐと?

複数の制御点を順番に直線補間してつないだ場合、経路はどのようになりやすいですか。

  • A.折れ線になる
  • B.必ず円になる
  • C.必ず滑らかな曲線になる
  • D.すべての点が同じ位置になる
答え

A.折れ線になる

そこで、複数点を滑らかな曲線でつなぎたいときにスプラインを使います。


12.スプラインは種類と使いどころを押さえよう

スプラインの板書

スプラインでは、長い公式を暗記するより、どんな情報から曲線を作るのか・何に向いているのかを押さえましょう。

Q52.スプラインの種類と使いどころ

次の特徴・使いどころに合う曲線を対応させてください。

特徴・主な使いどころ 曲線
始点・終点と制御点で形を調整しやすく、UIの軌跡や弾道などで使われる ______
始点・終点と、それぞれの接線ベクトルで進行方向を指定する ______
制御点を通る滑らかな経路を作りやすく、敵の移動経路やカメラレールに向く ______
多数の制御点から滑らかな曲線を作り、道路や長いコースなどに向く ______
制御点に重みを持たせられ、CADやモデリングでよく使われる ______

選択肢:ベジェ・エルミート・Catmull-Rom・Bスプライン・NURBS

答え
  • UIの軌跡や弾道 → ベジェ
  • 接線ベクトルで方向を指定 → エルミート
  • 敵の経路やカメラレール → Catmull-Rom
  • 道路や長いコース → Bスプライン
  • CADやモデリング → NURBS

Q53.XMVectorCatmullRom の引数を確認しよう

DirectXMathでは、Catmull-Romスプライン上の位置を次のように求められます。

XMVECTOR p = XMVectorCatmullRom(P0, P1, P2, P3, t);

穴埋めしてください。

  • P0~P3:4個の______
  • t:曲線区間上の______を表す値
  • 通常の t の範囲:______ ~ ______
答え
  • P0~P3:4個の制御点
  • t:曲線区間上の位置を表す値
  • t:0 ~ 1

Q54.Catmull-Romで実際に求める区間は?

XMVectorCatmullRom(P0, P1, P2, P3, t) について対応させてください。

条件 位置・役割
t = 0 ______
t = 1 ______
P0 と P3 ______

選択肢:P1・P2・P1へ入る向きとP2から出る向きを決めるために使う

答え
  • t = 0 → P1
  • t = 1 → P2
  • P0 と P3 → P1へ入る向きとP2から出る向きを決めるために使う

つまり、4点を渡して実際に求める曲線区間は P1~P2 です。

Q55.どの曲線ができる?

同じ4点 P0, P1, P2, P3 を XMVectorCatmullRom(P0, P1, P2, P3, t) に渡し、t を0から1まで変化させました。実際に描かれるCatmull-Romの区間をA~Dから選んでください。

Catmull-Rom画像選択問題

  • A
  • B
  • C
  • D
答え

C

t=0 でP1から始まり、t=1 でP2へ到達し、P0・P3の影響を受けて滑らかに曲がります。


13.最後に整理しよう

Q56.ゲームでやりたいことと数学を対応させよう

ゲームでやりたいこと 使う数学・処理
敵までの方向を求めたい ______
2点間の距離を求めたい ______
敵が正面にいるか調べたい ______
左右判定や法線を扱いたい ______
モデルの移動・回転・拡大縮小をまとめたい ______
フレームレートに依存しない速度で動かしたい ______
球からAABB上の最近点を求めたい ______
2点の間の値を作りたい ______
制御点を通る滑らかな経路を作りたい ______

選択肢:差ベクトル・ベクトルの長さ・内積・外積・行列・DeltaTime・clamp・LERP・Catmull-Rom

答え
  • 敵までの方向 → 差ベクトル
  • 2点間の距離 → ベクトルの長さ
  • 正面にいるか → 内積
  • 左右判定や法線 → 外積
  • 移動・回転・拡大縮小をまとめる → 行列
  • フレームレートに依存しない移動 → DeltaTime
  • AABB上の最近点 → clamp
  • 2点間の値 → LERP
  • 制御点を通る滑らかな経路 → Catmull-Rom

このワークを一通り解いて、間違えた問題の理由まで確認できれば、前期に扱った数学の主要部分を一周したことになります。