2016年4月19日火曜日

【Unity】RTS:前線の拡大縮小



形成される前線点への戦力の割当を改善した。パラメータによって前線の位置に応じて戦力の分配度を調整できる。これで例えば前線が自陣に近い時は戦力を集中して守りを固め、遠い場合は戦力を分散して半包囲攻撃を目指すというようなことができる。あわせて前線の位置から前線の幅も変わるようにした。前線が中央にある時は下の写真のように幅が広い(丸い点とそれを結ぶ線が前線)。


 一方でどちらか片方に前線が偏ると幅が狭くなる。このため守備側も攻撃側も無駄なく戦力を集中することができる。


こうしたパラメータは変更可能なので指揮官ごとに性格づけることができる。

 前にも書いたかも知れなけど、指揮官AIの状況判断は各ユニットからの情報を吸い上げて分析した情報で判断する以上、どのような処理をどのタイミングで実行するかがとても大事になる。そのため1ユニットに至るまでどのような処理を実行するかは中央で管理したほうが都合がいい。これはスター・ウォーズでの司令船とバトルドロイドの関係に似ている。大局的な判断はドロイドから収集した情報を元に司令船が行い、ドロイドはその命令に応じて個々の処理を行う。司令船が破壊されるとドロイドは動かなくなる。

 いまAIは指揮官AIとユニットのAIの二つがあるが、実際にはユニットは数個で1つのチームとして扱われているのでチームAIを新たに作り指揮官AIの一部の権限を以上することを考えている。こうすることでよりチームが一丸となって行動できるが、一方でユニットの行動により深く介入することになるので、ユニットAIとの機能衝突が起きる可能性が高くなる。

2016年4月9日土曜日

【Unity】RTS:地形など


 前回から手動で拠点を設定し(まだ手動)前線点がそれに引きずられるようにした。またマス目ごとに地形を規定するようにした。緑の部分が森を示している…たぶんそこに木が生えるようなるだろう。地形を捜査するメソッドも実装してユニットは一定距離内のある程度定まった方向の地形をスキャンできるようになって防御に適した地形を発見できるようになった。今後はユニットが移動目標地点を予約して混雑を防ぐようにする。