射程とゲーム画面と UI と(巫女&築城&防衛ゲーム)
ゲーム画面の設計をやっていきます。
やること
どうプレイするかを考えながら、ゲーム画面の構成というか UI 構成を決めていきます。
この開発ではフルコントローラ対応(XBox コントローラだけでゲームを全て操作できる)を目指します。
必要そうな UI
建築フェーズでは、城郭の建築と部隊の配置、敵の位置の確認を行います。
必要そうな UI は
- カーソル描画(画面中央固定、XBox コントローラ利用時に表示する)
- 建物やユニットにカーソルを合わせたときの情報表示(カーソルを合わせた対象の上側に表示する)
- ラウンドや資材、部隊などの数値情報の表示(画面の上)
- 建物や地形を配置、撤去するためのボタン群(画面の下)
- 全体マップ表示(フィールド自体の拡大縮小で対応する)
- 部隊パネル
- 装備パネル(そのうち作るかも)
- 研究パネル(そのうち作るかも)
でしょうか。
そして、防衛フェーズでは建築は行えなくなって自キャラの操作が主になることから、操作する UI は建築フェーズより減ったものになります。
XBox コントローラの割当て
考えた案としては、
建築と防衛のフェーズで共通なものは、
- Menu ... システムメニューを開く
- Change View ... フィールドの通常サイズ、全体マップサイズの表示切り替え
- LB, RB ... 有効になっているパネルのタブを切り替える。
- パッド上 ... 部隊パネルを開く
- パッド左 ... 装備パネルを開く
- パッド下 ... 建築パネルを開く(建築モードのみ)
R stick 押下 ... フォトモード
A ... 決定
- B ... 閉じる
です。
建築フェーズに特有の割当は
- L stick ... カメラ位置の移動
- X ... 選択している建物や壁の回転
- Y ... 選択している建物や壁の削除
で、防衛フェーズ特有の割当は
- L stick ... 自キャラの移動
R stick ... エイム(基本オートだが、この操作があればそれを優先する)
RT ... 攻撃
- RB ... 武器の切り替え(近接武器と遠距離武器)
- LT ... ダッシュ
LB ... スキル
A 長押し ... インタラクト(門の開閉など)
- X ... 随伴兵の攻撃と防衛の切り替え
にしようと思います。
やったこと
地形の編集操作の平坦にするあたりを実装した
地形は Terrain、有り体に言うとメッシュで表現するのですが「この位置のブロックを高くして、低くして」という API の実装が適切に動作してなかったのを途中まで実装しました。
_blockTerrain.AddBlock(new Vector2Int(1, 1));
_blockTerrain.AddBlock(new Vector2Int(2, 2));
_blockTerrain.AddBlock(new Vector2Int(3, 2));
_blockTerrain.AddBlock(new Vector2Int(3, 2));
↓ 上記コードを実行したときの描画結果
とても見づらいですが、1つのブロックが 2 Unity unit になっていることと、1ブロックの高さが幅の半分になっていることがわかります。よいです。
気付きとしては
- 本当はブロックの高さは幅に対して 0.25 にしたかった。
- 0.5 だと斜面の傾斜が急すぎるように思う。
- かなり真上からの視点にしないと高いブロックが奥にあるものを隠してしまう。
- テクスチャは適切なものにした方がいい。
です。
斜面が 45 deg までの傾斜になるようにする実装はまだ不完全ですが、建物を配置する準備はできたのでよいです。
まとめと今後の予定
ゲームの画面構成を検討して、どういう UI が必要そうかと XBox コントローラでどう操作したいかを考えました。
また、地形の描画まわりの実装を進めました。よいです。
次回は地形の編集や建物の配置の実装や、ユニットの攻撃まわりの仕様検討などに着手しようと思います。がんばります。