たまたま小さな不具合を発見したので記録に残したい
はじめに
最近発売されたポケットモンスターブリリアントダイヤモンド・シャイニングパールでは大小様々な数々のバグが話題になっています。
そんな中、発売から2年が経ったポケットモンスターソード・シールドにてたまたま小さなバグを発見しました。何も影響がないただ変な表示が出るだけの不具合なのですが、これについて書かれた文章はインターネット上に存在しないようなので、記録に残しておきます。
概要
画像は
ポケットモンスター ソード Ver 1.3.2
ランクバトル チーム選択画面 チーム選択後
タマゴは
参加することが できません
※ 本当はタマゴがあっても問題ない
発見した内容
前置き:今回の記事の内容は、全て「ポケットモンスター ソード Ver. 1.3.2 」にて調査したものです。
バトルタワーやメニューのVICTORY STATION(以下VS)からのカジュアルバトル・ランクバトルでは、戦いを始める前にチーム選択画面があります。
上記の画像のようにチームを選んで「はい」を選ぶと、何も問題がなければ次に進みます。
バトルタワーではすぐに・VSのカジュアルバトル・ランクバトルではマッチングを経て、この上記のような選出画面に進みます。その後、対戦へと進行していきます。
このとき、「てもち」をチームとして選んでいてそこにタマゴが入っている場合、タマゴをチームに入れた状態で選出画面を迎えることができます。
もちろんタマゴを選出することができません。タマゴにカーソルを合わせてAボタンを押しても「つよさをみる」と「やめる」しか選択肢がなく、「さんかする」の項目はありません。
タマゴは、チームに入れることならできるというわけです。
ところが、おかしなことにこのように表示されることがあるのです。
「タマゴは参加することができません」と表示されます。タマゴをチームに入れてこの画面を通ることができていたのにもかかわらず。
どのようなときにこのようなことが起きるのか調査してみたところ、それは、
タマゴがなかった場合であっても
・「同じ種類のポケモンがいます」
・「同じ道具を持っているポケモンがいます」
・(使える数に制限があるポケモン群がいるルールにて)「参加する特別なポケモンの数が多すぎます」
・「バトルレギュレーションマークがついていないポケモンがいます」(12/7追記)
のうち(他にもあるかもしれません)、どれかの表示を出されて元々参加できないようなチームが、タマゴをチームに入れて参加しようとしていたとき
でした。
つまり、
”同じポケモンがいるなどの理由でそのチームでは参加できないときに、そのチームの中にタマゴがあると、(本当はそうではないのに)まるでタマゴが原因であるかのように表示される”
という不具合が起きています。
後述しますが、そのチームでは参加できないときにタマゴがあると全てそうなるわけではなく、どの条件に引っかかったかによります。ポケモンの数が足りないときは、普通に「参加するポケモンの数が不足しています」と表示されます。
チームにタマゴがいるとき、「タマゴが原因であると言われる ならば 他に何らかの参加できない理由がある」は成り立つが、「何らかの参加できない理由がある ならば タマゴが原因であると言われる」は成り立たない、という感じです。
バグかどうか
バグの定義によると思いますが
・プログラムの誤りによって起きている
・ゲーム内の他の事象との辻褄が合わない現象である
・開発者はこの嘘表示を意図していないし、正常とはみなさないであろう
などの理由からバグと言ってよいのではないかと思います。
タマゴを選出することはできないということを伝えるためのメッセージであって不具合ではないのではないかという意見に対しては、他に問題がないときはタマゴありでもそのようなメッセージがないのに他に問題があるときだけこのように表示されるのは変だと反論できます。
選出画面で「さんかする」の項目を選べないことを指した表現であるなら、「タマゴは参加することはできません」それ自体は正しいですが、チームの選択で拒否される理由としてそれが表示されることは間違っています。
タマゴが参加できないと表示されるバグなので「タマゴ参加不可表示バグ」ととりあえず呼ぶことにしました。
ちょっと長いですが、「タマゴ参加不可バグ」よりこちらのほうが現象をうまく説明している気がしたので。このバグは、"タマゴが参加不可になるバグ"ではなくて、"タマゴが参加不可の原因だと表示されるバグ"です。
検証詳細
以下、ソード Ver. 1.3.2 において確認
このように、上のポケモンから順番に見ていったときに道具の重複のほうがタマゴより先に見つかる場合でも、タマゴのせいにされます。
タマゴの代わりに関係ない別の普通のポケモンにすると、同じ道具だからダメだと表示してくれるようになります。
同じポケモンが複数いるときについても、同じ道具を持ったポケモンが複数いるときと同じ表示になります。
タマゴをポケモンに変えると、こちらもちゃんと正しい原因が表示されるようになります。
VSのランクバトルにおいても同じであることを示す画像です。
タマゴではなくすると、指摘が正しくなるのも同じです。
持ち物やポケモンの重複をなくすと、タマゴがあってもこの画像のように次の画面に進むことができます。「はい」を選んだ後にこの画面になり、マッチング待機画面へと移行します。
下の画像では、少し似ていて分かりにくいですがゴチルゼル2匹目がイエッサンに変わっていてポケモン重複がなくなっています。
ランクバトルシリーズ11のルールでは、禁止級伝説と呼ばれるポケモンたちの中から1匹までを使用可能です。つまり、2匹以上入れてはいけないわけなので、2匹以上だとチーム選択画面でストップされます。これも試しました。
同じ結果になりました。
タマゴをポケモンに変えると、正しいメッセージがでます。
何らかの理由で参加できないときにタマゴがチームにいるときも、全てのケースでタマゴのせいにされるわけではない、ということを示す画像が次のものです。
「参加するポケモンの数が不足しています」の表示はタマゴより優先されました。
(12/7追記)ランクバトルにおいて、過去作から連れてきたポケモンをチームにいれる場合バトルレギュレーションマークをつけないといけません。バトルレギュレーションマークをつけていなかったときについても、ポケモン重複などと同様の結果になりました。
この下の検証についてもバトルレギュレーションのことを追加しました。
・関連するものの今回の不具合とは関係のない検証
シリーズ11のルールでは、同じポケモン 禁伝2匹 過去作ポケモンバトルレギュレーションマークなし 同じ持ち物 などのチーム違反があります。これらを同時に破っていた場合、チーム選択画面で拒否されるときの表示はどうなるのか調べました。
結果:これらの表示の優先順は ポケモン>持ち物>マーク>禁伝 であり、一番優先度が高い一つのみが表示される
これまでの結果から
ポケモン数>(タマゴ)>ポケモン重複>持ち物>レギュレーションマーク>禁止級伝説数
という表示の優先順があることが推測できます。
ついでに、同じポケモンのタマゴが2つチーム内にあっても、他が問題なければ問題なくそのチームを選択できることを確認しました(ペロッパフのタマゴ2つで検証)。
仕組みの推測
参加不可の判定時にはタマゴはチェックされないけど、参加不可理由の表示のほうにだけはタマゴに関するチェックがあり、こうなっているのではと推測しました。
以下、予想したプログラムの仕組み
チームを選んで「はい」が押されたあと、参加条件をチェックする
この参加条件にタマゴは含まれていない
↓
参加不可と判定される
↓
理由を表示するために参加条件を何らかの順番で一つずつチェックしていく
この条件の中には、「タマゴが含まれているなら、不可」というタマゴに関する条件が含まれている
↓
「同じ道具を持ったポケモンがいるなら、不可」という条件より先にタマゴの条件がチェックされる。
↓
不可の理由が一つ見つかった時点でチェック作業が終了してそれを表示するようになっていて、チェック終了
↓
「タマゴは参加することができません」の表示
この不具合に対する意見
この表示がなされるときは、もともとそのチームのままだと参加できない状態であるときだけなので、何かに対する影響はないです。
これが、タマゴがあると道具重複を見逃すみたいなものだったらまずいことになっていたのですが、そんなことがなくて良かったです。重篤なバグだと広めるわけにいかず記事を書くこともなかなかしにくかったと思います。
今回の程度なら、記事に書いて共有して、興味を持った方には実際に体験していただいて、お〜!って思ってもらって、ということができるので平和です。
ただし、チームを選択できない理由を正しくユーザー側に伝えていないという点でよろしくない状態ではあるので、直されるべきだとは思います。
発見のきっかけ
当時手持ちに捕獲要員としてゴロンダがいて、シルクのスカーフを持っていた
↓
バトルタワーにて、とある2体の連携を試そうと思い、3匹目としてなんとなく配布で受け取っていたプレシャスボールポリゴンZを入れる。これがシルクのスカーフ持ち。
↓
手持ちのメンバーでバトルタワーで戦おうとすると、さっきまでタマゴがあっても戦えていたのにタマゴによって足止めされる。
↓
手持ちや道具を入れ替えながら実験をしていると、シルクのスカーフが被っていたこと、いつもなら持ち物被り状態だとそれが原因で入れないという旨のメッセージが出るはずだがそれがなかったこと、などに気がつく
↓
「同じ道具」だけでなく「同じポケモン」でも同様のことが起きることを確認
↓
カジュアルバトルでも同様のことが起こることを確認
↓
その他いろいろ検証
↓
今回の不具合を大まかに理解
タマゴ入りチームについての検索調査
既存文献がないか検索していたとき、Twitterで「タマゴは参加することができません」と入ったツイートが2件ありました。
タマゴは参加することができませんwwwwwwwwwwwww
— にょろ (@daradarasuruyo) 2013年10月20日
タマゴは参加することができません
— 誕生日プレゼント募集中 (@Ksaijaku666) 2013年12月11日
謎仕様追加してんじゃねーぞ!
投稿日は2013年10月と12月だったので、遅くても2013/10/12発売のXY以降はこのようなタマゴチェックがプログラムに組み込まれているようです。
過去世代のインターネット対戦でタマゴの参加可不可はどうだったのか、軽くTwitter上で検索して見つけたツイートのURLを記録しておきます。
第五世代
あぁレートが下がり過ぎてついにはタマゴを手持ちに入れるトレーナーが現れた
— アンニュイ (@ennui_noon) 2010年10月25日
レートでタマゴ入れてもぐってるやついたから写真とりたかったのにその時に限って電源落ちるスマートフォン死ね ガチで画面アムハンした
— こり (@x_kirito_xx) 2011年6月25日
あれ対戦相手のPTの中にタマゴ入ってるけどレートでタマゴって使えるん?
— みねぎしP (@negishi_316) 2013年4月1日
第六世代
間違えてレートに手持ちで行ってメラルバ+タマゴ5しかいない写真撮っておけばよかった
— そるたん (@sorutan_prpr) 2014年1月18日
今までしっかりとした記録が残っていなかっただけで、ずっと「タマゴを入れたチームを選択可能だが何か他に問題があるとタマゴにせいになる」という状態が過去世代からずっとあるのかもしれません。
おわりに
Aさんに事実Xが原因だと言われて直したのに、実はAさんの判定基準は事実Xとは関係なくて実は事実Yであった。事実Xのことを言われたけどそれは直す必要はなかったし、事実Yを直す二度手間になった。という、たまに現実世界でもありそうな現象が起きそうなバグでした。
最近なにかとポケモン×バグの話題が多いですが、そんな中たまたま見つけたので即その週末に記事にしました。
久しぶりの検証記事でした。【ポケモン剣盾】レベル1デスバーン実現方法 / デスバーンへの進化条件についての検証 以来?
今回の検証でタマゴ入りチームで対戦する面白さを再確認し、さらに洗練させて孵化厳選偽装パで数戦戦いました。カジュアルバトルだと半分くらい勝てて気にいったので記事にしたい気持ちが出てきました。
(追記 マスターボール級上げに使いました 以下の記事)
【ポケモン剣盾シングル】孵化厳選偽装パーティーでマスターボール級に到達!セキタンザン+タマゴ×3+リオル+メタモン - テツポンドのブログ
【ポケモン剣盾シングル】「"メタモン偽装ゾロア" 偽装のじゅうなんメタモン」入り 孵化厳選偽装構築 - テツポンドのブログ
【ポケモン剣盾シングル】禁伝2体環境でも孵化厳選偽装構築でマスターボール級到達 ラム剣舞ファイアローとイバンリオル - テツポンドのブログ
お読みいただきありがとうございました。約5400字(追記編集後5900)。
なぜ「たまご」でも「卵」でもなく「タマゴ」なのか…… ポケモン名に合わせてカタカナに?
些細な追記
本記事のチーム選択画面に写り込んでいる他の2つのチームですが、
左側は倉本蘭さんのレンタルパーティー
公開直後 些細な追記・バージョン情報を追記
2021/12/7 バトルレギュレーションマークに関する検証の内容を反映
2022/6/12 孵化厳選偽装構築記事追記
Twitterアカウント