初心者向け講座


基礎講座

  • 俺の講座で良いのかい?
今作のレクチャーはとても丁寧であり、基本的な行動の型は答案サンプルの分析と改良の試行で身に付くようになっています。

初心者にとって悩ましいのは、何も設置されていないまっさらな状態のCPUを目の前にして
「とりあえずどう置き始めたら良いのか」「全体的にどんな流れにすれば良いのか」がイメージし辛く、
新しいOKEを一から組み上げるという行動に手が出ない点ではないかと思われます。

ある程度慣れると、細かいロジックよりも実はこの「全体的な流れ」こそがプレイヤーごとの独創性、
オリジナリティに溢れていておもしろいところと感じるようになります。
ゆえに、これから解説する「流れ」はあくまで一例、決して絶対的な基礎というものではありません。
手が出ない、けどとりあえず作ってみたい、そんな人の背中を押す程度の解説であることをご了承ください。

なお、前作と異なる仕様について特に覚えておくべき点についても、簡単な解説を加えてあります。
青字部分の付近の解説をご参照ください。


  • 最初に何をすれば良い?
好きなハードウェアを組みましょう。ボディと使いたい武装、オプションをセット。他の調整は後回しで構いません。
何ならカラーリングとエンブレムを先に設定すると、簡単なテスト動作でもモチベーションがあがったりします。
CPUは迷わず記憶容量のでかいものを選びましょう。スタンが怖い?そんな小難しい話は1ヵ月後の自分にでも投げましょう。


  • ソフトウェア開いたぜ!…で、何からやればいいの?
「OKEに判断させたいこと」とその順番を、一度整理してみましょう。とりあえず一例を挙げます。

1・自機の状態を調べる
2・攻撃可能かどうかを調べる
3・自機の立ち位置を調べる
4・敵からの攻撃を調べる
5・敵を探索する

前作に慣れているとこの順番には違和感を感じるかもしれません。理由については後述。
例えば下記のような流れでチップをつなぎ、プログラムの背骨とすることができます。

[スタート]

[状態判断:耐久度 50% 以下]
↓NO(緑矢印)
[状態判断:耐久熱量 90% 以上]
↓NO
[ターゲットロック:極座標 800m 最も近い敵]

[ガンサイト起動]

[ターゲット位置判断:極座標 前方 90° 0m - 200m]
↓NO
[戦闘エリア判定:極座標 360° 0m - 30m]
↓NO
[発射物探査:極座標 360° 0m - 100m 高速飛翔体 1発 以上]
↓NO
[ターゲット位置判断:極座標 前方30° 0m - 800m]


分岐の先は、後でゆっくり考えればいいことです。
このように、まずは必要な判断チップを一気につないでしまいましょう。
実際は他にもいろいろなことを判断させたくなりますが、方法は変わりません。
今作では組み立てた後のチップの移動や編集がとてもやりやすくなっているので、
とにもかくにも流れに沿って判断系チップをガシガシつないで、骨を最初につくってしまうのが楽です。



プログラムの骨の一例です。これから解説を行うプログラムから抜き出しました。右上の全体図を見ると意外に短いと感じますね。
こうして見ると、複雑そうに見える部分は全て『枝』の先であり、中心はとてもシンプルなことがよくわかります。

さて、上の例では省略した部分が大きいので、ここで少し細かく追加して、分岐の先まで触ってみましょう。

  • 1・自機の状態を調べる
とりあえずこれを一番最初に持ってきました。理由は、最も参照されることが多いからです。
プログラムの終わり、端の「RETURN」は全て「START」につながっています。どんな複雑な分岐ルートを通っても、
「START」直後は必ず通過します。参照回数が多く、最もこまめにチェックしたいものを置くのがお勧めとなります。
サブルーチン?そんなものは1ヵ月後の自分に投げましょう。

さて、そもそも自機の状態を調べる目的は、主に各種オプションを発動させたいからです。
代表的なものとして、機体修復装置、機体冷却装置が挙げられます。

1・自機の状態を調べる
HPが減っている? YES → オプション1使用 → 熱量のチェックへ
熱量が上がりすぎ? YES → オプション2使用 → 次の判定(攻撃可能かどうか)へ

このような形でチップをつなぎ、オプションを自動的に発動させると良いでしょう。
注意点というほどではありませんが、仮にオプションが使えなくとも次の流れに進むようにしておきましょう。
HPチェックのどこかでNOだった場合は熱量チェックへ、熱量チェックのどこかでNOならば次へ。


オプションは発動すると効果時間が表示され、効果発動中は同じ番号のものが重複して使用されることはありません。
同じオプションを重複使用して効果を上げたい場合は、別の番号に同じオプションを装備する必要があります。

以降の参考画像は全てをなるべく1画面に収めて撮影するために、横方向に伸ばしながら少々無茶な繋ぎ方をしています。
また機能の面からも完全ではありません。実際に作成する際は、好きなように繋ぎながら必要な機能を組み込みましょう。


  • 2・攻撃可能かどうかを調べる
もちろん目的は攻撃ですが、直前にチェックしておきたいことが実はけっこうあります。
例えば敵が格闘可能なほど近距離にいる場合、脚の速い機体ならば距離を離して射撃優先、
脚の遅い機体ならば格闘に打って出るなど、行動選択も変わってきます。
とりあえずここでは距離判断は行わず、通常射撃から試してみましょう。

2・攻撃可能かどうかを調べる
極座標 360° 800m 以内の最も近い敵をターゲットロック・使用したい武器のガンサイト起動

自機の熱量が一定以下か? NO → 次の判定(立ち位置)へ
↓YES
ターゲットまでの射線上に何らかの障害物が存在するか? YES → 次の判定へ
↓NO
ターゲットが前方200m(武器の射程)以内に存在するか? NO → 次の判定へ
↓YES
起動武装は1発以上あるか? NO → 次の武装で試す、格闘に切り替えるなど
↓YES
起動武装で攻撃 → 次の判定へ

使用武器によって、射撃命令やモード、射程距離や射撃位置の調整などが必要になります。
また上の例はあくまで一例なので、判定の順序や必要性などは自身のOKEに合わせて工夫しましょう。


上の参考画像の場合、武装1から順にチェックし、射撃可能ならば1発射撃状態に入って次の判定に向かいます。
弾が無くなった場合、次の武装に切り替えて繰り返し、全武装の弾がなくなる(=格闘が選択される)と
左下に抜けるようになっています。なお1画面に納めるべく相当変な繋ぎ方をしており、機能も不足しています。
例えば実際は状況に合わせて武装を切り替える方が、効果的な攻撃が可能です。

この攻撃判定によって、実際にOKEが「攻撃」という動作を実行するわけですが、
ここでOKEの各動作の実行モード(通過・思考停止)について、簡単に補足説明をしておきたいと思います。

前作ではほぼ全ての動作が、次に指示された動作でキャンセルされる仕様でした。
そのため移動と攻撃の両立が難しく、移動射撃など専用チップを用いるか、相応の工夫を凝らす必要がありました。
しかし今作では射撃を通過モードで指示した後に移動を実行させると、射撃しながら移動することが可能です。
また逆も同様で、移動を通過モードで指示した後に射撃を実行させると、移動しながら射撃することが可能です。
この点が前作と大幅に異なっているため、慣れていた方は特に気をつける必要があります。

この仕様により、今作では射撃判定の後に位置や回避の判定をつないでも、どちらもしっかり機能します。
逆に回避判定の後に射撃判定をしても構いませんが、格闘攻撃判定が浮き気味になる可能性があります。
レクチャーにもあるように、格闘動作は移動動作をキャンセル(逆も然り)してしまうからです。
しかしそれも利用できれば、おもしろいプログラムが構築可能かもしれません。

[ポイントまとめ]
移動動作と射撃動作の実行は、基本的に通過モードでOK。
移動だけさせたい、射撃だけさせたいといった特別な状況に限って思考停止モードに。
もしくは、射撃を通過で指示した後の移動など、組み合わせたい動作の「最後の動作」のみ思考停止モードに。
格闘動作の実行は、基本的に思考停止モードでOK。
格闘途中で他の格闘や移動や射撃、防御などをさせたい場合に限り、思考停止チップで時間調整した上で通過モードに。


  • 3・自機の立ち位置を調べる
主にフィールド端での動きの制御が目的となります。回避の制御よりも先にないと、回避運動が壁にぶつかり続けることになります。
少し複雑なところでは、壁に近づくと回避運動の方向を反転する壁スイッチという方法もあります。
今回は回避方向はランダム(後述)と仮定して、とりあえずここでは簡単な壁ぎわの回避を試みましょう。

3・自機の立ち位置を調べる
半径30m以内にエリア外が存在する? NO → 次の判定へ
↓YES
右方向 30° 30m以内にエリア外が存在する? YES → 左ジャンプ(ホバーなどは左急速移動)実行 → RETURN
↓NO
左方向 30° 30m以内にエリア外が存在する? YES → 右ジャンプ実行 → RETURN
↓NO
後ろ方向 30° 30m以内にエリア外が存在する? YES → 前ジャンプ実行 → RETURN
↓NO
旋回(通過) → 後ろジャンプ → RETURN

これでフィールド端での行動を避けて戦闘が可能です。
なお今作では回転ジャンプや、ジャンプ射撃、移動射撃のチップがなくなりました。
こうした動作も通過モードで組み合わせて実行可能となっており、より動作の自由度が高まっているといえます。
攻撃判定で射撃状態だった場合、ここでのジャンプは「ジャンプ+射撃」になります。この後の回避判定でも同様です。



  • 4・敵からの攻撃を調べる
主に敵弾の回避が目的となります。攻撃はまず射撃と格闘に分けられ、さらに射撃は種類が豊富ですが、
おおまかには通常・誘導・設置の3系統に分けられます。ここでは通常射撃の回避を試みてみましょう。
基本は、射線に対してなるべく垂直方向に移動する、これだけです。ついでに目の前の味方機も回避しておきましょう。

4・敵からの攻撃を調べる
極座標系半径100m以内に、高速飛翔体が存在する? NO → 目の前に味方機が存在する?   ↓ YES  NO → 次の判定へ
↓YES
直交座標系で、自機中心に、横幅50m・縦幅200m 範囲内に高速飛翔体が存在する? YES → 50%確率で右か左にジャンプ → 次の判定へ
↓NO
50%確率で前か後ろにジャンプ(ホバーなどは高速移動) → 次の判定へ


直交座標による前後判定ならば、1チップによる省スペース化と素早い判定が可能です。
ただし自機周辺にやや横方向の判定が出てしまうので、正確さを重視するなら極座標系で前・後ろと2回判定を行う方が良いです。


これもかなり無茶な繋ぎ方をしていますがご愛嬌。

これだけで全方位からの通常射撃に対し、そこそこの回避運動をしてくれます。
今作では斜め方向にも移動を指示できるので、より優れた回避運動も容易に作成可能です。
また他の射撃に対する反応を追加する場合は、例えば下記のように分岐させる方法が考えられます。

一定距離内にミサイルが存在する? YES → ミサイル対策
↓NO
一定距離内に高速飛翔体が存在する? YES → 例えば上述のような、通常射撃対策
↓NO
一定距離内に全ての発射物が存在する? YES → 主に設置系武装対策
↓NO
次の判定へ

全ての回避に共通する重要な点として、敵の武器の弾速や、自機の移動速度に応じた反応距離の調整が必要です。
また少しでも反応を早めるために、一時的にループ処理をさせたり、移動後即RETURNにつないで回避判定を素早く回すのも良いでしょう。


  • 5・敵を探索する
主に攻撃対象の追跡が目的になります。敵の探索にはターゲットロックして得た情報を用いる方法と、
指定範囲内の敵を探す機体探査という、2つの方法があります。
ここではとりあえず、ターゲット情報を使って試してみましょう。

5・敵を探索する
ターゲットが前方30° 800m以内に存在する? YES → 旋回停止 → 目の前に障害物が存在する? NO:前方移動 YES:右移動 → RETURN
↓NO
ターゲットが右方向180° 800m以内に存在する? YES → 右旋回 → RETURN
↓NO
左旋回 → RETURN


ここで「旋回」を角度無限の通過モードで実行した場合は、どこかで必ず旋回の停止が必要となります。

ターゲットロックすることで、自動的に照準や機体の向きを合わせることができ、ターゲット情報を用いた各種判定が利用可能になります。
ただしターゲットロックはレーダー範囲内の機体に限定されます。レーダー半径は通常、半径500mと十分な性能を持ちます。
しかし一部の機体が使用可能なジャミングを展開されると、レーダーの範囲が狭くなり、遠距離でのターゲットロックが不可能となります。
こうなると、レーダー範囲の外にいる機体へのターゲット情報による判定の全てが使用不能となります。
なおジャミングが最高濃度の場合レーダー半径は50mであり、また時間経過でレーダー半径距離は少しずつ回復していきます。

こうした状況に対応するためには、ターゲット判定が不可能な状況も想定して行動を組んでおく必要があります。
上の例ではターゲットロック可能な前提で「旋回」のみ指示していますが、ターゲットがいない場合の分岐を加えて、
移動や設置系武装あるいはレーダー強化オプションの使用を実行するなど、対応を改良すると良いでしょう。

↓NO
ターゲットが右方向180° 800m以内に存在する? YES → 右旋回 → RETURN
↓NO
ターゲットが左方向180° 800m以内に存在する? YES → 左旋回 → RETURN
↓NO
ターゲットロックができていない場合の行動ルーチン(単純に自機の「動作判断」を使って、別の場所で判定するのも良い)

また先に述べたように、敵の探索にはターゲット情報を用いない「機体探査」という方法もあります。
機体探査でも部隊属性「敵」「味方」を指定していると、レーダー範囲内でしか判定することができません。
しかし部隊属性「指定無し」「不明」ならばレーダー範囲外でも機体の発見が可能です。
「指定無し」はレーダー範囲内でも機能し、何らかの機体がいればYESに分岐します。「不明」はレーダー範囲内では常にNOとなります。
またレーダー範囲外でも「機体種別」による判別は機能します。機体の容姿がわかるということです。
つまり機体探査は、イメージで言えばカメラ(光学センサー)なのです。

[ポイントまとめ]
基本はターゲット情報による判定でOK。
ターゲット情報は便利なものが多く、カウンタを用いた戦術にもターゲットロックは必須。
レーダー使用不可能な状況では、機体探査を活用してみよう。
部隊属性「不明」で、レーダー範囲外の機体を判定可能。発見した機体は「機体種別」である程度の見極めもできる。


  • 結局どういうこと?
1・大まかな「流れ」を決めましょう。
2・「流れ」に沿って、判定チップをつないで骨をつくりましょう。
3・それぞれの判定から行動までをつくりましょう。
4・動かしてみましょう。
5・より早く?より強く?より確実に?より美しく?なんでも結構、自分の思い描くプログラムを目指しましょう。