p2Name

P2nameとは、敵の情報を参照して結果を返すトリガーの一つで、「P2」「name」
すなわち「最も近い敵*1」の「名前(表示上のではなく内部的な)」を参照するためのトリガーである。
当然ながら敵が一体の時は、距離に関しては意味が無くなる。
P2と言うと、P2distなどのトリガーではhelpertypeがplayerになっているヘルパーもその対象となるのだが、
このトリガーの対象はあくまで敵本体に限定され、敵ヘルパーには適用されない。
本体かヘルパーかを判別する場合は『!IsHelper』(本体)、『IsHelper』(ヘルパー)で判別し、永続ターゲット等ではこの記述が必須となる。
記述の形式は以下の通り。ダブルクオートで名前を囲むのを忘れずに。
trigger1 = P2name = "Kung Fu Man"

類似のトリガーに自分自身の名前を参照するP1nameというトリガーがある。
これはP1を省略しNameと記述しても同じ役割のトリガーとして使用可能。
滅多に使わないトリガーだが、投げ技などの敵を処理することを想定したstateでは使い道がある。
また、敵の情報を参照するための「Enemy,」「Enemynear,Name」や、
パートナーの情報を参照する為の「Partner,」と組み合わせた使い方が可能。
trigger1 = Enemynear,Name = "Kung Fu Man"
あるいは
trigger1 = Enemynear(0),Name = "Kung Fu Man"
このように記述した場合、P2nameを使った記述と近い意味になる。ただし近いだけで違いはある(詳しくは後述)。
例の二つ目の、Enemynear(0),の(0)とは「一番目」を意味し、この場合なら「『近さ』で『一番目』の『敵』」という意味。
Enemynear(1),なら「『近さ』で『二番目』の『敵』」である。
Enemynear(0),はEnemynear,と記述した場合と意味は完全に同じで、無駄に文字数がかさむので省略することが多い。
この記事でも以降(0)は省略する。

チーム戦用に、パートナーの名前を参照するP3nameと、
敵側のパートナーの名前を参照するP4nameというトリガーもある。
P3NamePartner,Nameの記述で代用しても意味はほぼ同じである。
しかし、P4NameEnemynear(1),Nameで代用すると、P2nameの時と同じでやはり違いがある。

それぞれのトリガーの意味の詳細

  • 本人の名前(生死不問):P1Name または Name
  • パートナーの名前(生死不問):P3Name または Partner,Name
                                                      (ただし、Partner,Nameの方はパートナー不在時に使用するとエラーメッセージが出るので、
                                                          単体では用いず、NumPartnerと併用するのが基本となる)
  • 生存中の一番近い敵の名前:P2Name
  • 生存中の二番目に近い敵の名前:P4Name
  • 敵側のチームリーダーの名前(生死不問):Enemy,Name
  • 敵側のサブメンバーの名前(生死不問):Enemy(1),Name
                                                                     (ただし敵側のパートナー不在時に使用すると上記同様エラーメッセージが出るので、NumEnemy>=2と併用)
  • 一番近い敵の名前(生死不問):Enemynear,Name
  • 二番目に近い敵の名前(生死不問):Enemynear(1),Name
                                                              (ただし敵側のパートナー不在時に使用すると上記同様エラーメッセージが出るので、NumEnemy>=2と併用)
P2NameとP4Nameは敵の生存が関わり、他はそうではないのが少々複雑である。
例えばすぐ側にKO済みの敵が倒れていて、遠くにもう一人生きた敵がいるという状況でP2nameを使うと
「遠いが生きている敵」を、Enemynear,Nameだと「死んでいるが近い敵」の名前を参照することになる。
なお、敵が二人共死んでいる状況ではP2nameではそのどちらの名前も参照できなくなる。

特に勝利デモを搭載しているキャラで倒した相手が該当する特定キャラであった場合、
P2Nameだと倒した相手(即ちAlive=0)を認識できず、専用台詞が表示されない。
ただしタイムオーバー等の判定勝ちであった場合、相手はAlive=1の状態であるためP2Nameで相手を認識できるが、
どちらにしてもこのように生死が関わる状況では、EnemyNear,NameもしくはEnemy,Nameを使った方が無難である。

このように案外細かな違いがあるので、チーム戦での敵の判別ではきちんと使い分けた方が良い。
ここで一つ例を挙げてみると、『北斗の拳』に登場するジャギ究極奥義である「今は悪魔が微笑む時代なんだ!」は、
シン専用の技であるが、
Trigger1 = Enemy,Name = "Shin"
この記述では「シンが敵側リーダーであれば発動可能」という意味になる。この場合シンの生死や近さは不問。
これを「敵側にシンがいればリーダーか否か不問で発動可能」にしたいなら、
Trigger1 = Enemy,Name = "Shin";←1人目(リーダー)の名前
Trigger2 = NumEnemy = 2;←後述
Trigger2 = Enemy(1),Name = "Shin";←2人目(サブ)の名前
このように記述すれば良い。

また、「一番近い敵が生きたシンならばリーダーか否か問わず発動可能」としたければ、
Trigger1 = P2Name = "Shin"
こうである。

「NumEnemy = 2」について

相手が2人いることを判別するトリガーで、これを入れないと相手が1人だけの場合にエラーメッセージが表示されてしまうのを防止する。
しかし使い勝手が非常に悪く、下記の記述では正しく機能しないので注意。
  • 間違った記述例
Trigger1 = NumEnemy = 2 && Enemy(1),Name = "Shin";←同一行に纏めるのは×
Trigger2 = Enemy(1),Name = "Shin";←こちらを上の行に記述して、
Trigger2 = NumEnemy = 2;←こちら下の行に記述するのも×

パートナーに関するPartner,Nameも全く同じことでNumPartnerが必須であり、
Trigger1 = NumPartner
Trigger1 = Partner,Name = "Shin"
↑これが正しいのだが、
Trigger1 = NumPartner && Partner,Name = "Shin"
Trigger2 = Partner,Name = "Shin"
Trigger2 = NumPartner
↑この記述はNGとなる。

このように、違いを知っていれば立場、距離、生死の条件を組み合わせることが可能である。
もう少し複雑に「敵側リーダーがシンで、そのリーダー側のシンが生きており、かつ生存中の敵の中では自分に一番近い場合に発動可能」
としたい場合はどうするか。
Triggerall = Enemy,Name = "Shin"
Triggerall = Enemy,Alive = 1
Trigger1 = Enemynear,id = Enemy,id
Trigger2 = NumEnemy = 2
Trigger2 = Enemy(1),Alive = 0
そこまで複雑になるとName系のトリガーだけでは無理で、このように他のトリガーも組み合わせることになるだろう。

なおこれらName系のトリガーは、どれも「完全一致するか」のみを見て(ただし大文字と小文字の区別は無い)、
真(1)か偽(0)かを返すだけで「○○を含む」などの使い方は不可能、と少々使い勝手が悪い。

ちなみにキャラの名前ではなく製作者名を参照するAuthorNameというトリガーもある。
Nameと同じで普通に使うと自分自身がその対象だが、これもやはり「Enemy,AuthorName」や、
「Partner,AuthorName」とすることで対象を指定して、製作者の名前を問うことが可能。

また、敵の名前以外の情報を参照するためのトリガー(例えばP2LifeやP2StateNoや製作者名のAuthorNameなど)には、
P3、P4用のものは無いのだが、これも「Partner,」や「Enemy,」と組み合わせて工夫すれば色々と参照できる。
上の説明で用いたEnemy,Aliveもその一種である。


これらのトリガーは主に特殊イントロ特殊やられ、あるいは勝利演出等に用いられる。

また、更にP2statenoを用いて組み合わせることで、特定の相手の特定の行動に対して特定の対応をさせたり、
能力を付加させることも可能。
例として、
  • 特定相手時の攻防、パワー、ライフの増減。
  • 反射攻撃を予め登録しておき、特定相手の飛び道具と同様の形状の飛び道具を返す。
  • 特定相手の飛び道具をダッシュで無効化できるようにする等。
  • 特定相手に挑発された時、自分のパワーを減らす。もしくは増やす。
  • 特定相手との条件成立で特殊な動作をさせる(シエルアルクェイド・ブリュンスタッドのクロスカウンターやELLA等の組み手など)。
  • 通常時と特定相手時で違う技演出をさせる
    レイ一撃必殺奥義ユダもしくはマミヤに喰らわせた時、ケンシロウの一撃をハート様またはシンに喰らわせた時など)。
などなど。

他に特殊な用途でP2nameを使用している場合もある。
並キャラが所謂神キャラと称される凶悪系キャラと対戦する場合、そういった対策の一環として用いられる場合がある。
ただし、根本的にランク違いであるため、大会等では『無差別級』にでもしない限りこういう組み合わせは有り得ないが…。

また、MUGENには性別を判別できる項目が無いのだが、このP2nameを使用して相手キャラの性別を擬似的に判別することができる。
…が、男とも女とも取れるNameにはフルネームやAuthorNameを組み合わせる必要がある
(例:まこと(Makoto)溝口誠(ファイターズヒストリー)(男)、まこと(ストリートファイターIII)(女)、菊地真(アイドルマスター)(女))。
ゆ~とはる氏のサイトに性別別にまとめたP2name一覧が公開されているので、男女で演出が変わる要素などがあった場合に利用してみるのもいいかもしれない。
大まかに男女別、年齢別(子供、大人、老人)、種族別(人間、吸血鬼、ロボット・アンドロイド)など。
但しメスケモ系など外見が人間に近いキャラ以外のマイリトルポニーのキャラ達(何れも♀≒女性)は対象外となっているので注意。

AI時においては、㍻㌢氏のAI説明書で有名になってきている、中段攻撃対応、瞬獄殺対応、グレイズできるキャラの飛び道具対応、
アーマーキャラ相手の対応等、様々なバリエーションを持たせることができる。
上手くいくとかなりシステムの格差が激しい組み合わせのAI戦も魅力的に見せることができるのだが、
元々この手の個別対策というのは、かつて製作者らの間では可能なのは分かりきっていても、敢えて手を出さないようにされてきた領域だったりする。
そんな経緯から(今のようなAI同士の対戦の場合であっても)あまり好まないという人もいる。
これは結構デリケートな問題なので注意しよう。


特殊イントロにせよAIにせよ、P2nameで指定する相手側のキャラが更新されると、
それまでの記述では通用しなくなることがある。
それを避けるためには事前に相手側の製作者に連絡を取って了承を得ておくのがいい。
上手く使えばキャラの魅力を引き出し得る重要なトリガーである。


ちなみにありそうで無かったのがステージの名前を参照するトリガーである。
キャラセレの後ステージを選ぶ時、その設定しているステージ名が表示されるが、WinMUGENには試合中これを参照するトリガーが存在しない。
このため特定ステージのみ使用可能な技を持つキャラなどがWinMUGENでは再現ができない。
例:バルログの金網よじ登りジャンプ、マグニートー(『X-COTA』)やユンヤン両者共2nd以前)のホームステージ限定の特殊イントロ
サウザーのホームステージ限定の一撃必殺奥義演出など。
…が、新バージョンmugenにてとうとうステージを参照するトリガーが追加されたので、
このような技も新バージョンmugenでならば追加可能となった。


*1
X軸のみでY軸の距離は無視される。また敵に前後から挟まれている場合には前方の敵が若干優先される。