「アウェイ有利」についての考察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月18日 08時58分40秒

当たり判定初回抜けというのは私自身も確認できず
結局(書き込み者の)勘違いではなかったのかな、という感想です。

赤字の結論二点に関しても同意します。

_ 天導 ― 2006年10月19日 19時06分50秒

 なるほど、ホームで初弾が当りまくるのはホーム・アウェイの位置による偶然が存在しても、この考察で述べられている原理が作用してるわけではないのか・・

_ たっちゃん44 ― 2006年10月19日 22時14分42秒

アウェイ有利の謎やっと納得しました。あと、識別IDは、私はてっきりフォーメーションの影響だと思っていました。
それと、本文の下記部分は誤記ですよね?
”チーム内闘争でもターゲット識別番号が小さい方がすべて勝った”-->大きい?

_ nas_B ― 2006年10月20日 00時21分10秒

> ヒデーさん
どうもです。不存在の証明は難しいですよねえ。

> 天導さん
リスタートすると障害物の配置が同じだから、同じ結果が起こりやすい・・・って
天導さんは飛行機ですね。関係ないですね。失礼しました。

>たっちゃん44さん
はぃ~。その通りでございます。修正しました。

_ Kuma ― 2006年11月20日 18時39分12秒

はじめまして、Kumaです。
これを読んで、1on1小型CPU大会で、自機ホームで、
自分で試したときは、わずかの差で勝てなかった
(良くて引き分け)「トゥーラン」に、決勝で勝てたのが
わかるような気がします。
ありがとうございました。

_ nas_B ― 2006年11月20日 22時33分55秒

Kumaさんはじめまして。
1on1小型CPU大会優勝おめでとうございます。
新たな仲間が増えて来てくれて、CHPの一ファンととして嬉しいです。
この大会も、初参加の人たちがたくさんいらっしゃいましたね。

ホームアウェイ差ですが、仕組みは大体判ったのですが、影響は当初思っていたよりも大きそうです。
一番顕著に出るのは、格闘機同士ですが、車両対脚付きも露骨にホームアウェイ差が出ます。

アングリフ対車両はそこまで顕著ではないと思いますが、やはり無視できなさそうです。

トラックバック

_ 海賊艦長航海日誌 - 2006年10月18日 12時02分21秒

nas_Bさんのアウェイ有利に関する考察を受け、CHPにおける処理の実装を推測してみることにした。
推測する為のベースとしては、これまで自分で作ってきた無人機動兵器系ゲームでの実装を使うことにする。
まず概略として、
1)おそらく表示の1フレームが1ターン...