なんだかジャンプ射撃の話題が2chで出たとき、ここを挙げていただいたようで嬉しいやら恥ずかしいやら。 ジェイラーの装甲を壊した時もこのブログを紹介していただいたようだ。
さて、ジャンプ射撃を連続でさせる場合の話だが、私が知る限り最も実用的と思う方法を紹介する。 とは言っても、多脚をまじめに作ったのは今回の冥界が初めてなので、ニナガワさんやG--ONEさんが既に公開されている内容と同じかそれ以下になるだろう。 詳しい情報を求めるなら諸氏のブログを参考にして欲しい。
ジャンプ射撃は発射数が多いと着地後も射撃を続け、ジャンプ中と射撃中の両方の状態と見なされるため、すでに着地しているかどうかは判断チップで検出出来ない。 また、その間は同じ武装、同じ方向のジャンプ射撃は出来なくなる。 そのため別のチップで行動を上書きしてやることが必要になる。
以上が2chで出ていた話。
普通のジャンプと違い、ジャンプ射撃はWaitチップだと隙が大きくなるので、ループを組んで隙を減らす。 ジャンプ射撃中、必要であれば変数管理やオプション管理などのジャンプ処理を行なった後、最後に
A 自機がジャンプ中 No→ 次の処理へ Yes↓ ガード60/30秒 ↓ 自機がガード中 Yes→ 次の処理へ No↓ Aに戻る
この3チップのループを入れるのがよいだろう。 抜けた後次の行動チップまで数フレームかかっても、ループを抜けた時ガードしているので隙は少ない。 ちなみに、ガード60/30秒は便宜的な数値なので5/30秒でもなんでも良い。 ループ後3チップで行動チップを通るなら、ガード前にSTOP1/30sを入れると最速行動が出来る。
A 自機がジャンプ中 No→ 次の処理へ Yes↓ STOP1/30秒 ↓ ガード60/30秒 ↓ 自機がガード中 Yes→ 3チップ以内に行動チップ No↓ Aに戻る
「自機がジャンプ中」をNoで抜けた場合は被弾しているか、そもそもジャンプしていないかだ。 ジャンプ後最速行動とは言うものの、さすがに判断チップを2つ踏むだけで行動チップに持っていくのは無理がある。 一応、敵が近くにいる場合に使えないこともない。 車両が格闘している場合に最速で復帰してジャンプ射撃で逃げ回る、という方法なら十分実用に耐えるだろう。 通常のループでもガードしたフレームに2〜4チップ処理出来るが、3チップ固定のほうが組みやすいとは思う。 4チップで行動チップを踏むようにして、1/3にかけるのもありかも知れない。
追記: nas_Bさんよりアドバイスを頂いた。 ありがとうございます。作成中の冥界はチップ領域不足で悩んでいるので、これで少し前進出来そうです。
後半で挙げた4チップループだが、ジャンプしていなければジャンプ射撃はキャンセル出来ているはずである。 自機ジャンプ中か、の判断チップだけで十分だ。
A 自機がジャンプ中 No→ 次の処理へ Yes↓ STOP1/30秒 ↓ ガード60/30秒 Aに戻る
これで十分なはずだ。機能は全く同じ。 普通に考えれば気付くよなあ、と今更ながら思う。 作成中のソフトにも無駄が沢山ありそうだ。
|