「Beginners Tournament 201312」コメント5

遅くなってすみません。
ようやくコメント終了です。
嫁さんが残業モードに入ってしまったので、
仕事・育児・家事・睡眠の4択生活になってしまってます…

3πチーム log23(3π)さん

綾影3機によるチーム。
判定重視のハード構成で距離を保って射撃戦を展開しますが
格闘ルーチンが作り込まれており、敵接近時はきっちり殴りに行きます。
ローカルループを主体にソフトウェアが組まれており、きびきびとした動きを見せてくれます。

スタート直後に旋回ルーチンがあり、かつローカルループで処理されているので
ターゲットが背後にいると回避行動すら取らない、という点が少し気になります。
ターゲットロックが全方位至近距離の敵なので、複数方向から敵機に接近されると右往左往することになりがちです。
旋回ルーチンを回避ルーチンの後ろに持っていき、ローカルループを使用しないのがシンプルな解決法ですが
ターゲットを正面に捉えることと回避行動を両立させるために、脚付きの場合は旋回ジャンプというテクニックがあります。
簡単なようで注意点も多いテクニックなのですが、解説してくださっているブログもあるので
少し調べてみると良いかと思います。

また、旋回ローカルループの問題とも関連して回避判定がやや厳しすぎるかもしれません。
全方位70mをチェック範囲としていますが、例えばビームは16m/fの速度なので
飛翔体検知したフレームで回避を開始するとしても、最低でも4f間隔で飛翔体検知をしないと避けられません。
ジャンプで回避を行う場合は、着弾より1〜2f前にジャンプしておかないと回避できません。
今のルーチンだと、ローカルループの問題に加えて飛翔体検知からジャンプまでのチップ数も多く、
レールガンなども回避が間に合わないことがままあるようです。
対処法としては、ローカルループの削減や飛翔体のチェック範囲を広げるのが簡単ですが
飛翔体検知の間隔を短くしたり、飛翔体検知からジャンプまでのチップ数を減らすのも効果的です。

飛翔体検知の間隔を短くするにはサブルーチンを活用すると楽です。
飛翔体検知のチップを適当な間隔(1fに処理されるチップ数を念頭に置いて、ですが)で配置し、
チェックに引っかかったらsub1に飛んでsub1で回避行動を行う、と言った感じです。

飛翔体検知からジャンプまでのチップ数を減らすには、ジャンプ方向を決める判断材料を極力絞り込むか
事前にジャンプ方向を決めておくか、の2択になりますね。
事前にジャンプ方向を決める場合は、やることがなくなりがちなジャンプ中に
判断ルーチンを実行するのが常套手段になると思います。