見出し画像

ポケットモンスター ソード・シールドの『ライブ大会』でオフライン大会を開催する方法

『ポケットモンスター ソード・シールド』には「ライブ大会」という機能があります。

画像2

Xメニューから「VS」を選んだ所にある、この右側のReactみたいなアイコンの選択肢です。ポケモンで対戦を多く遊んでいる方は左側の「バトルスタジアム」をよく使うと思うのですが、「ライブ大会」は使った事が無いという方は多いのではないでしょうか。

「ライブ大会」とはオフラインで大会が開催できる機能であり、Switchをたくさん持ち寄ることで対戦せずに観戦することもできるという大きな特徴があります。

この動画は海外公式大会の物であり、プレイヤーのビデオ映像などの編集がされていますが、下記のような観戦機能独自のUIが確認できます。

・画面上部に両者の手持ち6匹が表示される
・画面下部に両者のHP実数値が表示される
・画面下部に「トリックルーム」「すなあらし」等のフィールド変化の残りターンが表示される

こうして見てみると結構良さそうなライブ大会機能ですが、それ以上に非常にややこしい仕様がいくつか存在します。本稿では、実際のライブ大会の手順やスムーズに開催するためのツールなどを紹介します。

基本的には、下記公式サイトの手順に従うことでライブ大会ができます

...が、実際にやってみると分かるのですがライブ大会自体の仕様が結構難しい上に、公式サイトの解説も簡素で、他にネット上の情報も少なく、かなり手間取ってしまいました。

※本稿は2020年2月14日時点の「ポケットモンスター ソード・シールド Ver.1.1.0」に基づいて執筆されています。

手順1: Nitendo Switch 本体を再起動する

まず大会を始める前に参加者全員のSwitch本体を再起動しておいた方が良いと思います。再起動するだけで結構な通信トラブルを回避できます。レポートを書いて再起動しましょう。

Nintendo Switchの再起動は電源ボタン長押しでできます。AndroidやiOSと同じ仕様ですね。

手順2: 大会を開催し、選手証を配る

・だれか1人が開催者となり、ライブ大会を開催します
・残りの参加者(対戦者)は、開催者が配信する選手証を受け取ります

なお開催者も大会に参戦できますので、開催者は誰がやっても構いません。

開催者は公式サイトのライブ大会を開催する方法の手順に従って「選手証を参加者に配信する」所まで進めます。そしたら参加者は誰かが開催したライブ大会に参加する方法の手順に従って選手証の受信をします。

選手証を配信しているあいだ開催者は他の操作ができず大会に参加できませんので、参加者は選手証を無事に受信できたらその事を開催者に伝えてあげましょう。参加者全員が選手証を受信できた事を確認したら、開催者はライブ大会を開催する方法の手順の残りに沿って「自分の大会に参加する」を選択することで、ライブ大会に参加できます。

手順3: 対戦グループ番号を入力し、対戦相手とマッチングする

ここが最難関です。誰かが開催したライブ大会に参加する方法の「8」になるのですが...

8.対戦グループ番号を入力してOKを選択。対戦グループ番号は3桁の数字で最初の2桁を対戦する人と同じ番号にし、最後の1桁は1番と2番で分かれるように入力しよう。
(例:011と012、991と992)

突如「対戦グループ番号」という謎の用語が出てきます。これはYYコミュニケーション等で対戦する時に使う部屋番号やパスワードみたいな物...とは全く異なる物であり、基本的に1人1人が別々の数字を入力する必要があります。

2人で対戦しようとする場合、両者で同じ2桁の番号を決め、どちらかが3桁目に「1」を、どちらかが3桁目に「2」を入力します。例えばタケシとカスミの2人が対戦する時、両者で「01」という数字を決め、タケシが「011」カスミが「012」を入力すると、この2人での対戦がマッチングします。

なお無事マッチングすると対戦者の画面には「Aボタンを押してください」という表示が出ますが、観戦する人がいる場合はここでAボタンを押さずに「手順4」が完了するまで待っていてください

さて。ここで気になるのは「対戦グループ番号をどうやって決めれば良いのか?」だと思います。例えばトーナメント形式の大会であれば、予め対戦する相手が決まっていると思うので、トーナメント表を作って対戦グループ番号を割り振っていくことで対応できます。

20200223_トーナメント

総当たり戦の場合はどうするのでしょうか?基本的にはトーナメントと同様に、対戦相手を予め決めておいて、対戦グループ番号を規則的に割り振っていくだけです。ただしトーナメントと違って、総当たり戦のロジックは複雑です。

今回は総当たり戦がしたかったので、対戦グループ番号を自動で割り当てるためのツールを作成しました。

※これが紹介したかっただけの記事です。

対戦メンバー入力すると、カークマンのアルゴリズムで総当たり戦の対戦表を最少対戦回数になるように組み、順番に対戦番号を割り振っていくツールです。対戦者は1回戦毎にこのツール上の自分の番号を入力していくだけで、最終的にすべての対戦者とマッチングできます。発行されたURLを共有すると他のメンバーも同じ対戦表を閲覧できます。

技術的にはReact+Next.js+TypeScriptで開発されており、ソースコードはGitHubにてMITライセンスで公開しています。今回たった1回のライブ大会を身内で開催するためだけに開発したのですが、もし他の誰かの役に立つような事があれば幸いです。

手順4: 観戦する人も対戦グループ番号を入力する

観戦する人がいない場合は、このステップは無視して対戦を開始できます。

対戦者が対戦グループ番号を入力し終わってマッチングしたら、観戦する人も、ライブ大会の対戦を観戦する方法に書いてあるとおり「ライブ大会を開催する」を選択し、対戦グループ番号を入力することで観戦できます。なぜ「開催」メニューの中にあるのかは知りません。

5.対戦グループ番号を入力してOKを選択。入力する番号は、観戦したい対戦と同じ数字を最初の2桁に設定し、最後の1桁に「3」を入力しよう。観戦する人を増やす場合は、「4.5…」と最後の数字を増やそう。

とあるように、対戦者が3桁目に「1」「2」を入力していた続きで「3」以降の数字を入力していくと、そのSwitchで観戦できます。観戦者がマッチングすると対戦者の画面にもアイコンで表示されますので、それが確認できるのを待ってから対戦者はAボタンを押して対戦を開始できます。(※対戦の途中から観戦を開始はできないようですので、観戦者がマッチングするのを対戦者は待つ必要があります)

先述の総当たり戦ツールは観戦のグループ番号にも対応しており、観戦したい対戦にある観戦者の名前のグループ番号を入力することで、好きな対戦が観戦できます。

あとは手順3と4を対戦回数ぶん繰り返せばOKです。

ライブ大会の仕様

基本的には、ライブ大会ではオンラインランクマッチ等の対戦と同様の事ができますが、細かい所に一部違いがあります。

・対戦ルールをダウンロードすることで、ライブ大会でもオンラインランクバトル等とほぼ同じルール(レベル50フラット等)で対戦できますが、一部対応していないルールがあるようです。具体的には「2020年1月のランクマッチ(シリーズ2シーズン2)」のルールは使えますが、「2020年2月からのランクマッチ(シリーズ2シーズン3)」には対応していないようです。シリーズ2シーズン3のルールは、対戦の総合時間が15分から20分になっているという違いがありますが、ライブ大会で対戦時間を20分にすることはできません。

・後述するライブ大会の観戦機能を用いて、大型ディスプレイ等で対戦者が観戦画面を閲覧できるようにすると、普段は得られない対戦中の情報が一部漏洩します。具体的には「対戦中に両者のHP実数値が見える」ため、豊富な知識を持ったプレイヤーならばそれで対戦相手が搭載する技などの型を判別するヒントになってしまうと思います(参考: 191ガブとか201ガブとかの調整)。また当然ながら、後から対戦するプレイヤーが観戦画面を見ていると、対戦中に使われていた技・道具などの情報が漏洩します。

以上です。もしライブ大会を使って大会を開催しようとしている人がいるならば、本稿の情報をもとに事前に一度複数人でSwitchを持ち寄って、ライブ大会の使い方について予行演習をしておく事を強くおすすめします。

参考文献

ポケモン剣盾 オフ大会配信の課題と解決策|A/omi|note
C#で総当たり戦の日程を作成する:Gushwell's Dev Notes
リーグ戦の組み方-SporT! & HSbad


この記事が気に入ったらサポートをしてみませんか?