Skip to main content

板書まとめ

これまでの授業で撮影した板書を、日付順にまとめています。試験前に「この日に何を扱ったか」を思い出すための振り返りページとして使いましょう。

📆4/21

4/21の板書

📝まとめ

  • 座標系とアフィン変換の導入。3Dモデルを頂点座標として捉え、座標を変換してモデルを動かす考え方を確認した。
  • 平行移動・回転・拡大縮小など、座標を別の座標へ変換する処理をゲームのモデル操作と結び付けた。
  • 2次元回転では $\cos$・$\sin$ を使い、$x' = x\cos\theta-y\sin\theta$、$y' = x\sin\theta+y\cos\theta$ の形を扱った。

📆4/28

4/28の板書

📝まとめ

  • ベクトルの「方向」と「大きさ」を確認し、座標変換を数式で扱う練習を進めた。
  • 平行移動・回転・拡大縮小を個別の計算として考え、回転では $\cos\theta$ と $\sin\theta$ がどのように座標へ作用するかを整理した。
  • 複数回の変換を連続して適用する考え方が、後の行列による合成変換につながる。

📆5/12

5/12の板書

📝まとめ

  • 行列を使って座標変換をまとめて表す方法を学んだ。単位行列、拡大縮小行列、回転行列などを確認した。
  • 平行移動も同じ仕組みで扱うため、2Dでは3×3、3Dでは4×4の同次座標を利用する。
  • 複数の変換は行列を掛け合わせて合成できるが、掛ける順番によって結果が変わることが重要。

📆6/9

6/9の板書

📝まとめ

  • 親子関係を持つオブジェクトの座標変換を扱った。子は親に対するローカル座標を持ち、親の変換を受けてワールド座標が決まる。
  • キャラクターのボーン、腕に持つ武器、車体とタイヤなど、階層構造を持つ3Dモデルの考え方につながる。
  • ローカル変換と親の変換を組み合わせて、階層全体の位置・向きを求める。

📆6/16

6/16の板書

📝まとめ

  • 2つのベクトルのなす角度を、内積と $\operatorname{acos}$ から求める方法を確認した。
  • $\operatorname{atan2}$ を使って方向角を求める方法や、傾き・角度との関係も扱った。
  • 後半はLERP(線形補間)を導入し、補間係数 $t$ を0~1へ変化させて2つの値の間を作る考え方を学んだ。
  • 直線補間だけでは折れ線になるため、滑らかな経路を作るスプラインへの導入も行った。

📆6/23

6/23の板書

📝まとめ

  • 方向ベクトル、速さ、DeltaTimeを使ってキャラクターを移動させる方法を扱った。
  • 位置更新は $P' = P + F\times Speed\times\Delta t$ のように考え、フレームレートに依存しない移動へつなげた。
  • 角速度にもDeltaTimeを掛け、1秒あたりの回転速度から1フレーム分の回転量を求める考え方を確認した。
  • 現在の向きと目標方向を使い、目標へ徐々に旋回するゲーム処理へ応用した。

📆6/30

6/30の板書

📝まとめ

  • 自分と目標の位置の差から $dx,dy$ を求め、$\operatorname{atan2}(dy,dx)$ で目標方向の角度を求める処理を整理した。
  • 現在角度と目標角度の差を使って、一度に向きを変えず一定の角速度で少しずつ旋回する方法を扱った。
  • 求めた角度からForwardベクトルを作り、速さを掛けて目標方向へ移動する流れを確認した。

📆7/7

7/7の板書

📝まとめ

  • 敵からプレイヤーへの方向ベクトルと敵の前方向を使って、視界判定を考えた。
  • まず距離で索敵範囲を確認し、その後に内積から角度関係を調べることで、プレイヤーが視野内にいるか判定する。
  • 3DではYaw・Pitchなども使い、横方向・縦方向の角度を考えながら視野を扱う。
  • ゲームAIの「見つけた/見失った」といったセンサ処理につながる内容。

📆7/14

7/14の板書

📝まとめ

  • 複数の点を滑らかにつなぐスプライン曲線を扱った。
  • ベジェ、エルミート、Catmull-Rom、Bスプラインなど、曲線ごとの特徴と使いどころを整理した。
  • Catmull-Romでは4点 $P0,P1,P2,P3$ を使い、$t=0$ から $1$ の間で実際に求める区間は P1~P2。P0とP3は曲がり方に影響する。
  • DirectXMathの XMVectorCatmullRom(P0, P1, P2, P3, t) を使った実装にもつなげた。