経路探索と移動の仕様検討(巫女&築城&防衛ゲーム)
経路探索まわりの作業を進めます。
やること
移動まわりの仕様について
仕様を列挙していくと
- 敵ユニットは壁や建物を壊して移動するし、水中も移動して石垣も登ろうとする。
- 味方ユニットは地面と門のタイルしか移動しないし、石垣の高低差は移動できない。
- 斜面に階段が建築されていれば、斜面より移動コストが低くなるようにする。
- 敵ユニットは、足元のブロックに割り振った方向に進む。
- このブロックに割り振る方向が拠点に向かうように経路探索を行う。
- 敵ユニットの移動先に建物や壁があれば攻撃を行う。
- 攻撃モーション中のキャラは移動しないし、味方ユニットから押されて動かない。
- 攻撃中でなければ Boids アルゴリズムの「分離」相当のちからを受ける。
- 建物が壊れるので経路探索を繰り返し行ってブロックに割り振る移動方向を更新する。
- 敵ユニットが目標とする移動速度でないときに、渋滞しているとみなして足元の移動ブロックの移動コストを上げる。
- 経路探索は繰り返し行われているので、渋滞をよける経路に変わっていく。
- 反撃中の敵は、足元の移動ブロックとは関係なく移動を行う必要がある。
- 建物は耐久力に応じて移動コストを大きく設定する。
です。
マジめんどいですね、これ。
特に「反撃中の敵は目標が拠点でなくなる」とか「敵と味方とで経路の決め方が異なる」というのが心にきます。壁があるときの移動コストの増加も地味にめんどうです。
↓ 緑の箇所のいずれかに壁があると、斜め方向の移動コストが高くなる図
反撃については「反撃対象までの移動コストが N 以下のときのみ移動する」とかの条件も必要そうです。
まとめると、経路探索と移動については
- 敵が拠点に押し寄せるようの経路探索
- 敵が拠点でなく反撃対象に移動するときに使う経路探索
- 味方の部隊が移動するときに使う経路探索
があります。
やったこと
経路探索の準備
今までは自作の A* アルゴリズム実装を使いまわしてきたのですが、勉強を兼ねて Easy Path Finding アセットを購入してソースコードを読んだりしました。よいです。
ただ、このアセットだと「建物や壁がある場合や高低差の傾斜によって移動コストを上げる」といった処理は行えなさそうだったので、そういう機能を追加する方法を考えました。
そして、経路探索を調整して単体でテストすべきなのはそうなのですが、建物の配置ができるようになってから、そのフィールドに移動経路を描画して評価するのがよさそうに思ったので、これ以上の作業は次回以降に行います。
雑多な作業
イベントシーンをどうするか検討した
チュートリアルなどのイベントシーンでは、キャラの立ち絵と画面下部のメッセージパネルとで説明をしたいと思っていました。
ただ、今回はゲーム中の Pixel キャラ表示がこれ↓なのに対して、
イベントシーンだけ急にこの立ち絵で表示していいかを悩んでいます。
2つの絵柄を比べたときに「違和感が大きいよなぁ」と思います。
ピクセル画像を立ち絵として大きく表示する案もあるのですが、それはそれで威圧感が大きそうで悩ましいです。
おそらく、ピクセル寄りの背景かゲーム画面に Pixel キャラを配置して、その上に吹き出し形式で台詞を表示するのがいいのかな、とは思います。
ただ、なんというか、背景画像に立ち絵と台詞を表示するのに比べると「少しめんどいなぁ」と思ってしまって悩ましいです。
なんというか、Pixel キャラが可愛くないのが根本的な問題にも思えます。
いずれまた考えます。
まとめと今後の予定
経路探索について、どういう実装が必要かを書き出して確認しました。よいです。
そして、敵が建物や壁を攻撃するときの条件を考えてないのに気付いたので、次回はそのあたりを検討するか、建物の建築まわりに着手しようと思います。がんばります。