シレン2 隣接敵優先の原則と事後確率で特技使用率が高くなるという話:逃げキララに出口アークの炎が当たる現象の説明

長文になります。(一部修正しました→修正記録は最後に記載)

自分用のメモという意味合いが強く、さすがに長すぎる(1万字超)ので、無理して全部読む必要はないと思います。結論とかだけ読んでもらえれば・・・。

あんまり難しいことを長々と書いてもどうなんだろうとは思うんですが・・・ある程度の正確さとなると・・・うーん・・・しょうがないですね・・・

 

わんたんさんが次のような難問を出して、自分なりにちょっとずつ考えて、ちょっとずつ言語化してみました。

 

0.はじめに

考えたり、調べたりした結果、シレン2がどのようなゲームか少し理解が深まったような・・・謎が深まったような・・・

シレン2がゲームプログラムで動いている以上、(バグかもしれないけれど)その挙動には必ず理由があると思いたいです。

私もこの「逃げキララに出口アークの炎が当たる現象」の説明には全く自信がなく、当初は「炎はランダムで飛ぶ」と予想していました。「シレンと軸を合わせなくても特技を使ってくるモンスターの性質」とか、いろんな理屈を頭でこねくり回していましたが、私は検証結果を信じたいと思います。

 

結論を言います。

検証の結果、次の2つの可能性まで絞られました。

可能性1.例の場面なら、アークの炎は100%キララに飛ぶ

可能性2.例の場面なら、アークの炎は12%の確率でキララに、10.6%の確率でシレンに飛ぶ(残りの確率は足踏みと予想)

いずれの場合であっても、例の場面でキララに炎が飛んだのは、隣接敵優先の原則により、アークが最初からキララを狙って特技を選択した可能性を私は推したいです。

 

1.シレン2のターン処理(たまさざれの憶測)

1.1.以前までの認識(不採用)

私の憶測では、シレン2のターン処理は次の図のようになっている・・・いや何も確定はしてないんですけど、あくまで憶測で「こうなんじゃないかな」くらいの気持ちで・・・。私はROM解析とかやらないし、ゲームの挙動から推察した結果ですので・・・。

ひとまず、このターン処理を大前提として話を進める・・・・・・という予定でした。

シレン2のターン処理v1(たまさざれの憶測)要約版

1.2.現在の認識(採用)

憶測であることに変わりはないですが、検証を進めた結果、今の私の認識では次の図のようになっていると考えています。

シレン2のターン処理v2(たまさざれの憶測)要約版

全体の流れに大きな変わりはありませんが、曖昧にしていた部分である対象の優先順位を考えてみました。基本の優先順位が存在し、例外によってモンスターの多様性を表現していると思います。
ここでは、基本の優先順位について次のように考えています。

 

優先順位1:対象を先に決定し、行動(移動・特技・攻撃・足踏み)を後に決定する

理由:対象を先に決定したほうが、行動を絞れるからです。

行動を先に決定すると、対象が有効範囲外になってしまう可能性があり、再選択する機会が増えてしまいます。

→ただし、例外も存在するとは思います。すなわち、行動(とくに特技)を先に決定し、対象を敵・味方の行動後に決定するモンスターです。

 

優先順位2:隣接敵は特技の対象よりも優先される

理由:これは検証結果から得た知見です。(隣接敵優先の原則)

 

優先順位3:部屋などで視認した敵は特技の対象よりも優先される

理由:身代わりやシレンの視認をトリガーにしている特技が多いからです。

 

優先順位4:特技の対象は移動よりも優先される

理由:遠距離攻撃のモンスターは基本的に軸合わせを優先します。

もし移動が特技の対象よりも優先されれば、シレンと軸を合わせても遠距離攻撃せずにシレンに近づいてしまいます。

「有効範囲内に特技対象がいないか、特技率の乱数で失敗した結果、移動する」と表現されていると思います。

 

基本の優先順位から外れるモンスターたち

基本的な優先順位を守りつつ、時には特定のモンスターには例外的な優先順位を持たせることで「あのモンスターは何かが変な動きだ!」という感覚をプレイヤーに与えます。「シレン2の個性豊かなモンスターをどのように表現するか」という話につながると私は思います。

代表例は次のモンスターたちです。

 

アイテムを投げるモンスター

・アメンジャの思考:落ちているアイテムを最優先にする。

シレンがいようが、シレンに殴られようが、身代わりの土偶があろうが、タベラレルーさえも無視してアイテムを拾いに行く。

・カッパの思考:落ちているアイテムを優先するが、隣接だけは先に調べる。

シレンを視認しても、シレンを無視してアイテムを拾いに行く。シレンと隣接すると足を止め、通常攻撃してくる。

 

遠距離攻撃モンスター

・コドモ戦車の思考:特技が範囲外(シレンと軸があっていない)なら歩く。必ずシレンと将棋盤の距離で1マス以上の距離を取るように動く。追い詰められる(シレンと反対方向が移動不能になる)と矢を撃つ。

→軸を合わせてから矢を撃つ。

・オヤジ戦車の思考:特技と移動をランダム(特技率)で選択する。

→軸を合わせなくても大砲を撃つ。

※コドモ戦車の動きは本当に面白いです。複雑に見えますが、シンプルな複数のルールに従って動いています。単純なものを掛け合わせると複雑になる好例です。通路で往復するのも、次の部屋へ向かう意思とシレンから離れたい意思の葛藤で表現されています。

 

杖振りモンスター

・パ王の思考:杖の有効範囲を先に調べ、移動を後にする。

・カンガルーの思考:杖の有効範囲を先に調べ、移動を後にする。

杖振りモンスターの性質①→杖の対象がシレンか敵かの違い。

杖振りモンスターの性質②→特技を身代わりよりも優先することがある。

→たとえタベラレルーを前にしても、杖を振る対象がいれば杖を振る。

 

このようなモンスターの思考をいくつか作っておき、パターン化し、適用しているのではないかと予想しています。

 

1.3.再選択という仮定

いくつかの挙動を説明するために「再選択」という概念を私は仮定しています。

再選択を説明するために、「待機行動」という概念も仮定しています。

 

待機行動と再選択の定義

・待機行動とは、移動処理の時点で移動しないことを決定し、特技・攻撃の対象を予約すること。

・再選択とは、待機行動で選んだ対象が死亡・移動した場合、または自身が状態異常など特別な状態になった場合など、待機行動が実行不能になった時、待機行動の予約をキャンセルし、特技・攻撃・足踏みから行動を再び選択すること。

 

元々、待機行動の存在を先に考えていました。

その理由は、アークの行動を説明するために「足を止めて特技を使うモンスター」について考えていたからです。

敵は移動可能であれば、必ず移動を優先します。
部屋の中をナナメで移動し、シレンと距離を詰めます。
しかし、足を止めて特技を使うモンスターは移動時点で特技の使用を決定しておく必要があります。
なぜなら、移動と特技の使用は同じターンに片方しか選べないからです。たとえ倍速状態であったとしても、回ってきた手番では移動と特技の片方しか選択できません。倍速を表現したければ、1ターンで2回手番が回ってきた処理を行えばよいのです。

スカイドラゴン、アークドラゴン、オヤジ戦車、イッテツ戦車、プチフェニックス、デブータ、ウルロイド、タイガーウッホ、女王グモ、カッパ、カンガルー、ドスコーイ。

このようなモンスターはシレンと軸を合わせないで特技を使用してくるため、意図的に足を止める必要があります。

また、このようなモンスターのなかでも、とくにタイガーウッホやカンガルーは移動後の敵・味方の座標で特技を使いたいはずです。なので、現在でも「特技・攻撃の対象は移動時点で決定され、対象の座標は実行時点で取得する」と考えています。これはギガヘッド・ガマラ問題(ギタンを盗んだガマラがシレンの方向に飛ぶと、モン壺のギガヘッドがシレンを攻撃し、死亡に直結する問題)の説明にもなります。

 

再選択は、もともとは待機行動の救済措置として考えていました。

 

再選択が存在する理由

再選択が存在する理由の1つは、モンスターに変な行動を取らせないためです。

 

・敵が死亡した結果、敵がシレンを援護してしまう現象(再選択が無い場合)

罠はモンスターの移動直後に発動することが知られています。

中腹の井戸やワナ師を想像してください。

いま図のように、シレンー地雷ーマムルーカンガルーと並んでいるとします。

再選択の説明(カンガルー問題)

再選択が無いと、この後何が起きるでしょうか?

〈1〉マムルがシレンに向かって歩く。

〈2〉カンガルーがマムルに向かって杖を振りたいので、待機行動(特技)する。

〈3〉対象をマムルとする。

〈4〉マムルが地雷を踏み、マムルが死亡する。

〈5〉カンガルーは再選択しない。

〈6〉カンガルーはマムルがいた方向に杖を振る。

〈7〉カンガルーが振った杖の魔法弾がシレンに当たる。

 

これを意図的に利用したいと考えるプレイヤーもいそうですが、私が考える最悪の事態は次の流れです。

 

〈1〉マムルがシレンに向かって歩く。

〈2〉カンガルーがマムルに向かって杖を振りたいので、待機行動(特技)する。

〈3〉対象をマムルとする。

〈4〉マムルが地雷を踏み、マムルが死亡する。

〈5〉カンガルーは再選択しない。

〈6〉カンガルーはマムルがいた方向に杖を振る。

〈7〉しかし、マムルはすでに死亡したため、マムルの座標を取得できない。

〈8〉座標を絶対取得できないエラーが発生し、ゲーム進行が止まる。終わる。

 

このようなバグを回避できるなら、再選択が必要と考えます。

 

他にも、「パオパ王の鈍足の杖で麻痺状態になったにもかかわらず、平然と特技・攻撃を実行するモンスター」などが考えられます。

 

再選択の性質1:再選択は対象を変えるか?

再選択が存在すると仮定していますが、再選択では対象を変更するかについて次が考えられますが、どれなのかは不明です。

対象変更予想①再選択しても対象を変えない。行動のみを変える。

対象変更予想②再選択すると対象もリセットする。ランダムで再び同じ対象を選択することもあれば、異なる対象を選択することもある。行動も変える。

対象変更予想③再選択の時点で、対象が生存している場合は対象を変えない。対象が死亡した場合は対象を変える。行動も変える。

対象変更予想④再選択は存在しない。

私は②か③の可能性が高いと考えています。③のほうが合理的に感じていますが、足踏みをするケースが増えてしまいます。敵の足踏みを減らすためには②くらい再選択を許容されていたほうがいいのかなと。

 

再選択の性質2:移動処理完了後の状況で判断するか?

再選択では、移動処理完了後の状況で判断していると思います。

移動処理前の状況を前提として再選択するならば、それは再選択する意味が無くなってしまうからです。

 

再選択の性質3:再選択で移動するか?

再選択で選択できる行動は、特技・攻撃・足踏みの3つだと考えています。

その他の選択肢・・・例えば移動は考えていません。再選択の段階で移動の選択肢を与えない理由を私は分かっていません。おそらく「一度行った処理を戻さない」ほうが開発もプレイヤーも混乱が少ないからだと思います。

もし特技・攻撃が不可能になったモンスターに移動が与えられていたら、他のモンスターが特技・攻撃後に移動する等速モンスターと遭遇するはずです。

さらに起きてほしくないこととして、何らかのバグや見落としの結果、倍速でないのに1ターンで2マス歩かせてしまったり、特技・攻撃後に1マス歩いたりするかもしれません。

そのような意味で、足踏みはターンの浪費ですが、ゲームプログラムやゲーム進行を滞りなく進め、ゲーム全体の安全性向上に必要な処理であることが予想されます。

 

2.例の場面の説明

2.1.確定事項

例の場面では以下が確定しています。
①アークはキララを敵視している
②アークはシレンと隣接していない(角の影響)
③敵が先に移動し、味方が後に移動する
④アークは隣接しても炎を吐くことがある

2.2.説明のための前提

例の現象を説明するためには以下の前提が必要です。
前提〔1〕敵や味方は行動の前に状況を確認する(つるはしで掘った直後でも敵は進路変更してシレンに隣接する=つるはしで掘った後の状況を把握できている)

前提〔2〕敵は行動を決定する前に対象を決定する。

前提〔3〕隣接敵優先の原則により、隣接していないシレンよりも隣接・敵対状態のキララを優先する(検証しました)

前提〔4〕移動処理で攻撃・特技を選択しても、攻撃・特技が有効範囲から外れれば再選択する(ここ自信ないです)

前提〔5〕攻撃・特技の座標取得は攻撃・特技の対象を決定した時点ではなく、攻撃・特技を使用した時点で行う(ギガヘッド・ガマラ問題:攻撃の対象を決定した時点で座標が取得されるなら、ガマラがどこに飛んだとしても、飛ぶ前の場所を攻撃するはず)

 

2.3.キララに炎が飛んだパターン(例の場面のパターン)

当初、ランダムでシレンにも炎が飛ぶ想定をしていたのでもっと多くのパターンを想定していました。検証の結果、シレンには飛ばないことが分かりました。また、結果としてキララに炎が飛ぶとしても検証により否定されたパターンもあります。

ここでは検証結果と合致し、キララに飛ぶパターンを載せます。また、先に掲載している(K1に近い)ほど例の場面で起きた可能性が高いと考えています。

 

K1.キララに炎が飛ぶパターン1:アークは特技を選択した

〈1〉敵のターン開始前、アークはキララと隣接し、シレンとは隣接していない。(角の影響)

〈2〉隣接敵優先の原則により、キララを対象とする。

〈3〉アークが待機行動(特技)を選択する。
〈4〉アークが特技を予約して待機する。(他の敵・味方の移動を待つ)

〈5〉キララが移動する。

〈6〉キララが特技の有効範囲にいるので再選択しない。
〈7〉特技の実行。アークの炎は対象(キララ)に飛ぶ。

→例の場面で起きたことの本命です。最も筋が通っていると感じています。

 

K2.キララに炎が飛ぶパターン2:アークは攻撃を選択した(再選択でも対象を変えない)

〈1〉敵のターン開始前、アークはキララと隣接し、シレンとは隣接していない。(角の影響)

〈2〉隣接敵優先の原則により、キララを対象とする。

〈3〉アークが待機行動(攻撃)を選択する。
〈4〉アークが攻撃を予約して待機する。

〈5〉キララが移動する。

〈6〉対象(キララ)が攻撃の有効範囲外にいるので再選択した。

〈7〉再選択では対象(キララ)を変えない。

〈8〉アークが行動の再選択(攻撃・特技・足踏み)をした結果、攻撃可能な特技に決定した。

〈9〉特技の実行。アークの炎は対象(キララ)に飛ぶ。

→例の場面ならこのパターンの可能性も現実的にありそうです。ただし、再選択の性質として「対象を変えない」ことが確定している必要があります。

 

2.4.存在してはいけないパターン、シレンに炎が飛んだパターン

当初、ランダムでシレンにも炎が飛ぶ想定をしていたのでもっと多くのパターンを想定していました。検証の結果、シレンには飛ばないことが分かりました。また、結果としてキララに炎が飛ぶとしても検証により否定されたパターンもあります。

ここでは否定されたパターンとシレンに炎が飛んだパターンを載せます。

なお、「敵が対象を決定する前に行動を決定する」という可能性も考えるとパターンは増えます。が、ここでは前提〔2〕「敵は行動を決定する前に対象を決定する」に基づいて考え、「行動決定が先」のパターンをここには記載しません。

 

X1.キララに炎が飛ぶパターン:アークは攻撃を選択した(再選択で対象を変えたが、再びキララを対象にした)

〈1〉敵のターン開始前、アークはキララと隣接し、シレンとは隣接していない。(角の影響)

〈2〉隣接敵優先の原則により、キララを対象とする。

〈3〉アークが待機行動(攻撃)を選択する。
〈4〉アークが攻撃を予約して待機する。

〈5〉キララが移動する。

〈6〉対象(キララ)が攻撃の有効範囲外にいるので再選択した。

〈7〉再選択では対象(キララ)を変える。

〈8〉対象の再選択をした結果、再びキララを対象とする。

 〈8-1〉隣接敵優先の原則により、キララを対象とする。

 〈8-2〉移動を選択し、移動の障害物(キララ)を対象とする。

 〈8-3〉特技を選択し、ランダムに選んだ結果、キララを対象とする。

 〈8-4〉その他(攻撃・足踏み)を選択し、キララを対象とする。

〈9〉アークが行動の再選択(攻撃・特技・足踏み)を選択した結果、攻撃可能な特技に決定した。

〈10〉特技の実行。アークの炎は対象(キララ)に飛ぶ。

→パターンBの分岐。この説明であれば、〈8〉でキララを選ぶ合理的な理由がないため、炎はシレンを攻撃するはずです。

〈8-1〉移動処理完了後の状況を反映しなければ、再選択の意味がありません。

〈8-2〉移動処理完了後に移動はできないと考えています。また、仮に移動できたとしてもキララを障害物と認識するということは、移動処理の前の状況で認識していることとなります。再選択の意味が無くなってしまいます。

〈8-3〉隣接しなくなるので、特技を選択すると、視認したシレンが優先されるはずです。

〈8-4〉攻撃を選択すると、再び再選択することとなり、必要以上にループしてしまいます。足踏みであれば、対象を選択しません。

 

X2.キララに炎が飛ぶパターン:アークは移動を選択した(進路上の邪魔な土偶を攻撃する行動)

〈1〉敵のターン開始前、アークはキララと隣接し、シレンとは隣接していない。(角の影響)

〈2〉アークが移動を選択。
〈3〉障害物(キララ)があるのでアークは動けない。
〈4〉アークが待機行動を選択。障害物(キララ)を対象とする。
〈5〉キララが移動する。
〈6〉アークはキララ・シレンともに隣接していない。(角の影響)
〈7〉アークが待機行動(攻撃・特技・足踏み)から選択した結果、攻撃可能な特技に決定。
〈8〉特技の実行。アークの炎は対象(障害物キララ)に飛ぶ。

→〈2〉の移動で、アークがすでにキララを敵視していることと矛盾します。当然、〈3〉のようにキララを障害物として認識できません。

 

S1.シレンに炎が飛ぶパターン:アークは攻撃を選択した(再選択で対象を変え、シレンを対象にした)

〈1〉敵のターン開始前、アークはキララと隣接し、シレンとは隣接していない。(角の影響)

〈2〉隣接敵優先の原則により、キララを対象とする。

〈3〉アークが待機行動(攻撃)を選択する。
〈4〉アークが攻撃を予約して待機する。

〈5〉キララが移動する。

〈6〉対象(キララ)が攻撃の有効範囲外にいるので再選択した。

〈7〉再選択では対象(キララ)を変える。

〈8〉対象の再選択をした結果、視認しているシレンを対象とする。

〈9〉アークが行動の再選択(攻撃・特技・足踏み)を選択した結果、攻撃可能な特技に決定した。

〈10〉特技の実行。アークの炎は対象(シレン)に飛ぶ。

→パターンX1の分岐。この説明であれば、移動処理完了後の状況も反映されており、隣接の次に優先される視認中のシレンを対象に選び、炎はシレンを攻撃することにも納得できます。

このパターンS1を根拠にして、「例の場面ではランダムでシレンに飛んでいたかもしれん」と言うには十分だと思います。

一方で、パターンK2とパターンS1は片方しか存在できません。すなわち、

・パターンK2は、再選択で対象を変更しない場合

・パターンS1は、再選択で対象を変更する場合

と、言い換えることができます。私が例の場面の説明でパターンK1を本命にした理由の一つは「再選択で対象を変更するか?」という問題が未解決だからです。パターンK1だけは確実に存在しています。

もっと突っ込んだことを言えば、次のようになります。

・パターンK2(再選択で対象を変更しない)で確定すれば、例の場面の炎は100%キララに飛びます。

・パターンS1(再選択で対象を変更する)で確定すれば、例の場面の炎はランダムでシレンにも飛びます。

なので、検証しようとしたのですが・・・未だに良い検証方法を設定できていません・・・。ごめんなさい。

 

2.5.要するに何を考えているか?

要するに、例の場面については次の図のようなことを考えています。

※検証結果も反映されています。

例の場面で起きたこと・起きたかもしれなかったこと

 

3.検証

3.1.検証の前に:私の不安

例の場面を見て、私は「何かがおかしい」と疑問を持ちました。

何かがすっきりしませんし、私のこれまでのシレン2に対する認識に何か危うさを感じました。

具体的な疑問は次の通りです。

疑問①:アークの炎はフロア全体。いつもなら仲間やモン壺を無視してシレンに飛んでくるはず。キララが移動した結果、誰とも隣接しなくなったのに、なぜシレンには飛ばないのだろう?

疑問②:例の場面。アークにのりうつった時、炎は最も近い敵を焼くはず。だから、キララが移動したことによって、シレンとキララは等距離になった。のりうつった時と同じ挙動なら、等距離の敵からランダムに選択したかもしれない。でも、それはいつもの挙動と矛盾しない?

疑問③:アークの炎がキララに飛んだということは、アークはキララを移動前のマスにいると認識している?

 

このような疑問から、私はアークの炎がどのような性質を持っているか知らないことを自覚しました。もっと言えば、遠距離攻撃の性質について何も知りません。そこで、次のような問題を立て、検証しました。

 

問題1:アークの炎はいつでも必ずシレンを優先するか?

部分問題1.1:シレン以外と戦闘中であるアークが、炎でシレンを攻撃することはあるか?(シレン優先と隣接敵優先の優先順位)

 

問題2:遠距離攻撃を持つモンスターはアークの炎と同じ優先順位を持つか?

部分問題2.1:ドラゴンやスカイドラゴンの場合。とくにドラゴンの特技条件は、スカイ・アークと異なり軸合わせが必要なため。

部分問題2.2:馬武者の場合。馬武者の特技条件は、ドラゴンと同じ視認&軸合わせである。

部分問題2.3:デブータの場合。デブータの特技条件は、特技範囲である。視認・軸合わせともに不要である。

部分問題2.4:パ王の場合。パ王の特技条件は、ドラゴン・馬武者と同じ視認&軸合わせである。しかし、キララと戦闘中である角のパ王種から杖を振られた記憶があるので。

 

問題3:隣接敵優先の原則が存在するならば、なぜ隣接していないシレンに遠距離攻撃することがあるのか?隣接敵優先の原則が解除される条件は何か?

部分問題3.1:キララとシレンが歩いて入れ替わる場合

部分問題3.2:キララとシレンが場所替えで入れ替わる場合

部分問題3.3:キララが(自分の意思で)逃げる場合

 

3.2.検証方法

検証1:アークのシレン優先と隣接敵優先の優先順位の確認

検証方法1:

シレンとアークは隣接していない。(角の影響)

②キララとアークは隣接している。

③キララとアークが戦い続ける。(聖域で隔離し、両者を回復し続ける)

問題:アークの炎がシレンに飛ぶことがあるか(特技100回試行)

 

仮説1.1:アークの炎がランダムでシレンに飛ぶ

仮説1.2:アークの炎が絶対シレンに飛ばない

仮説1.3:アークの炎が絶対キララに飛ばない

 

仮説1.1なら・・・アークの特技は、敵対関係の中からランダムで対象を選択する。離れているシレンと隣接している敵対キララは同程度の優先順位である。

仮説1.2なら・・・アークの特技は、複数の敵対関係の中から隣接が最優先される。

仮説1.3なら・・・アークの特技は、シレンを優先する。例の場面でキララに炎を吐いた理由は、シレンに近づこうとしたためである。アークが認識する移動可能マスはキララ移動前の状況であり、障害物(キララ)を攻撃しようとした結果である。特技の使用時点に至っても、キララが移動する前の状況を前提としている。

 

検証2:他のモンスターのシレン優先と隣接敵優先の優先順位の確認

やることは検証1と同じで、検証するモンスターだけ変えます。

検証方法2:

シレンと敵は隣接していない。(角の影響)

②キララと敵は隣接している。

③キララと敵が戦い続ける。(聖域で隔離し、両者を回復し続ける)

問題:敵の遠距離攻撃がシレンに飛ぶことがあるか(特技100回試行)

部分問題2.1:ドラゴンやスカイドラゴンの場合。とくにドラゴンの特技条件は、スカイ・アークと異なり軸合わせが必要なため。

部分問題2.2:馬武者の場合。馬武者の特技条件は、ドラゴンと同じ視認&軸合わせである。

部分問題2.3:デブータの場合。デブータの特技条件は、特技範囲である。視認・軸合わせともに不要である。

部分問題2.4:パ王の場合。パ王の特技条件は、ドラゴン・馬武者と同じ視認&軸合わせである。しかし、キララと戦闘中である角のパ王種から杖を振られた記憶があるので。

 

検証3:隣接敵優先の原則の性質1

検証方法3:

①キララに敵を攻撃させ、敵対させる。

②キララとシレンが「歩いて」入替る。

③入れ替わった結果、片方は隣接し、もう片方は角で隣接させない。

シレンが敵の前に出た場合と、キララが敵の前に出た場合で記録する。

問題:敵はどちらを狙うか?また、特技をどの程度使うか?(攻撃・特技100回試行)

 

検証4:隣接敵優先の原則の性質2(場所替え集めできてないので、できた分だけ)

検証方法4:

①キララに敵を攻撃させ、敵対させる。

②キララとシレンが「場所替えの杖で」入替る。

③入れ替わった結果、片方は隣接し、もう片方は角で隣接させない。

シレンが敵の前に出た場合と、キララが敵の前に出た場合で記録する。

問題:敵はどちらを狙うか?また、特技をどの程度使うか?(攻撃・特技100回試行)

 

検証5:例の場面の再現(※すぐにはできないので検証方法だけ記載。後で検証するかも?)

検証方法5:

①キララに敵を攻撃させ、敵対させる。

シレンは敵と隣接しない。(角の影響)

③敵の攻撃をいい感じに下げる。

④キララが逃げ状態になるまでHPを減らしてもらう。(その間、敵のHPを回復)

⑤キララが逃げた瞬間、敵の行動を記録する。

問題:敵は歩くか?攻撃するならどちらを狙うか?(移動・攻撃・特技100回試行)

 

検証方法への疑問

・なんで100回なの?

→大変だから。1000回でも10000回でもいいですけど、やればやるだけ精度は上がるけれど・・・大変だから。

 

3.3.検証結果と考察

※検証動画は省略します。

私の見間違いや入力ミスが無ければ、検証結果は次のようになりました。

検証結果1:アークのシレン優先と隣接敵優先の優先順位の確認

次の動画のような形で検証しました。

youtu.be

 

キララとアークに死闘をしてもらい、

アークには100回炎を吐いてもらいました。

その結果、炎は100回中100回キララに当たり、

シレンに当たることはありませんでした。

 

よって、仮説1.2が支持され、「複数の敵対関係の中から隣接が最優先される」というアークの炎の性質が明らかとなりました。

これにより、重要な原則「隣接敵優先の原則」が明らかとなりました。

この原則は「キララの直接攻撃を受けると敵が足を止め、距離を取ることが可能となる」という花婿試験では必須テクニックの理由付けとなります。

 

検証結果2:他のモンスターのシレン優先と隣接敵優先の優先順位の確認

次のモンスターについて検証しました。結果は表のとおりとなります。

隣接敵優先か、視認シレン優先か(特技100回で試行した結果)

パ王種だけ特殊ケースだと考えたほうが良さそうです。基本的には隣接敵を優先します。

私は当初、軸合わせが不要なアークドラゴンと軸合わせが必要なドラゴンは異なる挙動をすると考えていましたが、同じ挙動だったので「同種だからかな?」と思いました。

しかし、乱れ馬王やデブートンも調べ、軸合わせの有無は関係ないことが分かりました。

検証結果3・4:隣接敵優先の原則(キララと入替った場合)

ここでは、例の場面と同じアークドラゴン、馬武者、それと挙動がおかしかったパ王種で調べています。

次の動画のような形で検証しました。動画は入口で試したものですが、通路(検証結果1と同様の地形)でも同様のことをしています。(休憩を挟みながらやったので・・・通路の開始時点の動画がいずれも切りが良くなかったので・・・)

youtu.be

やることはキララを敵対関係にさせて、シレンと入替ることです。

そして、アークドラゴンはどちらを攻撃するか?どの程度炎を吐くか?を記録します。

アークドラゴン(歩き・通路)

乱れ馬王(歩き・通路)

パ王(歩き・通路)

最も特徴的なのは、シレンが前に出た(敵と隣接した)とき、キララには絶対攻撃しないことです。隣接シレン優先の原則です。

隣接敵優先の原則よりも、隣接シレン優先の原則が優先されます。

花婿試験では重要な原則で、キララがピンチの時は必ずシレンが前に出たほうがクリア率が向上しそうです。

一方、キララが前に出たとき、シレンにも特技で攻撃することがあります。
今回の検証で、キララが前に出たときの特技使用率(シレン・キララに特技を使用した率)は次のようになります。

・アークドラゴン:(8+14)÷100=22÷100=特技使用率22%

・乱れ馬王:(20+65)÷100=85÷100=特技使用率85%

・パ王:(20+33)÷100=53÷100=特技使用率53%

 

ここでそれぞれの特技率を攻略Wikiで確認しました。
・アークドラゴン:特技率12%

・乱れ馬王:特技率60%

・パ王:特技率30%

 

・・・明らかに差がありますね。

攻略Wikiが嘘をついているのか?私が嘘をついているのか?

・・・いいえ。違います。ここで私は新たな仮説を立てました。

事後確率の影響です。(たぶん攻略Wikiシレンだけで検証したデータですね)

 

事後確率の存在

すなわち、次のようなことが起きていたと思います。

新仮説:キララと歩いて入替ると、敵対状態が解除される

敵対状態が解除された結果、敵モンスターは次の行動を取ることが予想されます。

行動予想①:特技の使用に失敗し、歩こうとしたが、障害物(キララ)があり、障害物を破壊しようとした。その結果、攻撃を選び、キララを通常攻撃した。

行動予想②:特技の使用に失敗し、歩こうとしたが、障害物(キララ)があり、障害物を破壊しようとした。その結果、特技を選び、キララに特技を使用した。

行動予想③:特技の使用に成功した。視認シレン優先の原則により、シレンに特技を使用した。

 

この新仮説と予想行動が正しければ、事後確率が発生するはずです。アークドラゴンで考えてみましょう。

・アークドラゴンの場合(歩き入替り・通路)

特技確率=特技成功率=12%

移動確率=特技失敗率=100%-12%=88%

攻撃確率=特技失敗率=100%-12%=88%

事後確率①キララを叩く:77.4%=移動(88%)×再選択攻撃(88%)

事後確率②キララを焼く:10.6%=移動(88%)×再選択特技(12%)

事後確率③シレンを焼く:12%=特技(12%)×再選択しない(100%)

 

これら事後確率は、今回の検証で得た数字に近いような感じがしませんか?

私はなんとなく今回の検証で得た数字に近い感覚があります。

 

あと、数学に鋭い人は「移動処理の特技失敗率=特技以外の行動全部」と考えると思います。

ここで、攻撃確率をXと置きましょう。すると、事後確率は次のようになります。

事後確率①キララを叩く(攻撃):X=攻撃(X)×再選択しない(100%)

事後確率①キララを叩く(再選択):77.4%-0.88X=移動(88%ーX)×再選択攻撃(88%)

→結果としてキララを叩く確率:77.4%-0.12X=X+(77.4%-0.88X)

事後確率②キララを焼く:10.6%ー0.12X=移動(88%ーX)×再選択特技(12%)

事後確率③シレンを焼く:12%=特技(12%)×再選択しない(100%)

これにより、キララを叩く確率が0.12X上がり、キララを焼く確率が0.12X下がります。仮にX=50%だとしたら、0.12×50%=6%ほどの差が出るはずです。

私が「移動処理の特技失敗率=移動確率」としたのは、明確な理由があります。移動と攻撃は論理的に決定されるものであって、確率で決定されるものではないからです。つまり「同じ手番で特技と移動は片方しか選べない」のと同様に、「同じ手番で攻撃と移動は片方しか選べない」のです。

実際問題として、攻撃か移動は対象との距離によって論理的に決定できます。隣接していなければ移動しますし、隣接していれば攻撃します。

もし、キララを対象とする攻撃が選択可能であるならば、隣接敵優先の原則が働いている証拠となり、シレンに炎が飛ぶ確率は0%でなければいけないのです。しかし、実際はシレンにも炎が飛んでいます。これは隣接していない証拠です。

よって、「移動処理の特技失敗率=特技以外の行動全部」は否定され、「移動処理の特技失敗率=移動確率」が採用されています。

 

図に表してみました。

アークの行動処理(歩き入替り)

以上のような事後確率と近い値になることは、再選択の存在を示す証拠の一つとなりました。

また、再選択でも特技率が使用されている説明にもなります。

 

再選択では対象を変えるか?対象を変えるなら、その条件は何か?(未検証)

しかし、再選択では対象を変えるかどうかはいまだ不明です。

だいぶ話がさかのぼりますが、パターンK2とパターンS1は両立できない話をしました。(2.4の最後のほう)

・パターンK2(再選択で対象を変更しない)で確定すれば、例の場面の炎は100%キララに飛びます。

・パターンS1(再選択で対象を変更する)で確定すれば、例の場面の炎はランダムでシレンにも飛びます。

これに対する回答として、パターンS1を推したいところですが、再選択の対象変更の予想が確定していません。(再選択の性質1:再選択は対象を変えるか?)

対象変更予想①再選択しても対象を変えない。行動のみを変える。

対象変更予想②再選択すると対象もリセットする。ランダムで再び同じ対象を選択することもあれば、異なる対象を選択することもある。行動も変える。

対象変更予想③再選択の時点で、対象が生存している場合は対象を変えない。対象が死亡した場合は対象を変える。行動も変える。

対象変更予想④再選択は存在しない。

この検証方法では、移動の障害物としてキララを対象としていると私は考えています。そのため、再選択によって対象を変更したとは言えません。今後の課題です。

 

また、通路内で入替った場合と部屋の入口で入替った場合は同じだと考えていますが、念のため両方の場合で検証しました。部屋の入口の場合、敵だけが通路に出ており、シレンとキララは部屋の中にいる状態です。

アークドラゴン(歩き・入口)

乱れ馬王(歩き・入口)

 

以上のデータを予想される事後確率と実際の挙動を比較してまとめたのが、次の表です。私は自説がある程度正しいと考えていますが、あなたが何を思うかは自由です。

事後確率と実際の挙動

 

最後に、回数は少ないですが持っていた場所替えの杖でも試してみました。ちゃんと100回で揃えたいところですが・・・力尽きました・・・。

乱れ馬王(場所杖・入口)

回数が少ないので自信はありませんが、次のことを予想します。

・場所替えの杖で場所を入れ替えても、シレンが前に出たときにキララは攻撃されない。(隣接シレン優先の原則)

・キララが前に出ても、シレンが攻撃されることがある。(隣接敵優先の原則が働いていない)よって、場所替えの杖で場所を入れ替えても、キララとの敵対状態が解除される。

 

・・・こんなもんでしょうか。とりあえず。

 

3.4.結論

例の場面には2つの可能性があります。

可能性1.再選択で対象を変更しない場合、アークの炎は100%キララに飛びます。

可能性2.再選択で対象を変更する場合、アークの炎はランダムでシレンにも飛びます。キララに飛ぶ確率は12%、シレンに飛ぶ確率は10.6%です。(だいたい半々です。残りの確率は足踏みと予想します)

いずれの場合であっても、例の場面でキララに炎が飛んだのは、隣接敵優先の原則により、アークが最初からキララを狙って特技を選択した可能性を私は推したいです。

 

私は当初、炎はランダムに行くだろうと単純に予想していましたが、このような結果になるとは思いもしませんでした。可能性1が採用されているならば、炎が100%キララに飛ぶという衝撃的な展開になります。可能性2のほうが私の素朴な感覚と一致します。

 

もう一度、おさらいしてみましょう。

最有力パターンK1.キララに炎が飛ぶ:アークは特技を選択した

〈1〉敵のターン開始前、アークはキララと隣接し、シレンとは隣接していない。(角の影響)

〈2〉隣接敵優先の原則により、キララを対象とする。

〈3〉アークが待機行動(特技)を選択する。
〈4〉アークが特技を予約して待機する。(他の敵・味方の移動を待つ)

〈5〉キララが移動する。

〈6〉キララが特技の有効範囲にいるので再選択しない。
〈7〉特技の実行。アークの炎は対象(キララ)に飛ぶ。

 

例の場面で起きたこと・起きたかもしれなかったこと

あの場面では、パターンK1が起きた可能性が高い。ただし、パターンK1以外の可能性も残っている。

そのように私は結論づけました。

 

なお、同じ場面(逃げキララ・入口モンスター)でアーク以外のモンスターだったら、次のような結果になると予想します。

・マムルやしおいやんのようなモンスター

→歩く機会を失い、しかも特技・攻撃の有効範囲から外れるため、足踏みをします。

・遠距離攻撃モンスター

→可能性1であれば100%キララに特技を使用します。可能性2であれば見かけ上はランダムに選択し、特技使用か足踏みをします。

 

この話は以上で一区切りとさせていただきます。

ここまで書いておいて、全部私の憶測に過ぎないですが・・・。

シレン2についてはまだまだ把握できていないことがたくさんあります・・・。

ここに書いたことも今後変わっていくのかなと・・・。

 

4.おまけ1:カンガルーが歩かない問題

私もなぜかカンガルーをおびき寄せることができず、キララが殴られる現象に遭遇したので・・・

www.youtube.com

 

歩かないカンガルーに共通している問題は、キララがカンガルーを視認しているにもかかわらず、カンガルーが歩かず、キララが歩き、カンガルーが攻撃していることです。
これは「敵が先に移動し、味方が後に移動する」という原則に反しています。

4.1.カンガルーが歩かない過程

ここでカンガルーが歩かず、キララが移動し、カンガルーが攻撃した理由を次のように考えています。
【1】カンガルーは移動時に特技を決定した。
【2】カンガルーは待機する。
【3】キララが移動する。
【4】特技が有効範囲から外れたので、再選択する。
【5】障害物(キララ)があるので、攻撃を選択する。

動画の1つ目により、通路の中で発生することが確定しました。
動画の2つ目により、部屋の中でも発生することが確定しました。
とくに動画の3つ目ですが、カンガルーの後方には透明になった敵がいることが確定している場面です。
すでに透明状態である敵に、再び透明の杖を振らないために特技をキャンセルし、再選択の結果として攻撃してきたように感じました。

4.2.カンガルー特有の問題?

ただ、この歩かない問題を私はカンガルーでしか見たことがないので、カンガルー特有の問題かもしれません。
現在の私の認識では、アークを含めた敵モンスターは(特技を使用しなければ)仲間が歩く前にちゃんと歩いてくれます。

 

なんとなくですが、カンガルー特有の問題だとすれば、特技の有効範囲に壁の影響が無視されがちなのが原因ではないかなと。
カンガルーはシレンを視認した時のみ杖を振りますが、シレンからは見えない敵(例えば隣の部屋の敵)にも振ることがあります。


シレンからは見えない敵に杖を振る」ことを表現するために、
シレンを視認する
②移動時に特技判定する
③(壁を考えないで)8方向の射線上にカンガルーの味方(シレンの敵)がいるかどうか確認する
④壁やシレンがあるかどうかを確認する
⑤杖を振る候補が複数いたら1体選ぶ
⑥振るべき対象が射線上にいない場合・壁やシレンがある場合は再選択(特技・攻撃・足踏み)する
という段階を踏んでいると思います。
③と④を本来は逆の④→③にしたいのですが、計算コストを考えると③→④のほうが簡単だろうという判断からきていると思います。射線上に杖を振る対象がいなければ、壁などの地形を考える手間を省けますので。一方で、③→④を採用した弊害で、壁の向こう側の敵が見えてしまっている問題が発生してしまうのです。壁の向こう側でも見えているから足を止め、壁があるのに杖を振りたくなってしまうのかなと。

 

もう一つは、対象決定のタイミングです。

カンガルーの行動から推察するに、カンガルーやタイガーウッホのようなモンスターは、敵・味方の移動後のタイミングで対象を決定している可能性があります。

敵・味方の移動後の位置関係を正確に把握する必要があるためです。

そのため、例外的なモンスターとして、移動処理時点では行動決定のみを行い、対象決定を保留している可能性があります。

 

5.おまけ2:再選択は【必ず】サイコロを振るか?

最初に公開以来、多くの方に見ていただいてうれしいです。

そして、やっぱりと言いますか、シレンというゲームは確率のゲームでもありますから、数学的・確率的センスを持っている方がいらっしゃるなあと。

公開後にAgさんから次のご指摘をいただきました。

最初にご指摘をいただいた時に「あ!ミスった!」と思いました。結論を言えば、ご指摘の通りです。私も検証はできていないのですが、「K2にも特技率が使用され、事後確率が発生している可能性」はあります。正確な検証の際はその可能性も含めてやる必要があります。

私は当初、シレン2は事後確率がないゲームとして考えていました。

事後確率が絡むと話が変わるからです。バランス調整とプログラムの両方が大変になってしまうことを予想したからです。とくにバランス調整は悩みの種になりそうです。

そして、冒頭で述べた「自分用のメモという意味合いが強く」につながるのですが、私がこの記事をメモとして書いた名残りが「再選択で特技使用率(事後確率)を考えないK2」ですね。大事な部分であり、「事後確率が存在する場合」と「事後確率が存在しない場合」の両方の考え方を残しておきたいという意図が含まれています。

後だしジャンケンになってしまって申し訳ないのですが、せっかくなので、事後確率が存在する検証前までの考え方も少しだけ記載しておきます。

また、話がややこしくなってきているので、もう少し整理した新しい記事も書く予定です。おまけ2を追記しているうちに、私の願望と実際の事実は切り離さないといけないと思いました。私の憶測をもとに検証や議論をされる方がいるかはわかりませんが、新しい記事では「逃げキララに出口アークの炎が当たる現象」について既知の部分と未知の部分を整理し、検証や議論のしやすさを中心にまとめる予定です。

この記事には間違いも含まれていますが、私にとっては意味がある間違いなので残しておきます。

 

※「逃げキララに出口アークの炎が当たる現象」の最終結論について、記事を出しました。

tamasazare.hatenablog.com

 

5.1.事後確率があるゲームのバランス調整:プログラム上の確率か?見かけ上の確率か?

先に言いますが、事後確率があるゲームのバランス調整は難しいです。

アークの特技使用率は12%ですが、再選択(事後確率)を前提すると以下のパターンが考えられます。

パターンA:特技を使用する(12%)×再選択でも特技を使用する(12%)=特技を使用する(1.44%)
パターンB:特技を使用する(12%)×再選択では特技を使用しない(88%)=特技を使用しない(10.56%)
パターンC:特技を使用しない(88%)×再選択では特技を使用する(12%)=特技を使用する(10.56%)

パターンD:特技を使用しない(88%)×再選択でも特技を使用しない(88%)=特技を使用しない(77.44%)

※特技を使用しない=移動・攻撃・足踏みをする

・見かけ上特技を使用する確率:パターンA+パターンC=1.44%+10.56%=12%

・見かけ上特技を使用しない確率:パターンB+パターンD=10.56%+77.44%=88%

これ特技率と何も変わってないじゃん!

・・・と思うかもしれませんが、ここからが大変です。とくにシレン2のように、モンスターによって行動が違うことも加味され始めると本当に大変です・・・。確率だけでなく、論理の話も加味しないといけないのです・・・。

 

例えば、例の場面。(わんたんさんが遭遇した逃げキララと出口アークがいる場面)

キララを対象とし、最初の特技率の判定で成功すると、再選択は存在しません。

つまり、最初の段階でアークがキララに炎を吐く意思を決めたら、他に邪魔されることなく、無事キララに炎が当たるのです。

そして、パターンAとパターンBは一つにまとめられ、パターンAとパターンBが個別に存在することはほとんどありません。

例外としてパターンAとパターンBが個別に存在するためには・・・例の場面があかずの間22Fだったので、ドスコーイがレベルアップしてハッキョーイになり、まさに例の場面と同じターンに特技を使い、視界外で誰かが大洪水の罠を踏む・・・などが考えられますが、それはいったん考えないこととします。

パターンA+B:特技を使用する(12%)×再選択が存在しない(ほぼ100%)=特技を使用する(12%)
パターンC:特技を使用しない(88%)×再選択では特技を使用する(12%)=特技を使用する(10.56%)

パターンD:特技を使用しない(88%)×再選択でも特技を使用しない(88%)=特技を使用しない(77.44%)

・見かけ上特技を使用する確率:パターンA+B+パターンC=12%+10.56%=22.56%

・見かけ上特技を使用しない確率:パターンD=77.44%

論理と再選択(事後確率)の両方の影響を受けて、本来の特技使用率と見かけ上の特技使用率に10.56%の差が生まれます。

それが今回の「事後確率で特技使用率が高くなるという話」になるわけです。

例の場面ではパターンAとパターンBが一つにまとめられました結果ですが、パターンCとパターンDがまとめられるケースも存在しそうです。このようなケースが至るところに存在することが想像され、そのすべてを把握することは不可能です。

 

こういうことを考え始めると、やっぱり事後確率を排除したくなる。

事後確率は意図しない挙動や結果を生み出します。

私が制作者なら、「いかなる状況であっても、見かけ上の確率を狙った値にしたい」と思うわけです。すると、「事後確率を回避するには?」という思い込みが発生します。(これがよくなかった)

 

バランス調整をする人間は、次の片方しか選べません。

バランス調整1.プログラム上の特技使用率を優先する。プレイヤーの見かけ上の確率が変動するのはしょうがない。受け入れてもらおう。

バランス調整2.プレイヤーの見かけ上の特技使用率を狙った値にする。ゲームデザインやプログラムをがんばるぞ!

 

プレイヤーの見かけ上の確率はそのままゲームの体感や手触りになります。バランス調整1のように見かけ上の確率を放置することはできません。バランス調整2のほうがゲーム制作者としては真摯な対応です。

 

見かけ上の特技使用率を変更するには、次の方法があります。

①プログラム上の特技使用率の確率を変更する

②論理を変える

③事後確率となる場合を極端に減らす

 

見かけ上の特技使用率を変更する方法①:プログラム上の特技使用率の確率を変更する

ここでいきなりですが、中学数学の時間です。

例の場面で見かけ上の特技使用率を12%に変更することを考えてみます。

・例の場面の現状(プログラム上の特技使用率12%)

パターンA+B:特技を使用する(12%)×再選択が存在しない(ほぼ100%)=特技を使用する(12%)
パターンC:特技を使用しない(88%)×再選択では特技を使用する(12%)=特技を使用する(10.56%)

パターンD:特技を使用しない(88%)×再選択でも特技を使用しない(88%)=特技を使用しない(77.44%)

・見かけ上特技を使用する確率:パターンA+B+パターンC=12%+10.56%=22.56%

・見かけ上特技を使用しない確率:パターンD=77.44%

【目的】見かけ上特技を使用する確率を12%、見かけ上特技を使用しない確率を88%にしたい。

【問題】見かけ上特技を使用する確率を12%にするには、プログラム上の特技率を何%に設定すればよいか。

 

パターンDを中心に考えてみましょう。

プログラム上の特技使用率を xとすると、プログラム上の特技不使用率は 1-xとなります。

 (1-x)^2 = 88 \%

となる xを求めれば、見かけ上特技を使用する確率が12%、見かけ上の特技を使用しない確率が88%になるわけです。

・左辺の2乗の部分を分配法則で展開して

 x^{2} - 2x +1 = 0.88

・式を変形して

 x^{2} - 2x +0.12 = 0

二次方程式の解の公式

 x=\dfrac{-b \pm \sqrt {b^{2}-4ac}}{2a}

・に当てはめて( a=1, b=-2, c=0.12

 x=\dfrac{-(-2) \pm \sqrt {(-2)^{2}-4 \times 1 \times 0.12}}{2 \times 1}

 x=\dfrac{2 \pm \sqrt {3.52}}{2}

 \sqrt {3.52} \simeq 1.876なので、

 x=\dfrac{2 \pm 1.876}{2} = 1.938,0.062

 xは確率なので、0以上1以下になります。

 x=0.062=6.2 \%

よって、プログラム上の特技使用率を 6.2 \%にすればよい。

なお、特技不使用率は 100 \% - 6.2 \% = 93.8 \%となります。

代入してみましょう。

パターンA+B:特技を使用する(6.2%)×再選択が存在しない(ほぼ100%)=特技を使用する(6.2%)
パターンC:特技を使用しない(93.8%)×再選択では特技を使用する(6.2%)=特技を使用する(5.82%)

パターンD:特技を使用しない(93.8%)×再選択でも特技を使用しない(93.8%)=特技を使用しない(87.98%)

・見かけ上特技を使用する確率:パターンA+B+パターンC=6.2%+5.82%=12.02%

・見かけ上特技を使用しない確率:パターンD=87.98%

・・・もうお気づきだと思いますが、理屈はいいんですよ。理屈は。でも、こんな面倒で直感的でない、しかも無理数 \sqrt {3.52} )が出てくるような事態は避けたいと普通は思います。これを採用しちゃったら、ゲームバランスの調整は・・・できないわけではないかもしれないけれど、私はしたくないです。

あまり望ましい調整方法とは言えません。

 

見かけ上の特技使用率を上げる方法②:論理を変える

論理を変えてバランス調整できることはゲーム制作者の特権です。

この論理を変える方法を採用しているのが現実的な気がします。

私ならこの方法を選びます。
条件分岐(if文)を使うことになりますが、条件分岐の規模は最小限度で収まり、全体に大きな影響を与えないで済みそうです。

・論理を変える方法1:特技使用率を考えない・攻撃>特技>足踏み

もし(再選択した場合){
 必ず攻撃を優先する。
}それでも、もし(攻撃が使用できない場合){
  必ず特技を優先する。
}それでも、もし(特技が使用できない場合)
   必ず足踏みする。

これなら、攻撃>特技>足踏みの順番で100%にすることができ、再選択では確率を使いません。

この方法の最大の利点は、プログラム上の特技使用率とプレイヤーの見かけ上の特技使用率が一致します。調整が楽です。

ただ、一般的には攻撃よりも特技のほうが有効範囲が広いです。

「攻撃ができて、特技ができない場面」はあまりないような気がします。

逆に「特技ができて、攻撃ができない場面」はそこそこありそうな気がします。

そこで「攻撃よりも特技を優先する」という発想が生まれます。

 

・論理を変える方法2:特技使用率を考えない・特技>攻撃>足踏み

もし(再選択した場合){
 必ず特技を優先する。
}それでも、もし(特技が使用できない場合){
  必ず攻撃を優先する。
}それでも、もし(攻撃が使用できない場合)
   必ず足踏みする。

これが私が最初に行きついた考えであり、最初に公表してしまった考え方で、「再選択で特技使用率(事後確率)を考えないK2」の原因となります。

たとえ移動処理時点の特技率に失敗しても、再選択(事後確率)が発生する場面なら必ず特技を使用します。アークであれば、炎の有効範囲はフロア全体なので100%特技を使用する状態になります。実質的に88%の事後確率が存在しています。

事後確率はありますが、この方法ならまだ調整のしやすさがあります。「この場面なら必ずこう動く」と決め打ちできるのはゲーム制作者もプレイヤーも安心できるからです。

また、「せっかく特技を使える状況なら、特技を使ってくれたほうがゲームとしておもしろい」という私の願望と憶測もあったと思います。その結果が「K2:88%」となったわけです。

 

再選択でも特技使用率が反映されると次のようになります。

・論理を変える方法3:特技使用率を考える・特技>攻撃>足踏み

もし(再選択した場合、かつ、特技使用率に成功した場合){
 必ず特技を優先する。
}それでも、もし(特技が使用できない場合){
  必ず攻撃を優先する。
}それでも、もし(攻撃が使用できない場合)
   必ず足踏みする。

これはパターンS1とその分岐のパターンS1'で採用されている方法です。K2でも特技使用率が採用されていれば、対象変更の有無はありますが、フローチャートや確率もパターンS1とおおむね同様となるはずです。

「特技使用率×特技使用率」となる事後確率の可能性が発見されて以来、この方法が本命になると思います。

 

・論理を変える方法4:特技使用率を考える・攻撃>特技>足踏み

もし(再選択した場合、かつ、特技使用率に失敗した場合){
 必ず攻撃を優先する。
}それでも、もし(攻撃が使用できない場合){
  必ず特技を優先する。
}それでも、もし(特技が使用できない場合)
   必ず足踏みする。

論理を変える方法1と2の関係のように、特技と攻撃の優先順位を入れ替える発想もあります。ただし、「成功確率=100%-失敗確率」の関係がありますから、論理を変える方法3と4は実際には同じことをやっています。

 

不安があるとすれば、再選択の選択肢が「特技・攻撃・足踏み」に加えて「移動」があるかもしれないことと、理論上では足踏み率が存在している可能性があることです。現実的な問題として、再選択で移動ができたり、足踏み率に意味があったりするとは思えないのですが、「可能性が0ではない」と言われれば否定できるほどの材料を私は持っていません。

 

見かけ上の特技使用率を上げる方法③:事後確率となる場合を極端に減らす

他の処理をうまく進めた結果、事後確率になる機会を極端に減らし、事後確率の影響が発生したらしょうがないよね・・・という発想です。

そもそも事後確率の影響が発生する場合の確率を限りなく0に近づけようという試みです。

分野によっては許されない考え方ですが、ゲームだから許されている発想でもあります。

 

今回の検証(検証結果1:アークのシレン優先と隣接敵優先の優先順位の確認)で、

キララとアークに死闘をしてもらい、

アークには100回炎を吐いてもらいました。

その結果、炎は100回中100回キララに当たり、

シレンに当たることはありませんでした。

が!普通のプレイではこういうことをしません!

つまり、実際問題として考えなくてもよいのです。もし、こういうプレイヤーが「100回中100回キララに炎が飛んだから、たまにはシレンにも飛んだほうがいいよ」と意見してきても、直す必要性をあまり感じられません。むしろ「裏技」と呼ばれるものはこういうところから生まれるものだと私は考えますし、それはそれでゲームの面白さになると思います。

「無限売却盾」や「ゾンビシレンバグ」はその代表例でしょう。「風魔の盾」というレアアイテムを-16も下げる人がいましたか?火柱による爆発で死亡する人がいましたか?多くの人に認知されるまで20年もかかったわけです。無限盾売却は間違いなく仕様です。風魔の盾が-16まで下がることを普通のプレイヤーは許さないんです。-1ですら許されない。ゾンビシレンバグはバグですが、発生条件の厳しさから許容されるバグです。

 

そして、例の場面。

シレンと隣接せず、キララと隣接し、HPが程よく減ったキララが移動した時、アークが特技率に成功する。

普通のプレイでこのような場面に遭遇する確率はかなり低いですが、アーク以外のモンスターまで含めると・・・・・・ありそうでもあるし、なさそうでもあります。

でも起きてしまうと、そして万が一それでキララやシレンが死んでしまっていたら、こういう場面がプレイヤーには強烈な記憶として残ってしまいます。

強烈な記憶として残したい場合はそのままにしますし、記憶に残したくない場合は修正すると思います。単純な見落としかもしれませんが、制作側が発見できれば修正や調整の是非を議論すべき場面に感じます。

 

シレン2では、優先順位(シレン優先か?隣接敵優先か?)などを上手に設定して、普通のプレイでは再選択(事後確率)が発生しにくい、あるいは発生してもプレイヤーには気づかない工夫をしていると思います。

ただし、この方法による調整は単純に個別の特技使用率だけ見ればいいというものではなく、ゲームシステム全体を見渡す必要があり、簡単な調整方法ではないと思います。

 

5.2.対象を変える意味・対象を変えない意味:K2(再選択で対象を変えない)では、なぜ特技使用率(事後確率)を考えなかったか?

以上のことから、②論理を変える方法でバランス調整していると思います。

もう少しパターンK2と②論理を変える方法について掘り下げてみましょう。

 

当初、私は「再選択で対象を変えない」と予想していました。

・・・というよりも、「再選択で対象を変える」という発想がありませんでした。

 

事後確率の発生に気づく前

再選択で対象を変えないパターンK2の利点の一つは状況を再確認しないことです。

パターンK2を採用する人は、早く結論を出したい思想の持ち主のはずなんです。

対象は変えないわけですから、確率のような回り道を使わず、最初からできる・できないという論理だけで判断するほうが合理的に早く結論を出せてしまう。

一度判断した結論を掘り返して、再び判断をしたくないはず。

ここに「K2と事後確率の相性の悪さ」を私は感じています。

 

パターンK2では、

①最初の特技率に失敗し、攻撃を予約する。

②キララが移動した結果、攻撃にも失敗する。(特技は①で調べたので考えない)

③特技も攻撃も失敗したので、足踏みする。

この考え方に基づけば、「88%で足踏みをする」と書くべきなんです。

 

一方で、「88%で足踏みをする」というのはプレイヤーに違和感を与えます。

・攻撃が有効範囲なのに足踏み

・特技が有効範囲なのに足踏み

・移動できるマスがあったのに足踏み

・アークは足踏みをしてターンを浪費するモンスターだっけ?

プレイヤーからすると、これ嫌なんですよね。

「あなたはなんで棒立ちしてるの?」って変に思うわけです。

変だと思った記憶は残ってしまうんです。

その結果、ゲーム制作者の意図とは異なる学習をしてしまう。

 

このような問題があり、私は「ターンの浪費になる・合理的でない足踏みを可能な限り出すべきではない」という考えの立場から、

最初に生まれた発想が「論理を変える方法(特技使用率を考えない)」です。

・論理を変える方法(特技使用率を考えない)

もし(再選択した場合){
 必ず特技を優先する。
}それでも、もし(特技が使用できない場合){
  必ず攻撃を優先する。
}それでも、もし(攻撃が使用できない場合)
   必ず足踏みする。

これなら、特技>攻撃>足踏みの順番で100%にできるわけですが、私の「ターンの浪費になる・合理的でない足踏みを可能な限り出すべきではない」という考えが反映されているので、この優先順位さえ本当は怪しいです。攻撃と特技のどっちを先に調べるかは明らかになっていません。

 

事後確率の発生に気づいた後

検証の結果。

再選択でも特技率を使い、事後確率が発生する。

・・・これは私の認識をかなり破壊しました。

移動完了後に特技率を使う理由がよく分からなかったのです。

ギガヘッド・ガマラ問題のように、アークと攻撃対象という2者だけの問題だったはずなんです。

特技率は当然判定済みの状態です。

アークの場合、他に何を考慮する必要があるのだろうか?

 

考えた結果、「再選択によって2者の問題ではなくなったのだ」と理解しました。

再選択では、もう一度移動完了後の状況を確認している可能性がある。

ここで初めて「再選択では対象を変更する可能性がある」ことに気づき、S1が生まれました。

そして、早く結論を出す思想は求められていないことを感じました。

再選択では、移動処理の対象選択と同様の状況判断を再び行う。

これは丁寧だけど遅くなってしまう。

でもパターンS1を採用すれば、敵・味方の移動後の状況が反映されますから、足踏みをするときは必要な足踏みであることが多いはずです。

対象も変えるのであれば、その対象に特技を使うかどうかをまだ判定していません。

公平な目線でもう一度特技率の秤にかけます。

その結果が、パターンS1なのです。

 

ただし、「パターンK2の流れで特技率が使用されているパターン」「パターンS1の流れで特技率が使用されないパターン」という可能性も当然あるわけです。

だからこそ、Agさんのご指摘は正しいなと思いました。

 

こうなると、今度は「ギガヘッド・ガマラ問題は?なんでガマラが飛んで、ギガヘッドは攻撃対象が有効範囲からいなくなったのに対象を変えたり、足踏みしないの?」という疑問が残ってしまうわけですが・・・わかりません!

ここまで考えると、「単純にアークとギガヘッドでは思考方法が違う」か、「対象を変えないパターンK2」か、「対象を変えないパターンK2の流れで特技率が使用されているパターン」のいずれかだと思います。でも「ギガヘッドに特技率?」となると、「アークとギガヘッドの思考方法の違い」が濃厚かな・・・。

もしかしたら「対象を変える・変えない」の判断も条件が微妙に異なっている可能性があるのでは?・・・そう思い始めて、保留しているのが「対象変更予想」です。

対象変更予想①再選択しても対象を変えない。行動のみを変える。

対象変更予想②再選択すると対象もリセットする。ランダムで再び同じ対象を選択することもあれば、異なる対象を選択することもある。行動も変える。

対象変更予想③再選択の時点で、対象が生存している場合は対象を変えない。対象が死亡した場合は対象を変える。行動も変える。

対象変更予想④再選択は存在しない。

モンスターによって再選択する時の対象変更条件が異なる・・・あまり考えたくはないです。

 

以上のように、パターンK2とパターンS1では、なんとなくですが私には思想の違いを感じるんです。

パターンK2は、「どんどん考える幅を狭くしていこう」という思想を感じられます。対象を限定し、少しでも早く・短く結論を出したいのです。

パターンS1は、「もう1回同じサイコロを振りなおそう」という思想を感じられます。

そもそも再選択(事後確率)が採用されているならば、私はパターンS1を推したいのです。

それが「再選択では対象を変えるか?対象を変えるなら、その条件は何か?(未検証)」の部分です。新しく見出しに設定しましたが、ここにも再掲載します。

 

・再選択では対象を変えるか?対象を変えるなら、その条件は何か?(未検証)

しかし、再選択では対象を変えるかどうかはいまだ不明です。

だいぶ話がさかのぼりますが、パターンK2とパターンS1は両立できない話をしました。(2.4の最後のほう)

・パターンK2(再選択で対象を変更しない)で確定すれば、例の場面の炎は100%キララに飛びます。

・パターンS1(再選択で対象を変更する)で確定すれば、例の場面の炎はランダムでシレンにも飛びます。

これに対する回答として、パターンS1を推したいところですが、再選択の対象変更の予想が確定していません。(再選択の性質1:再選択は対象を変えるか?)

対象変更予想①再選択しても対象を変えない。行動のみを変える。

対象変更予想②再選択すると対象もリセットする。ランダムで再び同じ対象を選択することもあれば、異なる対象を選択することもある。行動も変える。

対象変更予想③再選択の時点で、対象が生存している場合は対象を変えない。対象が死亡した場合は対象を変える。行動も変える。

対象変更予想④再選択は存在しない。

この検証方法では、移動の障害物としてキララを対象としていると私は考えています。そのため、再選択によって対象を変更したとは言えません。今後の課題です。

ただ、この思想の違いを感じるパターンK2とパターンS1は、どちらが優れているという話ではありません。大事なことはどちらを採用したらゲームとして面白くなるかです。

シレン2に限らず、他のゲームでもいつか参考になる日が来そうな予感がしますので、メモとして残しておきたいと思います。

というわけで、事後確率が存在する(特技使用率が高くなる)かもしれない場面が確認できたけれども、

①再選択で対象を変えるか(K2とS1は両立しない)

②再選択でも特技使用率を使うか(事後確率はあったほうがいいか)

③すべてのモンスターがそうなのか、個別のモンスターがそうなのか(アークと他のモンスターの違い)

④再選択の対象変更の条件に違いはあるか(対象変更予想)

ここら辺は何もわかっていない状態です。

現時点での私は、「アークの場合、再選択で対象は変え(S1)、再選択でも特技率を使う」と目星をつけている段階です。再選択で対象を変えない(K2)はあまり考えていません。本来なら、不明なものはすべて考慮するというのが正しい態度だと思います。

 

5.3.再選択の問題点:プログラムの重さの問題

この問題点は杞憂かもしれませんが・・・。

ここまで「再選択があって当然」のように書いてきましたが、再選択の処理が入ると、この時代のゲームプログラムとしては重すぎるような気もしているんです。
私は本職のプログラマーではないのでよく分からないんですが、やっぱりプログラムが重いとそれだけ挙動も重くなる・・・ような気はします。
同じN64の『最強羽生将棋』(1996年6月)では、当時の将棋AIをフル稼働するために画面の描画処理を停止していた・・・とかいう話もどこかで聞いたことがあります。ジャンルもメーカーも年代も違いますが、シレン2(2000年9月)にも似たような技術的な工夫が採用されていると考えています。

シレン2では視界外の敵や味方を描画しません。視界外はテキストメッセージや効果音だけになります。描画処理がないということは、それだけ1ターン当たりの処理が減ります。何人かのTA走者はその性質を利用してタイムの短縮を図っています。また、店やモンスターハウスのラグはほとんどのTA走者が利用しています。

「少しでも軽くしたい」というのは、シレンというゲームにおいては重要な要素だと思います。描画処理を節約してまで少しでも軽くしたいゲームにおいて、再選択をするほどの余裕がどの程度残っているかはちょっと想像できていません。

再選択はすべての存在に適用されてしまう概念です。移動や生死にもかかわる処理です。描画処理は省略できても、「再選択が無いか?」「再選択をしたらどうなるか?」というのは必ず調べなければいけません。すなわち、毎ターン・全キャラが再選択の分だけ処理が重くなっているはずです。

「少しでも軽くしたい」という考えが優先されるなら論理的な方法が採用されますし、「いつでも同じ処理で統一する」という考えが優先されるなら確率的な方法(再選択でも特技使用率を利用する)が採用されると思います。場面やモンスターによって使い分ける折衷案も考えられますし、もっと言ってしまえば、再選択を採用しないのが最速になるはずです。

でも本職のプロが組むプログラムなら違うのかな・・・それとも心配するほど重くならないとか?

「とりあえず再選択を盛り込んでみたけれど、そんなに問題なかったね」みたいな会話も聞こえてきそうです。
ちょっとこの時代の感覚もプロの仕事内容も分からないし、実際に動かして違いを見てみないとこれ以上は分からないことなので・・・

 

5.4.おまけ2のおまけ:麦ジュースおじさんの話

事後確率があるとバランス調整が大変だという話でした。

話は変わりますが、麦ジュースばかり飲んでいるシレンのバランス調整をしている長畑成一郎さんという方がいます。インタビュー記事などを拝見すると、長畑さんはずば抜けた確率のセンスを持っていると思います。

長畑さんなら確率を数学的に計算できると思いますが、そのような数値計算よりも肌感覚として「これくらいの数字」という勘を持っているし、そのような感覚や勘を大切にしていると思います。

天気予報で例えれば、気象予報士気象衛星とか湿度などの観測データから数値計算によって「降水確率は〇%」を求めています。これは気象について必要な勉強をすれば誰でも計算できるようになります。

でもそんな勉強なんてしなくても、「あ、これから雨降るだろうなあ」とか、「あ、もうすぐ雨が止むかも」とか、「あの山に雲が出始めたからこれから晴れますね」とか、そういう謎の経験で天気予報をする人がいますよね。しかも精度が謎に高い。雨男とか雨女とか、晴れ男とか晴れ女とか。そういう謎の経験・感覚・勘を確率に対して長畑さんは持っている。・・・たぶん元から持っている。ギャンブラーという話を聞いたので、そういう確率に強い関心がある方なんでしょう。

インタビュー記事を読む限り、長畑さんが普通でないという説もありますが長畑さんと比べれば中村光一さんは気象予報士に近い側に感じます。

次のインタビュー記事で「数学上の確率と人間の感覚の違い」とか、「当たる確率=100%-当たらない確率」とか、そういう話をしています。

news.denfaminicogamer.jp

例えば、次のような話をしています。(一部抜粋)

中村氏:
 たぶん、大抵の人は10%という数字を、10回に1回起きることだと理解してしまうんです。
 でも、数学上の10%というのは、違うでしょう。例えば、5回目で出たあとに、何十回も出ない状態が続いて最後にドンドンドンと出てきたとしても、確率的には10%で正しいというのはあるじゃないですか。でも、人間の感覚は、それを10%とは受け入れがたいんですね。

長畑氏:
 ええ。ですから例えば、「5回目までで起こらない確率が半分」というくらいの感じで作ると、上手く10%に感じられたりするわけですよ。
 この辺の人間の確率をどう捉えるかは、色々なコツがあるんです。例えば、仮にある武器の命中率に85%と90%の差をつけたとしますよね。これは、単に5%しか差をつけていないのですが、プレイヤーは大変に大きな差を感じてしまうんです。それってすごく不思議に思えますが、逆にこれを「命中しない確率」だと思ってみて欲しいんです。

――あっ、10%と15%で、1.5倍になる。これは、かなり大きな違いですね。

こういう話を聞くと「数字のセンスがあるなあ」と感心します。成功率と失敗率を逆にして考えることは非常に参考になります。

この記事で私がとくに気になったのはこの部分。※赤字・下線は私が加筆しました。

長畑氏:
  実際のところ、テストプレイを1000回単位でやらせてみると、ある1%を境にプレイヤーの「当たりやすい」「外れやすい」の評価が切り替わることはザラです。例えば、これは大事なノウハウでもあるので記事では値は伏せていただきたいのですが、「◯◯」についての数字なんて、◯◯.◯%の確率の辺りに最適解があって、そこから少しでもズレたらプレイヤーから「多すぎる」「少なすぎる」と苦情が来はじめると分かっています。

――……そんな精度で調整しているのですか。

この赤い下線の部分。

私はずっと引っかかっていました。

「なぜ小数点なんだろう?」

この記事はシレン2だけでなく、シレンシリーズ全体の話をしていると思うんですが、ある程度きれいな数字を使いたいのが人情だと思うんです。

でも、(この記事で)小数点の数字があるということは、(ゲームにも)小数点になるような数字があるということです。

きれいな数字で1/1000単位の数字。私なら小数点の掛け算を最初に疑います。これも私の憶測の話ですが、記事の内容がシレン2にも適用されているのであれば、「事後確率も織込み済みである」と言っているように聞こえます。「どれくらいの精度」というのが話の本筋ですが、もしかしたら小数点も伏せておくべきだったかもしれません。

 

中村光一さんは天才プログラマーとして語られることがありますが、長畑成一郎さんはバランス調整の天才だと思います。

シレンの壺システム込みで初めてバランス調整をしたのが、まさに長畑さんですから。私みたいなのは長畑さんの足跡をたどっているにすぎません。シレンを作りたければ、まず長畑さんの感覚を身につけるしかありません。

バランス調整でふと思えば、花婿試験が謎の奇跡的なゲームバランスになっていて、思わず私も飛びついてしまいましたが、花婿試験と性能が近い剣・盾であかずの間のテストプレイが本当に行われていたのかもしれません。カタナとかオオカブトとか。印も火とか弟とかを中心にして。他のアイテムは・・・さすがに花婿試験ほどアイテムが少ないテストではないと思いたいです。シュテン山や鬼ヶ島で普通に拾える腕輪くらいは装備して、復活草も持って、保存の壺にたくさん詰めてね。

 

新作シレン6には長畑さんも関わっているらしいです。最近の情報を見ていると「余計なものをそぎ落として完成度の高いゲームを真面目に作ろう」という制作方針を感じます。「何を削り、何を追加するか」「変更後、どのような味付けをするか」長畑さんはじめバランス調整の腕の見せ所です。

私はスパチュンの人ではありませんが、長畑さんの感覚が次の世代にも受け継がれ、シレン7や8は・・・気が早いですね・・・シレン4と5みたいな販売間隔が短すぎてもアレですし(あれは腹が立ちました。子どものお小遣いの少なさを考えてほしかったし、そもそもまだ人が4をやってる途中でしょうが!)・・・でもずっと続いていくことを期待しています。私は楽天の1万円のやつ予約しました。届いたら配信する予定です。本当に期待していますからね。

楽しみにしています。

 

6.まとめ

・どの時点で、どの選択肢を与えるか
・どの時点で、対象とその座標を決定するか
・同じ時点でも、小さな優先順位をどのように設定するか
・特技の有効範囲をどのように設定するか
偶然か意図的か、これらの匙加減を微妙に変化させ、あるいは共通させることで、シレン2はモンスターの豊かな行動を表現している・・・・・・と私は考えています。

 

途中、話がそれてしまった部分もありましたが、「逃げキララに出口アークの炎が当たる現象」について考えてみました。「隣接敵優先の原則」と「再選択により事後確率で特技使用率が高くなる可能性がある?」という話でした。

考えたり、検証した結果、他の可能性も存在しますが、「例の場面でキララに炎が飛んだのは、隣接敵優先の原則により、アークが最初からキララを狙って特技を選択した」という可能性を私は推したいという結論に至りました。

 

アークのような遠距離攻撃モンスターが部屋の出口にいると、キララが100%特技で狙われるか、シレンとキララをランダムに攻撃されるリスクがあります。
そのリスクを受け入れて行動する。

「キララがピンチなら、シレンが前に出るほうが2人の生存率が高い」と私は考えています。
そういう対応が必要かなと思います。

 

以上です。今の私の能力ではこれが限界です。

ここまで書いておいてアレなんですが、全部私の憶測の域を超えません。

なので、このお話はとりあえず終わり。

何か分かったり、気づいたりしたら、そして気が向いたら追加・修正します。

 

修正履歴

・2023年11月8日:誤字・脱字の修正と「おまけ2」の追加。

・2023年11月13日:最終結論の記事を追加。