授業計画 |
| 回数 |
学習目標 |
学習項目 |
| 1 |
3D開発環境で実行ファイルを作ることが出来る。
3次元空間の任意の位置に組み込みのプリミティブを表示することが出来る。 |
・ワールド座標/ローカル座標、左手系・右手系(Z-UP/Y-UP)
・3Dのレンダリングパイプラインの概要
・深度テストON/OFF、深度書き込みON/OFFによる描画結果の確認 |
| 【理解度確認】実習課題により確認する |
| 2 |
プログラム内でメッシュを作成し、描画することが出来る。
FBXを用いてモデルを描画出来る。
マテリアルを差し替えてモデルの見た目を変えることが出来る。 |
・頂点バッファ、インデックスバッファ
・FBX
・マテリアル |
| 【理解度確認】実習課題により確認する |
| 3 |
Matrixを用いた姿勢制御が出来る。
Transformクラスを用いてモデルを操作出来る。 |
・行列の合成
・Transformの概念(Position,Scale,Rotation) |
| 【理解度確認】実習課題により確認する |
| 4 |
3次元空間上でカメラを操作することが出来る。 |
・投資投影、正射影、注視点
・オイラー角
・マウス/キーボードでカメラを操作する
・プレイヤーキャラクターに追従するカメラを作る |
| 【理解度確認】実習課題により確認する |
| 5 |
三次元のベクトルを扱うことが出来る。
具体的には、内積・外積を用途に合わせて活用できること、ベクトルを任意の軸で回転させられること。 |
・3次元ベクトルの内積を用いて前後判定を行う
・法線ベクトルの計算 |
| 【理解度確認】実習課題により確認する |
| 6 |
向きと加速度を用いてキャラクターを移動させることが出来る。 |
・キャラクターの向いている方向に移動させる(前方ベクトルの利用)
・加速度を用いてキャラクターを移動させる |
| 【理解度確認】実習課題により確認する |
| 7 |
キャラクターをジャンプ、落下させることが出来る |
・加速度に重力の計算を適用する |
| 【理解度確認】実習課題により確認する |
| 8 |
ColliderやRaycastを用いて衝突を処理することが出来る。 |
・AABB、OBB、カプセル、スフィア等のColliderを用いた衝突判定
・Raycastを用いた交差チェック
・壁に埋まらないように移動する、坂道の上に立つ |
| 【理解度確認】実習課題により確認する |
| 9 |
GameObjectを継承した敵キャラクターを作ることが出来る。 |
・ゲーム空間上に配置されるオブジェクトの基底クラス(GameObject)を設計する
・継承とポリモーフィズム |
| 【理解度確認】実習課題により確認する |
| 10 |
敵キャラクターを簡単なAIで動かすことが出来る。 |
プレイヤーが一定距離内に近づいてきた場合に、プレイヤーを追いかける敵キャラクターのAIを作る
|
| 【理解度確認】実習課題により確認する |
| 11 |
モデルをアニメーションさせることが出来る。 |
・スケルタルメッシュ
・キャラクターの状態に応じてアニメーションを進行/停止する |
| 【理解度確認】実習課題により確認する |
| 12 |
パーティクルシステムを用いたエフェクトを作成出来る。 |
・パーティクルシステム
・キラキラ、煙、炎などのエフェクトを作成する |
| 【理解度確認】実習課題により確認する |
| 13 |
用途に応じて描画レイヤーを活用出来る。
UIを表示することが出来る。 |
・残り時間、取得アイテム数、残り体力などのUIを作成する
・UIをUI用のレイヤーに描画する
・UIとゲームロジックを分離する |
| 【理解度確認】実習課題により確認する |
| 14 |
Triggerを用いたイベント処理を作ることが出来る。 |
・Triggerの概念
・Delegateを用いてイベントを通知する
・プレイヤーがゴールに到達した通知を複数のクラスで受け取る |
| 【理解度確認】実習課題により確認する |
| 15 |
3Dグラフィクスの描画負荷と軽減策について理解することが出来る。 |
・カンリング(背面、フルスタム、オクルージョン)
・描画順(不透明・透明)
・ドローコール数 |
| 【理解度確認】小テストにより確認する |