第08回 3D探索1
Input Systemの入力を水平な移動方向へ変換し、NavMesh上を歩くTPS操作を作ります。カメラの角度・距離を変えながら、同じ前入力でも見る方向に応じて進む向きが変わることを確かめます。
配布プロジェクト
第08〜11回の開始用プロジェクトは準備中です。配布状況を確認してください。本文では計算と確認手順を読めますが、対応するSceneと接続済みの補助機能がそろってからUnityでの実習を開始します。
この回のゴール
- Input Systemの入力値からカメラ基準の水平な移動方向を作る
- NavMeshAgentで歩き、坂・壁際・移動可能領域の端を確認する
- 周回カメラの注視点、距離、上下角の制限を調整する
今回のポイント
移動可能な床の情報をNavMesh、そこを移動する部品をNavMeshAgentと呼びます。今回は入力から1フレーム分の移動量を求める手動歩行です。目的地までの経路探索は第11回の実演で区別して確認します。
授業の進め方
1 / 4ステージと移動可能領域を確認する見た目、Collider、NavMeshの役割を分け、歩ける場所を確認する2 / 4カメラ基準の方向をNavMeshの歩行へ渡す入力から水平な方向を求め、速度と時間を掛けて移動量へ変換する3 / 4周回カメラの角度と距離を調整する注視点を基準にカメラを配置し、上下角の制限と距離による見え方を比較する4 / 4歩行と観察の最小ループを確認するカメラ、入力、歩行をつなぎ、次回のアニメーションへ引き継ぐ
今回実装する範囲
| 区分 | 内容 |
|---|---|
| 中心の処理 | ExplorerMotor.Direction、Walkの移動量、OrbitCamera.Turnの角度制限 |
| 提供機能を利用 | 入力取得、初期NavMesh、モデルの向き、カメラ配置と遮蔽物への接近処理 |
| 発展・実演 | CharacterControllerを使うジャンプの比較例 |
完成確認
- カメラを横へ90度回すと、前入力で進むワールド方向も90度変わる
- 同じ強さの斜め入力で移動速度が増えない
- 小さいスティック入力ではゆっくり歩ける
- カメラの上下角を変えても水平な移動速度が変わらない
- 坂・壁際・移動可能領域の端で意図した範囲を歩ける