保険について

家の前に灯油を撒かれた状態で入れる火災保険、海賊に接舷されたあとでも加入できる船舶戦争保険、殺害予告を各所に送ってから契約可能な個人賠償責任保険(故意に損害を与えた場合も補償される)。そのような保険が存在したら驚く。保険数理士の計算によれば、加入が断られるはずなのに!

「この状況で入れる保険があるんですか?!」は危機的な状況を表現できるが、その1点以外ではまったく妥当な発言ではないので面白いのではないか。

まず、対処しようとしている危険は、通常保険で対応しようとするタイプのリスクでない。また、保険に加入して損害が金銭的に補償されるとしても、リスク自体を回避できていない。たとえば、死んだ後で補償されても意味がない。しかしこれは、一部に、どうしても生命保険の意味が理解できない人がいるのと同じ種類の問題ではある……。

また、「この状況で入れる保険があるんですか?!」の口調はCMを想起させるが、実際にはそのようなCMは存在しないし、あってもおそらく広告としての機能を果たせない。リスクが高い状況でも加入できる保険は、他に選択肢がない人には魅力的だが、その他の、リスクが低い人には、分が悪い賭けにしか映らない。生命保険に加入するなら、他の契約者がすべて不老不死の保険に入りたい。

このような理由でもって、「この状況で入れる保険があるんですか?!」は面白いのだと思いますが、それもせいぜい2、3回、目にするまでのこと。今となってはただの定型文、教養をひけらかすことにしかならないのだから、もっと面白い文句を見つけたいと思い、保険のCMを検索、視聴した結果、広告が保険ばかりになった。

話題

職場での雑談で話題をコントロールしようと思ったら、自分で切り出すしかない。「焼き肉の食べ放題についてなんですが」。多くの人は焼き肉を食べたことがあるし、自らの手で焼いたことがある人までいる。性別を持つ人も多い。とても参加しやすい話題だ。自分が切り出すのでなければ、話題をコントロールすることは出来ない。映画があまり好きではないので、映画の話になってほしくないな、と思っていても、映画の話になってしまうことはある。「でも、さすがに自分の好きな映画を悪く言われたら、なにか一言、言おうって気持ちになる人もいると思いますよ。もちろん、これはレオンのことですし、私はすべての映画を憎んでいるので本当には彼らの気持を理解できませんが……。」

これがインターネットになると、どの話題に参加しようが自由、コメントしたくなる話題を列挙する専用の画面から好きな話題に参加できる。という状態で沈黙しているわけだから、ただ沈黙していると言うよりは、欲求に抗って沈黙していると見るべきではないだろうか。以前、話題ごとに7つのアカウントを並行して運用している、と聞き、「へぇえ、すごいですね」と答えてしまったが、今だったら、「なるほど、それはいいアイデアですね」と感心するかもしれない。あらかじめ、反応する話題を決めておくことで、いらぬ迷いがへる。アカウントが一個だと、この話題に反応することが自分にとってどういう意味を持つのか、などと考えてしまいかねないが、7つもあれば一側面でしなく、そういうこともなさそうだ。ところで、もし事実が人の意見を変えないのであれば、何かをコメントするということは、実際に何かをしている、と言えるのだろうか? 支出を伴う消費や、投票は何かをしていると言えそうだが、それらと比較して。

スナップショットについて

映画にも小説にも、モノローグというものがあるが、あれは人の内面を正確に描いてないのではないか? 内容ではなく、形式が。だからといって、どう表現すれば正確なのかはよくわからない。言葉で考えているわけではないが、ドラマにおけるモノローグのように文章で考えをまとめることもある。

他人と話しているときに、事前に頭の中で発話してから改めて口にし直すということはしないので、考え > 文章にするステップとしては人と話すときでも、モノローグになるときでも同じようだ。他人に話すように、自分自身に向けて文章にする癖がある人は、ドラマのモノローグもそのようなものとして解釈できるのかもしれない。

ここに至るようなことを数十分は考えているが、対話ではないので文章がぐるぐる回るだけで広がりに乏しい。それでもいくらか、他にも考えたことはあるが、一応の筋道をつけて、関連する考えとして記述する手間が面倒という壁に突き当たっている。モノローグ的に浮かんだ文章が考えが簡略化、直列化されたスナップショットだとして、それを読んだ人が、そこから元の考えを再現する過程自体が面白い、ということがあり得るのではないか? (しかし、実際にそういう意味で面白さをもとめて文章を読むことはない) とか。

読む人にわかりやすく書くという手順は面倒なので省略して、後に自分が考えを再現できるように記述する、というのも、日常生活における写真と同じ程度の意味はあるのではないか? しかし、日常生活における自分の写真を撮り続けるという行為は一般的ではないし、自分もしていない。

最近の日々

小説とは、感情を書くのではなく、描写をするものらしいです。たとえば、「その報せを聞き、彼の腹筋は崩壊した」とか? 悲しいなら、悲しいと書いてくれたほうが誤解の余地の少ない、良い文章ではあると思うのですが……。しかし、良い形で運用されているXのアカウントにも同じようなことが言えるのではないでしょうか? 「アヒルが好きだ」ということを表現するために、数分ごとに「アヒルが好きだ」とポストするアカウント、アヒル好きであることについては明確ですが、正常なアカウント運用であるか、本当に人間なのか、に関しては疑う余地が残ります。繰り返し、アヒルへの好意をそのまま綴るより、毎日、絶えまなく発生するアヒルとの接点、そのたびにアヒルについてポストすることで、より自然にアヒルへの好意を表現できるし、フォロワーを困惑させることもない。アヒルとの(メディアを通した)接点が継続的に発生すること自体がアヒルへの<意志>、<姿勢>を感じさせる……。小説も同じなのでしょうか。「腹筋が崩壊した」と書いてあれば、腹部への強烈な打撃により断裂した腹筋と、上体を支えることも出来ずに、崩折れて絶望する様が思い浮かびます。

冷笑系」という言葉が罵倒として興味深いなと思ったのは、それが姿勢に関するものだからです。問題とも、関連する発言者とも距離を置き、仲間内への符丁めいたメッセージで笑う。そういった姿勢は、どんな意見を持つ人であれ、あるいは意見を持っていなくても、右の方でも左の方にもいる人ででも、とり得る。言及先へのメッセージという形態をとっていないので反応されづらい、安地から人を愚弄する。こういう舐めた態度の連中に貼るレッテルとして、使い勝手が良いし、絶対に人から冷笑系といわれたくない。なぜなら自分は熱い人間だから!!

しかし、メッセージを対象に向けて発するのではなく、仲間内で回すのは本当に良くないことだろうか。たとえば、いわゆる炎上は直接言及してしまう人たちが主に問題とされているわけだし、エゴサされても見つからないように検索避けした冷笑なら、より悪の度合いは低いとみなせるのでは? 話が進めにくいので、ここで、例として、きのこ vs たけのこを導入します。これは、インターネットで最も面白い対決であるとされているからです。孫にプレゼントするなら、きのこ、たけのこ、どっちが向いているのか?

冷笑系”と対照するために、”当事者”を考えてみたい。幼い頃、祖父からプレゼントされたきのこを食べたら、時間の感覚を失い、今も時系列で事物の前後が把握できない、という経験を持つ人は、他の人がきのこをプレゼントするのに反対するでしょう。きのこ派は、その例をN = 1として受け止めるかもしれませんし、実体験から生まれる圧倒的な説得力、物事の前後が把握できないというデメリットのあまりの大きさに震え上がって、たけのこ派に転向するかもしれません。

冷笑系”はきのこ派たけのこ派どちらにでも存在できますが、ここでは、その外にいる人、でどうでしょう。そもそも、きのこを選ぶか、たけのこを選ぶかについては個人の選択から発生する衝突が存在していないから対決する必要がない、ユーモアを発揮しているつもりでマーケティングに踊らされる人たち、愚か(冷笑)。のような。

そして、この当事者、冷笑系の違いを、4つに分けて考える。

  • 問題との距離 : 当事者(T)、非当事者(N)
  • 事実に関する情報の追加を含むか : 含む(I)、含まない(J)
  • 送付先 : 全体(O)、身内(P)
  • 意図 : 説得的(C)、攻撃的(A)

こうすることで、当事者は、TIOC、冷笑系はNJPAとアルファベット4文字で表記できるようになるので、bioに書いておくことでなにか話題となっている、意見の分かれるようなことについてとりがちな態度を明示できるし、効率よくしたいのであれば、この明示を持って言及をしたものとみなし、実際のポストを省略しても良い、むしろ望ましいとされる。

ポケモンユナイト競技的プレイヤーは三年でどれくらい入れ替わったのか

6/2に開催されたPJCS 2024でポケモンユナイト3年目の競技シーンが終了しました。大会の実況を聞いても、この選手は一年目から活躍している、このチームは去年から出てきた、など、選手が登場した世代、また世代の交代を意識することが増えています。実際、この三年でどのくらい選手が入れ替わったのかを調べてみました。

対象の大会

調査の対象は、ポケモンユナイト公式が開催した、以下の大会群とします。

年によって開催される時期、形式が異なりますが、年末にかけて行われるWinter Tournamentと、6月に決勝が行われるWCS予選の2つが大きな大会になります。

時期 分類 大会数 平均参加人数
'21 9/19 第0回公式オンライン 1 1,460
'21 12/4 〜 '22 2/6 Winter Tournament 2022 6 2,554
'22 2/26 〜 '22 6/19 WCS予選 2022 5 825
'22 11/12 〜 '22 12/18 Winter Tournament 2023 4 1,234
'23 4/9 〜 '23 6/10 WCS予選 2023 6 692
'23 11/5 〜 '23 11/12 Winter Tournament 2024 2 1,297
'24 3/30 〜 '24 5/12 WCS予選 2024 3 1,098

第0回公式オンライン以外は、これらの大会開催後に決勝大会を行っていますが、そちらは確実に参加者が重複しているため、予選に当たるオープン大会の参加者のみをカウントしています。

毎年、Winter Tournamentのほうが、WCS予選より参加者数が多いですが、これの理由はよくわかりません。大会の格としてはそれほど変わらないように見えるので、学生にとっては特にですが、生活に変化の多い4月をまたぐWCS予選より、冬にまとめて行われるWinter Tournamentのほうが参加しやすいのかもしれません。

参加者の分類

大会参加者を、初めて大会に参加した時期により、6つに分類します。この分類に関しては、上記の大会以外の、カジュアル大会、非公式大会を含んでいます。

ポケモンユナイトのリリースが'21 7/21なので、それ以降を12月末、6月末を区切りとして分類しています。

海外で開催された大会については除き、自分が収集している大会全ての参加者での比率を示すと以下のようになります。

大会初参加時期 人数
'21以前 4,711
'22上期 9,194
'22下期 4,043
'23上期 3,349
'23下期 2,504
'24以降 1,391

各大会の参加者

各大会の参加者を、初参加時期別に分類した表です。

大会 21以前 22上期 22下期 23上期 23下期 24以降 合計
第0回公式大会 1460 1460
Winter Tournament 2022 予選 3303 4371 7674
WCS 2022 予選 693 1629 2322
Winter Tournament 2023 予選 296 686 1460 2442
WCS 2023 予選 247 511 451 739 1948
Winter Tournament 2024 予選 186 391 321 303 650 1851
WCS 2024 予選 168 368 298 300 248 627 2009

縦に見ると、ある時期に大会参加を始めたプレイヤーが、どう変化していったかを追えます。'21年、リリース開始年に参加し始めたプレイヤーは、今年のWCS予選にも168人参加しています。最初のWinter Tournamentには3,300人ほど参加していたので、5%ほど残っています。

横に見ると、ある大会の参加者が、どの時期に大会に参加し始めたのか、を読めます。最新のWCS 2024予選では、'24以降に参加し始めた層が一番多いものの、それ以前に始めたプレイヤーも多く存在しているのがわかります。

一年目のWinter Tournamentの参加者が多すぎますが、それ以降は、既存参加者の減少を補うように新規にプレイヤーが参加しているように見えます。

このグラフは、スタックせずに、各時期からの参加者数の変化を描いています。どの時期に始めた層も、最初が一番多く、一年目は急激に、その後は緩やかに減少していきます。

各大会の上位入賞者

次の表は、各大会の上位(Top 8)チームのメンバーが、いつ大会参加し始めたかの表です。

1大会でTop 8に残るプレイヤーは 8 x 5 = 40人ですが、複数大会のTop 8プレイヤーから、重複を取り除いているため、大会数 x 40人にはなっていません。

大会 21以前 22上期 22下期 23上期 23下期 24以降 合計
第0回公式大会 42 42
Winter Tournament 2022 予選 141 65 206
WCS 2022 予選 71 39 110
Winter Tournament 2023 予選 37 50 61 148
WCS 2023 予選 63 60 36 28 187
Winter Tournament 2024 予選 19 25 16 6 11 77
WCS 2024 予選 22 34 19 12 8 6 101

先の表と見比べると、どの層がTop 8に多く残っているかがわかります。

WCS 2024 予選において、'21以前のプレイヤーは、168人参加し、22人がTop 8に残っているので、13%にあたります。'24以降のプレイヤーだと、627人が参加し、6人がTop 8に残っているので、1%です。当然のような気もしますが、古くから大会に参加しているプレイヤーの方が、良い結果を残しているようです。

参加者数に比べると、歴の長いプレイヤーを上位を占める傾向が強く、WCS 2024 予選でも、半数以上が、'22上期まで(リリース一年目)までに大会参戦を始めたプレイヤーです。

上位入賞者の初上位入賞時期

最後に、 大会を観戦している人の視点に近いものを調べるために、 各大会の上位入賞者が、「初めてTop 8に入賞した時期」を基準に分類してみました。

大会 21以前 22上期 22下期 23上期 23下期 24以降 合計
第0回公式大会 42 42
Winter Tournament 2022 予選 104 102 206
WCS 2022 予選 41 69 110
Winter Tournament 2023 予選 22 34 92 148
WCS 2023 予選 35 56 41 55 187
Winter Tournament 2024 予選 10 22 18 13 14 77
WCS 2024 予選 13 24 27 20 8 9 101

WCS 2024 予選で、過去にTop 8に入賞したことがなかった人は9名です。この中には、プレイヤー名を変えるなどしたために自分が追跡できていないプレイヤーも含まれているであろうことを考えると、WCS 2024 予選でTop 8に残ったのはほとんどは、すでに実績を持つプレイヤーであったと言えそうです。

ポケモンユナイトの大会一年目を振り返る(3)

ポケモンユナイトの大会にはチームを組んで出場するわけですが、チームの編成は非常によく変わります。

WCS地域代表決定戦

WCSの地域代表決定戦は、最終的には24チーム参加の大会結果で決まったのですが、24チーム中8チームはそれまで2月から毎月行われた大会で獲得したポイント上位のチームでした。しかし、5ヶ月間でチーム編成が変わるであろうことを見越していたのか、各月の大会で付与されるポイントは各プレイヤー単位に割り振られていました。それ故、地域代表決定戦のポイント上位枠に、過去に一度も大会へ出ていないチームがあったりしたわけですが、それらのチームはプレイヤーそれぞれが、過去に違うチームで大会に出場してポイントを獲得していたわけです。

というのが、パッと見てわかるような図がかけないかと思って試したのが下の図です。

WCS地域代表決定戦24チーム変遷

二重枠となっているのが6月の地域代表決定戦の最終24チームに残ったチームです。どこからも矢印が引かれていないチームは、メンバーの移籍がないまま、予選を勝ち抜いたチームですが、かなり少なく、多かれ少なかれ、5ヶ月の間にチーム間を異動したり、有力なチームが解散してそれぞれが別のチームを結成したケースが多かったのがわかるかなと思います。

ポケモンユナイトオールスタートーナメント

7/23以降に試合が開催されるポケモンユナイトオールスタートーナメントは、メンバーをドラフトで選んだため、これも図にしてみました。

これだけだとわけがわからないと思うので、1チームずつ作ったものを以下に置いておきます。

ポケダン

ユナイトオールスター【公式】

LoL老人会

ムクタリアン伝説~フルパもできるもん~

ぴよちーず

OTP全二軍団

🎀実はチェキ最強なので🎀

ぷいっと!よもぎぱん

ポケモンユナイトの大会一年目を振り返る(2)

プレイヤー単位でどのような分布になってるかを見ていこうと思います。

先に、viewを作っておきます。

SQL

select members.player                                as player,
       COUNT(matches.winner_key = teams.key or null) as win,
       COUNT(matches.loser_key = teams.key or null)  as lose,
       COUNT(*)                                      as total,
       AVG(ratings.rating)                           as rating
  from members
 inner join teams on members.tournament_key = teams.tournament_key and members.team_key = teams.key
 inner join tournaments on teams.tournament_key = tournaments.key
  left join matches on teams.tournament_key = matches.tournament_key and teams.key IN (matches.winner_key, matches.loser_key)
  left join ratings on members.player = ratings.name and ratings.latest = 1
 group by player

大会参加数

大会参加回数 / 人数

大会に参加した回数がN回以上のプレイヤー数です。大会に一度だけ参加したプレイヤーが半数以上です。

SQL

select a.tournament as "参加回数", sum(b.count) as "プレイヤー数" from
  (select tournament, COUNT(*) as count from players group by tournament) a
  inner join (select tournament, COUNT(*) as count from players group by tournament) b
     on a.tournament <= b.tournament
group by a.tournament;

大会参加回数 / 勝率

大会参加数別に、勝率を集計しました。こちらは、上の図と違い、N回以上ではなく、N回出場したプレイヤーの勝率です。大会出場数が多いほうが平均して勝率が高く、18回以上のプレイヤー(30人程度)は、75%前後あります。

SQL

select a.tournament as "参加回数", floor(avg(a.win) / avg(a.total) * 100) as "勝率" from
  (select tournament, SUM(win) as win, SUM(total) as total from players group by tournament) a
  inner join (select tournament, COUNT(*) as count from players group by tournament) b
     on a.tournament <= b.tournament
group by a.tournament;

勝敗

勝利数 / 人数

プレイヤーの勝利数別人数です。およそ1/3のプレイヤーは0勝で、2勝以上出来ているのはプレイヤーは1/2以下です。

SQL

select a.win as "勝利数", sum(b.count) as "プレイヤー数", floor(sum(b.count) * 100 / 13236) as "割合" from
    (select win, COUNT(*) as count from players group by win) a
        inner join (select win, COUNT(*) as count from players group by win) b
                   on a.win <= b.win
group by a.win;

プレイヤー勝敗数プロット

各プレイヤーの勝敗をプロットしてます。XとYでスケールが違う + 左下に要素が寄りすぎてわかりにくいですが、左下以外では勝利数が敗北数を上回るプロットになってるのが解ると思います。

これはゲームの性質と言うよりは、主にシングルエリミネーションダブルエリミネーションで大会が行われていたのが理由になります。シングルエリミネーションでは1敗、ダブルエリミネーションでは2敗した段階で大会終了となるため、敗北数は伸びにくく、勝利数が、一部の強いプレイヤーに集まりやすくなります。

SQL

select win || '勝-' || lose || '敗(' || count(*) || ')', win, lose, count(*) from players
group by win, lose;

勝利数別敗北数内訳

上の図では勝利数/敗北数が少ない範囲での内訳が分かりづらいため、10勝以下の敗北数内訳を見てみます。

SQL

select win,
       sum(case when lose = 0 then 1 else 0 end) as l0,
       sum(case when lose = 1 then 1 else 0 end) as l1,
       sum(case when lose = 2 then 1 else 0 end) as l2,
       sum(case when lose = 3 then 1 else 0 end) as l3,
       sum(case when lose = 4 then 1 else 0 end) as l4,
       sum(case when lose = 5 then 1 else 0 end) as l5,
       sum(case when lose = 6 then 1 else 0 end) as l6,
       sum(case when lose = 7 then 1 else 0 end) as l7,
       sum(case when lose = 8 then 1 else 0 end) as l8,
       sum(case when lose = 9 then 1 else 0 end) as l9,
       sum(case when lose > 9 then 1 else 0 end) as l10over
from players
 where win <= 10
 group by win;

プレイヤーグラフ

大会実績の高いプレイヤー200人位を、過去にチームを組んだプレイヤーとのネットワークグラフにしてます。

一部、通常と異なるチームを組むことが参加要件となっている大会(ユナイトAST、ポケモン甲子園)を取り除いたデータを元にしています。

独立した五角形となっているプレイヤーは完全に固定されたチームですが、多くのプレイヤーが複数のチームで参加していたようです。

SQL

-- links 全部
select a.player, b.player, count(*) from players a
  join members am on a.player = am.player
  join teams t on am.tournament_key = t.tournament_key and am.team_key = t.key
  join members bm on bm.tournament_key = t.tournament_key and bm.team_key = t.key
  join players b on b.player = bm.player
 where a.rating > 1650 and b.rating >= 1650 and a.player <> b.player
 group by a.player, b.player; 
-- points
select player, floor(rating / 45) - 35
from players where rating >= 1650; 
-- links AST等抜き
select a.player, b.player, count(*) from players a
join members am on a.player = am.player
join teams t on am.tournament_key = t.tournament_key and am.team_key = t.key
join members bm on bm.tournament_key = t.tournament_key and bm.team_key = t.key
join players b on b.player = bm.player
where a.rating > 1650 and b.rating >= 1650 and a.player <> b.player and t.key not in ('koushien_01', 'uast')
group by a.player, b.player;