「アウェイ有利」についての考察 ― 2006年10月18日 02時25分20秒
- 改稿:10/18朝: 「近距離で発射された発射物の回避はホーム不利」を追加。結論に追加
- 改稿:10/20: たっちゃん44さんの誤り指摘を反映
CHPでの戦闘では、手前(青色で表示されるチーム)がホーム側、奥(赤色で表示 されるチーム)がアウェイ側と呼ばれており、「アウェイが有利」とよく言わ れている。確かに、格闘機体同士を戦わせるとアウェイ側が勝率が大きい。長 距離格闘だけを行う同一プログラムのバジリスクを1対1で戦わせると容易に確 認できる。ほぼアウェイ側が勝つはずである。この事に関して、考察を行う。 結果、格闘の他に回避でも若干アウェイ有利であることが判った。
まず確認のための実験として、同一機体で十分近い距離で向かい合って、同一 フレームに同じ格闘を始めて格闘攻撃の攻撃判定が衝突するという状況を、バ ジリスクの遠距離格闘、エッグノッグの上段格闘、ネグローニの下段格闘でそ れぞれ数十回試した。結果はすべて、ホーム側の攻撃は当たらず、アウェイ側 の攻撃が当たることを確認した。さらに言えば、チーム内闘争でもターゲット 識別番号が大きい方がすべて勝った(ここでは、以降ターゲット識別番号をID と呼ぶ)。
ところで、格闘攻撃時に腕や足に残像めいた白い半透明のポリゴンが表示され るが、これが格闘攻撃判定であろう。そう仮定して不都合を経験したことは無 いため、これを前提とする。
フレーム内の処理順について
ここで、いくつか観測された事象を挙げる。
- ID=2の機体を観測するプログラムを持つ機体(ID=2は自身を観測)で6機でシミュレーションを行ったとき、
- ID=2が前移動しているとき、同一フレームで、ID=2の座標は、ID=1とID=2からは移動前、ID=3~ID=6は移動後の座標が観測された
- ID=2が機雷を射撃しているとき、発射した(画面に現れた)フレームでは、ID=1は機雷を検出せず、ID=3~6は機雷を検出する。また、ID=2はこのフレームに残弾が減ったことを認識しておらず、次のフレームに認識する。ID=1も次のフレームでは機雷を検出する。
- ビームでも同様
- ID=2にビームを当てて被弾状態にさせたとき、
画面にダメージが表示され、「前小ダメージ」と表示されたフレームでは、すべての機体はID=2の被弾状態を検出しておらず、次のフレームでは被弾状態となってよろめいたグラフィックが表示されるとともに、すべての機体がID=2の被弾状態を検出した。
- 自身の耐久度の減少を認識するのも、この被弾状態の検出と同時
以上の事実から、次の事柄が推測される。
- 同一フレーム内で、プログラムの実行順序はホームが先
- (同一フレーム内で、チーム内でプログラムの実行順序がID順なのは既知)
- 同一フレーム内で、機体の移動はID順。それもプログラムの実行時と同じ。これを「各機体の処理時」と呼ぶ
- 武器の発射(発射物の発生)も各機体の処理時
- 自身の機体の状態変化を認識できるのは次のフレームであるため、ハードの処理はプログラムの実行後
- (ただし、実行中のアクションの反映はプログラム実行時に直ちに行われる)
- 被弾状態への移行(おそらくダメージも)はすべての機体の処理後、フレームが終了する直前に行われる
また、経験上、PAUSEボタンで停止するタイミングは常にフレームが終了した 時だけである。「ID=2の処理後、ID=3の処理前」といったタイミングでPAUSE がかかることは無かった。
ホームの格闘が不利な理由
・・・準備が長かったが、格闘の話に戻る。
格闘判定がいつ発生するかについては、機体の処理時か、フレーム終了直前か のどちらかであろう。ただ、前述の観測の通り、被弾はフレーム終了直前であ るため、格闘判定もフレーム終了直前であるとするのが妥当だろう。それにも し、機体処理時であれば、同一フレーム時に同条件で行った格闘は必ずIDの小 さい方が勝つことになるが、事実はそれに反する。
では、同じ格闘判定を衝突させた2体のうち、なぜ常にIDの大きい方が勝つの か?同時に格闘判定の命中を処理するのなら、同時に効果を及ぼして相打ちと なるか、または1/2の確率でどちらかが勝つ、というのがフェアな仕様である し、単純な造りならID順に勝つという仕様にしてしまいそうだ。
ここで、もうひとつ実験を行った。バジリスクに150mm装甲+シールド2個同時 起動の条件で同時に長距離格闘をぶつけてみる。最初の実験と違って、 この条件ではバジリスクの格闘攻撃を食らっても被弾状態に(めったに)ならない。 結果は、双方ともに同量のダ メージを連続して(多くの場合3フレーム)与えた。ただし、まれに一方が被 弾状態になることがあり、その場合は被弾状態になった方がそれ以上のダメー ジを与えることはできなかった。
この実験から、「被弾状態になったら、それ以上格闘ダメージ与えることがで きなくなる」という推測が立つ。確認してみると、確かに被弾状態になった次 のフレームでは、格闘攻撃判定のポリゴンが消えていることが判る。
余談だが、ネグローニの下段(チョップ→チョップ→蹴り)のように一回のア クションで何度も攻撃するような格闘を持つ機体の場合、被弾して格闘攻撃判 定のポリゴンが消えても、次の攻撃のポリゴンは表示され、興味深いことにこ のポリゴンは被弾中であるにも関わらず攻撃判定を持つ。
多段ヒットする攻撃は、最初のフレームで被弾して攻撃判定が潰 されても、次のフレームには二段目の攻撃判定によって相打ちになる場合がある。 例は綾影の下段の後半のチョップなど。
このことから、「同時に攻撃を衝突させた場合、ID順に食らい判定を処理し、 被弾状態となったら格闘攻撃判定が消失する」という仮説が成り立つ。
この仮説を否定する材料を私は見つけていない。この仮説が格闘の「アウェイ 有利」の原因ではないか、と考えている。
近距離で発射された発射物の回避はホーム不利
発射物の発生は各機体の処理時、被弾判定はフレームの終了直前である。では、 発射物の移動はタイミングはどうだろうか?
そこで、別の実験。正面に向き合った機体が同一フレームにビームを撃ち合っ たところ、相手のビームからの距離は双方とも同じと観測された(2m刻みで確 認)。もし発射物の移動が各機体の処理時であるならば、ビームの移動速度分 のずれ(16m) が生じるはずであるが、これは観測されなかった。そのため、発 射物の移動は、発射した機体に関わらず、フレームが終了する直前に行われる と推測される。
ここで問題がひとつ。ある機体が発射物を発射したフレームには、それ以下の IDを持つ機体はその発射物を検知しない。ということは、例えばビームは1フ レームに16m進むが、これをアウェイ側が16m以内で撃ったら、被弾判定以前に 検知するフレームがまったく無いことになる。
実際に試したところ、正面から向かい合って12mの距離から打ったビームに対 して、アウェイ側は発射物判定で検知したが、ホーム側は検知できなかった。
別の例では、40mの距離で発射されたビームを検知してから回避するまでにア ウェイ側は2フレームの余裕があるが、ホーム側は1フレームの余裕しかないこ とになる。
1フレームの差異であるから、距離が離れればこの差は薄れていく。高速飛翔 体発射物判断を100mに設定している機体では、100m以上ではまったく差は無い。
まとめると、近距離で発射された発射物の回避はアウェイ側に若干有利と言える。
当たり判定初回抜け?
ところで、「アウェイ有利」の原因として「ホームチームは当たり判定の初回 が抜けるバグ」という説があるが、私はこの「初回抜けのバグ」を観測したこ とが無い。
格闘については先に述べたとおりであるし、実際にビームを正面から同時に撃 ちあったときに、被弾のタイミングにフレームの差異は認められなかった。
この説に関して、情報があればぜひ教えて欲しい。
結論
結論として「アウェイ有利」は以下の2点からなる。
- 格闘攻撃判定が同時に衝突したときに、被弾状態になるのに十分なダメージならば、ターゲット識別番号の小さい方が必ず負ける。(被弾状態にならないなら相打ち)
- 近距離で発射された発射物の回避はアウェイ側が1フレーム分有利である
お願い
重大な問題だけに、この件については多くの方の意見を伺いたい。反論、反例、 傍証、他の判断材料や他の説など、なにかあれば遠慮なくコメントをお願いしたい。
よろしくお願いします。
地雷と機雷の賞味期限 ― 2006年10月19日 23時52分42秒
ZEUSでは100秒ぐらいで消えていた。
それだけ。
バースト射撃の抜け道 ― 2006年10月20日 03時07分35秒
以前のエントリ で、バースト射撃はCHPではできないと述べた。 リロード時間が経つまでは次の弾はどうやっても出ない、というのが理由だ。 しかし、リロード時間 を調査したおりに、ハンドグレネードだけはリロード時間が無いことが判った。 ということは、ハンドグレネードだけはバースト射撃ができるかもしれない、 という可能性にふと某掲示板で昔話をしていて思い至った。
そういうわけで、さっそく調べてみる。 エッグノッグ積載率100%でナパームレイン乱射8のとき、 グレネードの第1投は第13フレーム、第2投は第29フレームであった。 よって、連射間隔は16フレームである。
そこで、古きよきバースト射撃を試してみる。 「乱射4」「STOP 13/30」「前移動」のループを組んだところ、 見事に13フレーム毎にグレネードを投じることに成功した。
ちなみに、他の機種では以下の通り。
- 月影(100%) 第1投=17f, 第2投=33f
- ネグローニ(100%) 第1投=16f, 第2投=36f
- ノーランダー(100%) 第1投=16f, 第2投=36f
連射間隔はそれぞれ、16f、20f、20fなので、月影では利得が無いが、ネグロー ニとノーランダーはそれぞれ16fでバースト射撃が可能である。
なお、グレネードの第1投に要する時間もグレネード連射間隔も機動性で変化 するため、常に上記のタイミングになるわけではない。月影でもバースト射 撃で速くなる機動性があるかもしれないし、他の機種でも利得が無い機動性が あるかもしれない。
さて、実用的にどうか?というと、所詮グレネードなので20%程度連射頻度が 上がったからどうだ、ということもないし、残弾数がカウンタに取れないCHP の仕様ではプログラムでも扱いづらいので、実用性は微妙と言わざるを得ない。 まあ、開幕で大量投げ捨てを狙うという使い道もあるが、それに当たってくれ るのは高速移動を持たない脚付きぐらいのものであろう。他にはカウンタ方向 指定射撃で、開幕中間地点辺りに弾幕を張るぐらいだろうか。それも微妙だが。
グレネード ― 2006年10月21日 00時02分12秒
グレネードの説明には
飛距離は短いものの複数同時に投げることが可能な手榴弾です。投げる際に 被弾すると手から落としてしまう危険性があります。
とある。しかし実際には、射程はかなり長く、戦闘領域540mの対角 線同士でも余裕で届く、というのは知っている人は多いだろう。
投げている最中に被弾すると手から落とすというのは、実際に見たことがある 人はあまりいないかもしれない。実際のところ、被弾したときの手の振りの勢 いでどこかに飛んでいくため、足元に落ちることはほとんど無い。ちなみに、 投げている最中に投げをキャンセルすると残弾数は減るが、グレネードは落ち もしないでどこかへ消えてしまう。
グレネードを投げるときは、実は箱からグレネードを取り出す動作を行ってい る。残弾数が減るのはこの時だ。取り出す以前に被弾した場合、当然、残弾は 減らないし、落としもしない。キャンセルした場合も同じ。
積載率100%のエッグノッグが乱射でグレネードを投げると、射撃チップ実行を 第1フレームとして、グレネードが出るのは第13フレームであるが、箱から取 り出すのは第5フレームだ。そんなわけで、取り出したフレームでキャンセル して投げを再実行すれば、5フレーム間隔で「キャンセル高速グレネード捨て」 が行える。何かの拍子に素早くグレネードを捨てたくなったときは有効だ。
・・・そんな事態があるのかどうかは知らないが。
ところで、積載率100%のエッグノッグが乱射でグレネードが出るのは第13フレー ムだったが、通常射撃でも狙撃でも第13フレームにグレネードが出る。それに、 狙撃の効果が無い様に見える。グレネードには射撃モードが存在しないのだろ うか?
ちなみに、グレネード射撃は射撃旋回(目標を正面に捕らえようと射撃中に旋 回する動作。飛行機の多くが持つ性質)を伴う。
弾速:改訂版 ― 2006年10月25日 06時19分04秒
以前、弾速を測定して表にまとめたが、「弾数が減ってから目標OKEが被弾状 態になるまでのフレーム数を数え、その値で距離を割った」という測定方法で あった。しかし、発射された時点で既に1フレーム分移動しているため、割る フレーム数を1つ少なく計算していた。このため、速い武器で10%近く、遅い武 器で数%、大きい値になる誤りが生じていた。例を挙げれば、ビームが17.4m/fとなっていたのは誤りで、正しくは16.0m/fである。
このデータを見て機体のパラメータの調整を行っている人も多いかもしれない。 ここでお詫びを述べさせていただく。
ごめんなさい。
さて、データを測定し直してCarPortの 武器の ページに新たにまとめた。 追加した情報もあるので、参照して欲しい。
今回の測定は、例えばビームなら、10フレームに進んだ距離(m)を10で割って 求めた。進んだ距離は、初級演習場のフロアタイルの一辺が30mであることを 利用し、CHPの画面で1mmが1mになるように画面を調整し、定規で測った。この ため、測定精度は1mであり、10フレーム平均を取るので、今回の弾速の測定 誤差は0.1m/fとなり、以前のデータに比べてかなり高い精度を得ている。
得られた知見としては、ホーネット、ラプトル、スペクターはゴミだ、とい うこと。
この修正データを早く報告したかった(せめて第二回2ch大会の前に・・・)が、 この測定方法はかなり手間がかかるので、報告が今に延びてしまった。お許 し願いたい。
格闘ダメージ ― 2006年10月26日 00時07分48秒
各機種の格闘ダメージを調べて、 CarPortの格闘 のページにまとめた。 グラスホッパーの「踏み落とし」を当てるのが一番手間がかかった。
判ってはいたが、犬が可哀想。(´・ω・`)
(追記) やはり、実戦ではシールド2つ発動中のバジリスクを怯ませるために破壊力200は欲しいのだが、それだけの破壊力を持つ機種はごくわずかである。
CHP豆知識(4) ― 2006年10月29日 23時57分25秒
通常時(ジャミングフォッグの影響下にないとき)、レーダーの有効半径は500m。 よって、500mより遠い発射物は検知できない。500mより遠い機体をターゲット できない。戦闘領域360mなら全域がレーダー範囲内に収まるが、戦闘領域540m では端から端までは収まらない。
ターゲットロックは、レーダーの有効半径の1.5倍以内なら維持される。つま り、通常時は750mまでは維持される。これは戦闘領域540mを十分カバーするた め、いったんロックしておけば、ジャミングフォッグを受けなければ外れるこ とはない。
オプション ― 2006年10月30日 01時47分44秒
2chで「機体修復装置の回復量は?」という質問があったので、 答えようかと思ったら、プロバイダがアクセス制限中で書けなかった。 しようがないので、まだ途中であるが、オプションのデータのページを CarPortのオプション に起こした。もっとも、ここに書いたから、伝わるというわけでもないのだが。
ちなみに、「機体修復装置の回復量は241HP」というのは 8/14のエントリ に書いたことがある。
以前、ヴェロニカ・ルージュ’の調整のときに、「シールドのエネルギー消費 が大きいため150mm装甲を諦めた」という話を書いたが、なるほど、確かにシー ルド1枚で約1割もエネルギーを持っていかれる計算だ。