月を眺める孤島

多分デレステとポケモンの話がメインのブログです

【剣盾】第8世代の色違いポケモンの情報まとめ

こんばんは、むぅんです。
発売され間もなく1週間が経とうとしているポケットモンスターソード・シールド(剣盾)ですが、色違いポケモンに関してググっても「現在調査中」「過去作ではこうだったから今作もこうである可能性も?」的な記事ばかりヒットしてキレたので現時点で判明している情報をまとめたいと思います。なるべく詳細な情報を載せるようにしているので文章量が多いのはご了承ください。


f:id:shinemoon227:20200111224715p:plain


今作は色違いの光り方が2種類存在する


まずは何と言ってもこれでしょう。初めて情報を見たときは度肝を抜かれました。どうやら今作は同じ色違いポケモンでも、繰り出したときの光り方にレアなパターンが存在するようです。
全世界でこれだけ多くの人がプレイしているにも関わらず、初めて大きく取り上げられたのが発売から6日も経ってからというところからもその希少さが分かります(そもそもこれまでポケモンで遊んだことがある人は光り方が違うという発想がないため、レアなパターンを運良く引いた人も「今作はこういう光り方なんだな」としか思わなかったことが要因だとは思いますが)。

光り方は星のエフェクトが出てくる従来のもの(形状は第3世代のものが最も近いです)と菱形のエフェクトが出てくる全く新しいものの2種類です。便宜上、ここでは前者をスターエフェクト、後者をスクエアエフェクトと呼称します。


f:id:shinemoon227:20200111220118p:plain
従来の光り方に近いスターエフェクト

f:id:shinemoon227:20200111220242p:plain
これまでにない光り方をするスクエアエフェクト


肝心の出現率ですが、そもそもの色違いの出現率が  \cfrac{1}{4096} であるのは前作同様で、更に  \cfrac{1}{16} の確率でスクエアエフェクトになるようです。すなわち、スクエアエフェクトの色違いの出現率は  \cfrac{1}{65536} ということになります。これはポケルス感染率のちょうど  \cfrac{1}{3} であり、☆3レイドのメタモンが6Vである確率ですらこれの2倍であることから如何に低確率であるかが分かります。



ところが、バグにより野生ポケモンの場合のみ意図した通りの確率になっておらず、スターエフェクトとスクエアエフェクトと出現率が逆転するどころかスターエフェクトは殆ど出現しないそうです。その確率はスクエアエフェクトが  \cfrac{65521}{65536} 、スターエフェクトが  \cfrac{15}{65536} となっており、野生でスターエフェクトの色違いと遭遇する確率は約  \cfrac{1}{17895697} という自然遭遇で5Vを引き当てるより3倍ほども難しい信じられない極低確率となります。これが具体的にどれくらい低い確率か想像もつかないとは思いますが、1回のエンカウントに20秒かかると仮定した場合、休憩なしで24時間365日プレイし続けても出会えるまでに平均で11年4ヶ月かかるといえばある程度その確率の低さは伝わるでしょうか。ちなみにその過程で、剣盾のボックスを野生産の色違いだけで平均で4回以上隅から隅まで埋められるくらいに色違いと遭遇することになります。
やっていることは2つのROMで同時に色違いを出しているようなものなので、もし遭遇した人は何が何でも捕獲しましょう。マスターボールはこういうときのためにあります。
余談ですが、もちろんひかるおまもりの効果は乗るので、それを持っていれば確率は約3倍の  \cfrac{1}{5966689} にまで上昇します。先程同様、20秒おきにエンカウントを繰り返すと平均でおよそ3年9ヶ月に1匹は出会うことができる計算となります。



ここからは少し難しい話になるので読み飛ばしてもらっても構いませんが、光り方の決定方法についても書いておきます。
まず、ポケモンが色違いになるかどうかはトレーナーID(TID)ポケモンが持つ32bitの固有の値(性格値、PID)によって決定されます。

x = TID上位16bit XOR TID下位16bit XOR PID上位16bit XOR PID下位16bit

という計算を行った後、  0 ≦ x ≦ 15 であれば色違いになります。16bitの値どうしでXORをとっているため  x が取りうる値は  65536 通りありますが、そのうち色違いとなるパターンは  16 通りなので、  \cfrac{16}{65536} = \cfrac{1}{4096} という確率になるわけです。一方、スクエアエフェクトになる条件は  x = 0 であることなので、  \cfrac{1}{65536} という極低確率になるようです(これはTIDとPIDの上位16bitと下位16bitがそれぞれ完全一致していることを意味します)。また、野生で出会ったときに限っては上記ツイートで"forced shiny"とされている判定が  \cfrac{4095}{4096} の確率で発生し、そのときに強制的に  x = 0 となるようなPIDに書き換えられるためスターエフェクトが異常なほど出にくくなります。

これは推測ですが、"forced shiny"とは「色違いでなければならない」状況であるにもかかわらず  0 ≦ x ≦ 15 を満たさなかったときに色違いに矯正する処理のことで、本来であれば  0 ≦ x ≦ 15 であるいずれかの整数にランダムにしなければならないところを  x = 0 で固定してしまったが故に起きたバグではないでしょうか。もしこの処理がランダムになれば"forced shiny"がされていようがいまいがエフェクトの出現比は常に  15:1 となるはずです。

確率を上げる手法はバグで台無しになっていた


毎度恒例の色違い連鎖は今作でも存在していますが、バグで殆ど意味のない状態になっているそうです。詳しくは後述します。


f:id:shinemoon227:20191121035230p:plain
逃げるだけでは戦った数にカウントされない

今作はORASのサーチレベルのように、図鑑に「戦った数」という項目が存在します。ORASではサーチレベルが上昇するにつれずかんナビのサーチで色違いが出現する確率が上がっていましたが、それと同様に戦った数が増えればその分色違いの遭遇率が上がるようです。戦った数はサーチレベルと異なり逃げるだけではカウントされず、倒すか捕まえることで初めてカウントされます(倒すのはトレーナーのポケモンでも可)。

その遭遇率は何と海外の公式サイトで公表されています。ここまで具体的な情報が公式から出てくるのは初めてなので大変驚かされました。


www.pokemon.com


公式ではこの他にもオーラポケモン個体値が何箇所かVであったり、Lvが通常よりも高いオーラを纏ったポケモン)の出現率補正についても書かれていますが、ここでは色違いに関する補正だけを抜粋します。なお、出現率は目安です。


戦った数 判定回数 おまもりなし おまもりあり
0~49 +0 1/4096 1/1365
50~99 +1 1/2048 1/1024
100~199 +2 1/1365 1/819
200~299 +3 1/1024 1/683
300~499 +4 1/819 1/585
500~ +5 1/683 1/512


公式では「n倍」のような表記でしたが、これまでのポケモンからして「n-1回判定を増やす(PIDを生成し直す)」という処理になっているのはほぼ間違いありません。ひかるおまもりの処理も当然ここに乗ってくるはずなので、色違いの出現率は最大で  \cfrac{1}{512} でしょう。しかし、前述の通りORASのように孵化では戦った数を稼げないほか、ORASと違いサーチのような確実に特定のポケモンに出会う方法も存在しないため、エンカウント率の低いポケモンを野生で光らせるのは現実的ではありません。よって、今作から追加されたあかしを付けたい方や、ほぼ確実にダイヤパターンが欲しい方以外は素直に国際孵化を行ったほうが良いでしょう。


…というのが公式の情報でしたが、実はバグによりこの処理は最大でもたった3%の確率でしか発生しません。すなわち、ポケモンを倒し続ける意味はほとんどなかったと言えます。以下に最終的な出現率を示します。








戦った数
ボーナス発生率
おまもりなし
おまもりあり
0~49 0.0% 1/4096 1/1365
50~99 1.5% 1/4035 1/1359
100~199 2.0% 1/3939 1/1348
200~299 2.5% 1/3810 1/1332
300~499 3.0% 1/3657 1/1313
500~ 3.0% 1/3562 1/1301


流石にこれは低すぎますね…。ひかるおまもりを既に持っていた場合、500回もポケモンを倒しても確率にほぼ変動はありません。先日ガラルヤドンの実装のために行われた最新のアップデート(1.1.0)でもこのバグは修正されなかったようですが、前述のエフェクトの比率がおかしいバグ含め早めに修正されることに期待します(後者は孵化と住み分けできているため  15:1 1:15 と反転するくらいならむしろアリな気はしますが)。



【11/12追記】
発売からもうすぐ1年が経過しますが、冠の雪原が配信開始されてもなおこの確率は修正されておらず、現在では仕様と考えられているようです。海外公式サイトではそのことに一切触れていないことが混乱を招いたのは間違いないと思われるのですがそちらは修正されないのでしょうか…。

リーグカードに色違いを見つけた数が記載される

f:id:shinemoon227:20200111230745p:plain
いつかはコンプリートする人が出てきそう


今作は色違いを見つけた数(種類)がリーグカードに記載されるようです。とんでもない廃人項目ですが、このように数字で「何種類捕まえた」という情報が具体的に出るとなると、いつかは395種類というスクショが出回る日が来そうな予感がします。

捕まえることができないポケモンは光らない



ワイルドエリアでは序盤でも非常にレベルの高いポケモンと出会うことができますが、あまりに戦力差があるとボールを投げることができません。そのようなポケモンにはブロックルーチンがかけられており、光ることはないようです。

国際孵化の判定回数は前作と同じ



今作でも国際孵化の判定回数は+6回で前作と同じようです。ひかるおまもりと併用することで最大約  \cfrac{1}{455} となります。
とここまで書いて思ったのですが、前作は+5回だったような気がするのですが気のせいですかね…?

【追記】ときどきこのブログを閲覧した方が「今作は判定回数が増えた?」とつぶやいているところを見かけましたが、原文では"same as before"(以前と同じく)と書かれていることもあり、個人的には前作と変動はないと思っています。単純に+5回と書くべきところを+6回と書き間違えたのではないでしょうか…?(ちなみに前作が+5回なのはほぼ確定です)

SV法や固定孵化法が使えなくなる



第6世代以降一部界隈で流行っていたSV法(TIDとPIDの上位12bitと下位12bitでXORを取ったものをそれぞれTSV、PSVと呼称し、PSVとマッチングしたTSVを持つトレーナーにタマゴの孵化を代行してもらい色違いを確実に生む方法)が使えなくなりました。最も、かなりグレーな方法であったため仕様変更は仕方ないともいえます。なお、この仕様変更はSV法を潰すためのものでなく、意図されずたまたまこうなったものであるそうです。その代わりに、今まで他人に孵化前の色違いのタマゴを渡すことで通常色になっていたこともなくなりました。これにより、今まで(滅多なことでは)できなかった孵化代行が容易に行えるようになりました。
それよりももっと大きな仕様変更は固定孵化法が使えなくなった(発見されていないだけ?)ということです。これまでタマゴの受け取りを拒否し乱数をずらすことで、隠れ特性や性別などをある程度選択することができていましたが、今作からはそれができなくなりました。幸いなことに孵化にかかる時間は過去最速であるので、お目当ての個体でなかった場合は素直に孵化しなおしましょう。今作はめざパもないですしね。

ブロックルーチンは健在

今作にもやはりブロックルーチンは存在します。いつも通りザシアンやザマゼンタ、ムゲンダイナといった禁止伝説は光らないほか、タイプ:ヌルやヒトカゲ、エレズンのような他人から貰うポケモンも光ることはありません。そればかりか、今作は最初に貰える御三家すらも光らないということで、色違いガチ勢に絶大なショックを与えることになりました。当然タマゴから生まれる個体にブロックルーチンはかかっていないため入手自体は可能ですが、それでもショックは大きかったようです。色違い個体で冒険をしたい人には辛い仕様変更でした。
なお、化石から復元できるポケモンたちはタマゴを生むことができず実質準伝説枠のようになっていますが、こちらは色違いを入手することができます。化石の入手もバージョンによる出やすさはあるもののそれほど困難ではないため、まとめて復元して厳選するのも良いでしょう。過去作ではひかるおまもりの適用外だったためそこには注意が必要かもしれませんね。

マックスレイドバトルでも色違いは出現する

f:id:shinemoon227:20200102113557p:plain
通常通り出現したときに光り輝くので判別は容易


マックスレイドバトル、特にキョダイマックスポケモンであっても色違いは出現するようです。現状出現率が上がっている一部のポケモンを除き、キョダイマックス個体の出現率は特定の巣穴の紫の柱から5%または10%というとんでもない低確率であるため、筆者も殿堂入り後毎日全ての巣穴を確認しているにも関わらずこれまで自然湧きしているところすら見たことないほどです。幸運にも出会うことができた方は後述する方法で複数体所持するのも1つの手かもしれません。特に人気の高そうなキョダイマックスリザードンは前述の通り、ホップから貰えるヒトカゲにブロックルーチンがかけられているため入手はここでしかできません。
なお、執筆時点で出現率の上がっているポケモンソードでセキタンザンとアップリューシールドでラプラスとタルップル両バージョン共通でマホイップとなっています。恐らくこれらのポケモンが再ピックアップされることはないはずなので、どうしても色違いが欲しいなら何が何でも今のうちに捕獲しましょう。

そんなレイドでの色違いですが、戦闘開始前から既に色違いかどうか(および性格や個体値、特性など)が確定しているばかりか、マルチで挑んだ場合ホストに依存してゲストの分も全員色違いになる仕様だそうです。すなわち、ホストが捕獲することなくレポートを書く前にソフトを終了すれば日付が変わりさえしなければ色違いの個体を量産できるということになります。ここで思い出してほしいのが、冒頭に触れたように「色違いかどうかはトレーナーのID(TID)とポケモンのID(PID)で決まる」仕様であるということです。レイドは捕まえた各個人が親になる仕様ですので、親が異なる状況で全員が光るとはどういうことだ…?となって調べたところ、TIDに合わせてPIDを強制的に色違いとなるように書き換えることでこの問題を解決しているそうです。すごい。



PIDは上位16bitと下位16bitに分けられてXORされますが、この内の片方をPIDとXORを取ったときに15以下に収まるような値に変更するそうです。XORという演算は任意のビットを好きなように変更できるものなので、この方法で上手くいくのですね。


ちなみに、1/4までの期間限定で色違いのコイキングが超高確率で出現する夢のようなキャンペーンも開催されていました。詳細は以下よりどうぞ。

shinemoon227.hatenablog.jp




ひとまず現時点で分かっている情報はこれくらいです。また何かあれば追記します。

階段トリルの取り方について

こんばんは、むぅんです。

質問箱に階段トリルの取り方に関する質問があったのですが、長文になりそうだったのでこちらで回答させていただきます。

peing.net



階段トリルはあんきらやそばつゆのMAS+に出てくる以下のような配置を想定していますが、もし違っていた場合は後でこっそり質問箱で教えてもらえると助かります。
一応当記事で話すポイントは階段トリルに限った話ではないのである程度は参考になると思います。


f:id:shinemoon227:20191003215143p:plain
あんきらのコンボカッターとして知られる配置


どうミスしているかを知る

階段トリルに限らず、これが最も大事なことです。自分の手元を録画できる環境を用意するのが望ましいですが、それが不可能ならこれから挙げるミスのうち自分がどれに当てはまっているのか考えながらプレイしてみてください。

そもそも追いついていない

まずは簡単なトリル(レーンを移動しない)を考えてみましょう。机の上で構わないので、階段トリルと同じ速さで5秒ほど指を左右交互に叩いてみてください。明らかに速さが足りていなかったり、途中で疲れて段々指が追いつかなくなる感覚がある場合はトリル以前の問題です。BPMが近い楽曲や高密度な譜面で練習することで地力をつけることをオススメします。

押す場所を間違えている

これが最も多いミスの原因になります。繋がらないんだから押し間違えているのは当然だ、と思うかもしれませんが意外と大事なことです。階段トリルは指を激しく動かす上、左手で左側、右手で右側を叩くという普段当たり前のように行っている分担を無視し普段左手(右手)で押さない範囲のノーツを押していることがミスに繋がる原因の一つです。
このような配置でもミスをしにくくなる一番の方法はとにかく画面をしっかり見ることです。自分が難所だと思っている配置は、変に力んだり癖がついてしまったりして画面を凝視しておらず若干適当に叩いてしまっている人がいます(自分はそうでした)。画面をしっかりと見て押す場所を把握すれば、それだけ押し間違いは少なくなります。
また、普通音ゲーでは画面の上の方を見ることが大事であるとされています。これはもちろん間違いではないのですが、僕は癖がついてしまった難所に関していえばむしろ若干下側(押す場所に近いほう)を見るほうが良いと考えています。更にそれだけではなく、指を見ることも大切です(指を凝視していてはノーツが見えないので視界に多少入れる程度です)。これらを意識すれば確実にミスは減るかと思います。

次に来るノーツに気を取られている

以下の画像を見てください。Near to YouのMASTER+に出てくる階段トリルです。


f:id:shinemoon227:20191003224221p:plain
個人的にそばつゆ一番の難所


この階段トリルの後にはフリックが控えていますが、間髪入れずに流れてくるためフリックを意識しすぎて階段トリルがおざなりになってしまっているケースがあります。トリルはトリル、フリックはフリックとしてしっかり分けて考えることでフリックにつられないようにしましょう。

無理して複数の指で繋ごうとしている

置きプレイの場合、人差し指だけでプレイするより中指も用いて4本指でプレイしたほうが楽に取れる配置は数多く存在します。しかし、階段トリルで複数の指を用いるのは個人的にはあまりオススメしません。
そもそも中指を使う一番のメリットは中心から離れた1や5(叩く場所を左端から順に1, 2, 3, 4, 5とする)のノーツに簡単に指が届くことです。上手く中指が使えれば、例えば4と5を交互に押すような配置は腕を動かさずにただ人差し指と中指を交互に動かせばよいのでミスの数はぐっと減ります。一方階段トリルの場合、前述したとおり端から端まで指が大移動し、しかも左右をそれぞれの腕で分担しない配置なのでかえって混乱するだけです。階段トリルに限りませんが、なかなかうまく行かない配置は中指を無理して使おうとせず、人差し指だけでどうにかならないか挑戦してみても良さそうです。

その他の対策法

速度を変えてみる

自分にあった速度でプレイするのはとても大事です。個人差がありすぎるので一概に言えませんが、速度を上げたり下げたりして様子を見るのも良いでしょう。その際、一回速度を変えただけでは(よほどその速度が自分に合っていたとかでもない限り)普段のプレイより劇的に改善されることはありません。数回挑戦してみて、普段の慣れている速度でのプレイより上手くなったと感じた場合はその速度で挑戦してみましょう。

ミラーをかけてみる

ミラーをかけるとあっさり繋がることは意外と多いです。右手始動か左手始動か、また右に向かって移動するか左に向かって移動するかによってそれぞれ向き不向きがあります。あんきらのような折り返す配置は一見ミラーの意味がないように思えますが、ノーツの始点がめまぐるしく変わる(=真っ直ぐ飛んでこないために軌道が読みづらい)配置のためミラーをかけると見え方が変わって押せるようになることもあります。

まとめ

気付いたら2500文字以上も書いていました。あまり読み返していないため間違い等あれば遠慮なく教えて下さい。

階段トリルはかなり難しい配置ですが、この記事を通して少しでも得意になっていただければ幸いです。

2019年9月のデレステ宝くじシミュレータを作ってみた

f:id:shinemoon227:20190822000928p:plain

4周年は去年より明るいイメージ?


いつものやつです。今回は報酬に変更がないばかりか当選本数にも一切変更がないので前回の宝くじと実質同一のものです。宝くじキャンペーンは今回で6回目ですが、どうやら周年記念の宝くじは年末のものと同一の報酬で固定のようです。
今回貰えるチケットの総数はデフォルトで35枚に設定してあります。これは、次回イベントが8/31から9/8まで開催されると仮定したときの枚数となっています。チケットの枚数が確定次第変更したいと思います。


当選本数一覧 本数
1等 1本(変更なし)
2等 1000本(変更なし)
3等 3000本(変更なし)
4等 25000本(変更なし)
5等 750000本(変更なし)
6等 2500000本(変更なし)
7等 5000000本(変更なし)
8等 7500000本(変更なし)
9等(※) 無制限(変更なし)

(※) PLvが20に達しておらず、2ndパネルミッション未開放のプロデューサーは必ず当選


※実際の宝くじはシミュレータによって得られた通りの結果になるとは限りません。使用は自己責任でお願いします。


下のテキストボックスに全プロデューサーおよび自分が所持しているチケットの総数を入力してください。ただし、他人が持っているチケットの総数は分からないので入力するのは推定値となります。参考までに、デフォルトで入力されている15779001枚が8等までの総数です。それより多く設定すれば9等が当選するようになり、それより少なく設定すれば上位の当選確率が上がります。極端な話、上も下も39枚に設定すれば自分で39枚しかないチケットを全て独占している状態になるため1等が確実に当選します。
なお、ここで入力した値には9等しか当選しない(8等以上が当選する条件を満たしていない)チケットは含まれません。

「1回戻る」ボタンにより、宝くじの抽選結果を10回まで巻き戻すことができます。ただし、チケットの枚数を変えてしまった場合は正しく巻き戻せません。
「プラチナ宝くじを引く」ボタンを連打している際に2等などの良い結果をスルーしてしまった際の保険としてお使いください。



全プロデューサーが所持しているチケットの総数:
      自分が所持しているチケットの総数:





15人ライブでのアイドルの並べ方は何通り?

こんばんは、むぅんです。

突然実装されたGRAND LIVE、譜面やPRPの大幅更新など様々な点で大いに盛り上がったのではないでしょうか?
その中でも今回注目するのはMVになります。

f:id:shinemoon227:20190701170911p:plain


アイドルが15人並んでいる光景をデレステで見られる日が来ようとは…。
こちらのMVですが、今までのMVとは比にならないほどアイドルの並べ方があることは直感的にわかるかと思います。では、アイドルの並べ方は一体何通りあるのでしょうか?今回はそのパターン数を計算していきたいと思います(普通に計算ミスがありそうなので、間違いに気付かれた方はコメントでお知らせください)。


普通にアイドルを並べるパターン

まず、衣装を考慮しない純粋なアイドルの並べ方を計算していきます。  n 人のうち  r (n \geq r \geq 0) を並べるパターンは左端から順に  n 通り、 n-1 通り、 n-2 通り…、 n-r 通りであるため、全部で  _n \mathrm{P} _r 通りとなります。今回考えるのはMVの配置なので組み合わせ  _n \mathrm{C} _r ではないこと、またデレステの仕様上同一アイドルの重複もないことに注意してください。  n=190 r=15 より  _{190} \mathrm{P} _{15} を計算すると、その結果は86溝894穣3978杼3624垓3042京8493兆8084億8844万8000通りとなります。もう既に桁数がおかしいことになってる気がするんですが大丈夫ですかね???


f:id:shinemoon227:20190703215727p:plain
nPrの計算例(左に1人配置すると右には残った2人しか置けない)


衣装も考慮したパターン

続いて衣装も考慮して計算を行います。衣装に関しては2019年7月1日時点で実装されているものを対象とします。
現時点で誰でも着ることのできる共通衣装はスターリースカイ・ブライトやアクロス・ザ・スターズなど無料で手に入るものや、パーティータイム・ゴールドのように有料のもの、更に特殊なものとしてシンデレラドリームを合わせると全部で  7 種類存在します。これらは全員着られるため  190 \times 7 = 1330 通りになります。更に特定のアイドルしか着ることのできない専用衣装(いずれも有料)が  12 種類存在しますが、これらはユニット単位で実装されているので基本的に着ることができるのは  5 人です。例外としてマーチング☆メロディーズだけは  18 人が着ることができるので、合計で  11 \times 5+18 = 73 通りです。そこに現時点で  264 種類実装されているSSRの衣装を加えると、衣装の総数は  1330+73+264 = 1667 通りとなります。このまま  _n \mathrm{P} _r を計算したいところですが、実はこれではうまく計算できません。前述した「同一アイドルの重複が許されない」という制約があるためです。


f:id:shinemoon227:20190704002523p:plain
同一のアイドルは編成できないためnPrでは計算不可


(例) 3人の中から2人を並べる

例としてアイドル  \mathrm{A}, \mathrm{B}, \mathrm{C} 3 人の中から  2 人を並べる場合を考えてみます。なお、アイドル  \mathrm{A} 3 種類、  \mathrm{B} \mathrm{C} 2 種類の衣装を着ることができるとします。
まず、衣装を考えずにアイドルを並べるパターンは先程同様  _n \mathrm{P} _r で求められるので  _{3} \mathrm{P} _{2} = 6 通りとなります。全て書き並べると  \mathrm{AB}, \mathrm{AC}, \mathrm{BA}, \mathrm{BC}, \mathrm{CA}, \mathrm{CB} ですね。
この中で、  \mathrm{AB} という順でアイドルが並んだとき、衣装の組み合わせは何通りになるでしょうか?アイドル  \mathrm{X} k 番目の衣装を着ている状態を  \mathrm{X} _k と表すと、  \mathrm{A} _1 \mathrm{B} _1, \  \mathrm{A} _1 \mathrm{B} _2, \  \mathrm{A} _2 \mathrm{B} _1, \  \mathrm{A} _2 \mathrm{B} _2, \  \mathrm{A} _3 \mathrm{B} _1, \  \mathrm{A} _3 \mathrm{B} _2 6 通りです。同様に他の組み合わせも計算すると、  \mathrm{AC}, \mathrm{BA}, \mathrm{CA} もそれぞれ  6 通り、  \mathrm{BC}, \mathrm{CB} はそれぞれ  4 通りとなります。全てを合計すると  4 \times 6 + 2 \times 4 = 32 通りが求めたい値となります。


f:id:shinemoon227:20190704010756p:plain
アイドルの各組み合わせごとに衣装の数の積を計算する必要がある



先ほど出てきた  6 通りという数は、アイドル  \mathrm{A} \mathrm{B} の着ることができる衣装の数の積になります。この計算は他の組み合わせでも同様です。すなわち、衣装も考慮したアイドルの並べ方を計算するには、あるアイドル  15 人を並べたときの全員分の衣装の数の積を求めるのを  _{190} \mathrm{P} _{15} 回(約86溝回)行いそれらの和を計算すればよいことになります。



……無理では???



こんな計算を地道に行っていては、デレステの衣装追加のペースに全く追いつけないどころか先に寿命が尽きてしまいそうなので流石に不可能です。しかし、取りうる値がどの程度の大きさかざっくりと見積もることは可能です。
まず、誰でも着ることができる共通衣装は  7 種類あるので、  15 人全員の衣装の数の積は少なくとも  7^{15} 通りとなります。よって、最低でも  7^{15} \times  _{190} \rm{P} _{15} \approx 4.09 \times 10^{46} 通りの組み合わせは存在することになります。
一方、同一アイドルの重複が許されない今回の総数は、重複を許したときの総数  _{1667} \rm{P} _{15} \approx 2.00 \times 10^{48} 通りよりは確実に少ないです。
以上より、求めたい組み合わせの数  x 7^{15} \times  _{190} \mathrm{P} _{15}  < x <  _{1667} \mathrm{P} _{15} を満たすということはわかります。

ちなみに、正確な値を書くと408載7149正1072潤9290溝3772穣5603杼3539垓1864京2857兆3526億3846万4000通りより多く2極26載2325正8958潤2892溝5026穣5810杼6712垓7220京6087兆179億9628万8000通りより少ない、となります。


ドレスコーデも考慮したパターン

皆さん、何かお忘れではありませんか?


f:id:shinemoon227:20190704012030p:plain


…そう、ドレスコーデです。現在、パーティータイム・ゴールドとアクロス・ザ・スターズは自分で色をカスタマイズすることが可能です。パーティータイム・ゴールドは299520通り、アクロス・ザ・スターズは982600通りもの組み合わせが存在し、まさに自分だけの衣装を作ることができる機能となっています。
しかし、流石に計算が難しく、しばらく頭を捻っても大雑把な値すら計算できそうになかったのでいずれ気が向いたら記事を更新するということにしておきます。

・最大で4枠まで設定可能
・別枠で全く同じ組み合わせの衣装を作ってもよい
・別枠の衣装を同一のアイドルに設定することは可能

以上の条件のもとで計算方法がわかったという方がいましたら是非コメントをお願いします。





今回はこちらのサイトで計算を行いました。

keisan.casio.jp

続・Pythonでデレステのガシャのスクショからアイドルの名前を読み取ろうと頑張った

むぅんです。お久しぶりです。
最近若干デレステのモチベが下がっていたのですが、久々にモチベが戻ってきたので今回は以前作った名前を読み取るプログラムの改良を行ったものを紹介しようと思います。

前回の記事はこちらになります。
shinemoon227.hatenablog.jp


さて、こちらのプログラムですが、主に2つの問題点がありました。

・名前が正しく読み取れることのほうが少ない
・長い名前のアイドルの名前が読み取れない

まず1つ目に関してですが、これは文字を認識していく上で仕方のないことです。勿論文字が違うこともありますし、除ききれなかったゴミが認識されてしまい記号が含まれてしまうこともあります。特に背景のあるSR以上のカードはかなり精度が悪いです。
2つ目に、少しでもゴミを減らすために読み取る幅を更に狭めてしまうと、「イヴ・サンタクロース」や「メアリー・コクラン」といった長い名前のアイドルがまるで読み取れないといった問題点も挙げられます。

difflibの利用

そこで今回はPythondifflibというライブラリを利用し、認識できた文字列と最も名前の近いアイドルを出力結果とすることで、少なくとも実在しないアイドルの名前になることを避ける方針でプログラムを組んでみました。
文字列str1とstr2の類似度  d (ただし  0 \leq d \leq 1)はdifflib.SequenceMatcher(None, str1, str2).ratio()で求めることができます。完全に一致していれば1、全く一致していなければ0が返ってきます。

a = '関裕美'
b = '間裕美'
c = '積裕美'
print(difflib.SequenceMatcher(None, a, b).ratio())
print(difflib.SequenceMatcher(None, a, c).ratio())
$ python3 main.py
0.6666666666666666
0.6666666666666666


類似度とは言ってもあくまで文字がどれくらいの割合で一致しているかというだけで、見た目が似ている漢字であるとか読みが同じ漢字であるかということは関係なく計算されるようです。上記の例ではどちらも文字列の $2/3$ が一致しているということがわかるわけですね。カタカナなどは全角と半角でも区別されるそうです。


アイドルは全員合わせても200人未満なので、それぞれの名前をリストに格納しておき、その中で最も類似していた名前を解としました。ただし、稀に1文字も認識できないことがあり、その場合は比較しようがないので適当な文字列を返します。

def searchCorrectName(txt, nameList):
	if txt == '':
		return '???'
	mem = {}
	for name in nameList:
		d = difflib.SequenceMatcher(None, txt, name).ratio()
		if d > 0:
			mem[name] = d
	return sorted(mem.items(), key=lambda x:x[1], reverse=True)[0]

やっていることはこれだけです。txtが読み取った文字列、nameListが全アイドルの名前が格納されたリストです。
一応簡単に解説しておくと、txtが空のとき、すなわち名前が認識できていなかったときは'???'を返します。そうでなかったときは類似度が0より大きい名前とその類似度をディクショナリmemに格納します(かすってすらいない名前が大半なのでそれらは弾く)。最後にそれをソートし、reverseにTrueを指定し降順にしてから先頭の要素(最大値)を持つキーを返すという関数になっています。

txt = re.sub(r'[ -~]', '', txt)
txt = txt.replace(' ', '')

書き忘れていましたが、読み取った文字列は事前に上記の処理を行って余計な文字を除去しています。前回の記事では半角および全角スペースのみを除去していましたが、今回は正規表現で半角文字を一括で除去してしまいます。

実験

それでは以下の画像に写っているアイドルの名前を実際に読み取ってみましょう。

f:id:shinemoon227:20190525191344p:plain

白菊ほたる
前川みく
結城晴
野々村そら
若林智香
???
佐久間まゆ
海老原菜帆
伊集院惠
メアリー・コクラン
西川保奈美
難波笑美


もともと読み取れていなかったアイドル以外は完璧です!しぶりんはどうやっても名前を読めなかったのでこればかりは仕方ないですね…。

ただ、プログラムを書いてたときは名前がほぼ一致している城ヶ崎姉妹の処理を工夫した気がするんですがその痕跡が見当たらなかったのは何故でしょうね…(プログラムを書いたのが去年のことなのに記事にするのが遅すぎる
もし工夫するとするなら、プログラム作成時にはいなかった久川姉妹の名前も合わせて処理してやる必要がありそうです(Rは存在しないので現状滅多にスクショを撮れる機会はありませんが)。



blog.mudatobunka.org

今回参考にさせていただいた記事です。

2019年1月のデレステ宝くじシミュレータを作ってみた

f:id:shinemoon227:20181226000542p:plain

ターレッスンチケットが新たな目玉


今回も作りました。
報酬に何も変更がなかった9月の宝くじと異なり、今回は報酬にいくつか変更が見られます。
中でも最も大きいのはスターレッスントレーナーチケットの追加でしょう。通常プラチナメダルが3枚も必要なアイテムが4等以上で確実に手に入ります。
また、魔法の時計が6等でも手に入るのは驚きです。ここまで大盤振る舞いだと、しばらくは時計に困ることはなさそうです。


当選本数一覧 本数
1等 1本(変更なし)
2等 1000本(変更なし)
3等 3000本(変更なし)
4等 25000本(変更なし)
5等 750000本(変更なし)
6等 2500000本(変更なし)
7等 5000000本(変更なし)
8等 7500000本(変更なし)
9等(※) 無制限(変更なし)

(※) PLvが20に達しておらず、2ndパネルミッション未開放のプロデューサーは必ず当選


※実際の宝くじはシミュレータによって得られた通りの結果になるとは限りません。使用は自己責任でお願いします。


下のテキストボックスに全プロデューサーおよび自分が所持しているチケットの総数を入力してください。ただし、他人が持っているチケットの総数は分からないので入力するのは推定値となります。参考までに、デフォルトで入力されている15779001枚が8等までの総数です。それより多く設定すれば9等が当選するようになり、それより少なく設定すれば上位の当選確率が上がります。極端な話、上も下も39枚に設定すれば自分で39枚しかないチケットを全て独占している状態になるため1等が確実に当選します。
なお、ここで入力した値には9等しか当選しない(8等以上が当選する条件を満たしていない)チケットは含まれません。


また、今回貰えるチケットの総数はデフォルトで35枚に設定してあります。これは、次回Grooveイベントが来年の1/1から始まると仮定し、イベント期間中は3枚、期間外は2枚貰えるという前提での枚数となっています。昨年同様、大晦日限定のイベントなどにより変動する場合がありますので、チケットの枚数が確定次第変更したいと思います。
枚数が39枚でほぼ確定したため、デフォルト値を39枚に変更しました。


【1/1追記】「1回戻る」「1回進む」ボタンを追加しました。宝くじの抽選結果を10回まで巻き戻すことができます。ただし、チケットの枚数を変えてしまった場合は正しく巻き戻せません。
「プラチナ宝くじを引く」ボタンを連打している際に2等などの良い結果をスルーしてしまった際の保険としてお使いください。



全プロデューサーが所持しているチケットの総数:
      自分が所持しているチケットの総数:











【更新内容】
・35連から39連に変更
・「1回戻る」「1回進む」ボタンの追加に伴う巻き戻し機能の実装

続・アタポンイベントで50位以内(2桁前半)を目指す人へ向けて

f:id:shinemoon227:20181222180213p:plain

今回は順位調整メインでした




第2弾です。前回の記事はこちらからどうぞ。

shinemoon227.hatenablog.jp




僕の担当アイドルである姫川友紀と依田芳乃の内、依田芳乃が上位報酬となったイベントが開催されたため今回はだいぶ気合を入れて走りました。
放置編成が広く使われるようになった今、前回と比較にならないほどボーダーは上がってしまいました。こちらも放置編成を組むことができたのは幸運でしたが、もし組めなかった場合間違いなくここまで高い順位は取れなかったでしょう。


用意したもの(あくまで参考までに)


・毎日最低17~20時間以上の余裕
最重要です。イベント期間中、毎日24時間全ての時間を使うことができたとしても1週間以上に渡って4時間から6時間程度の睡眠しかとることができません。オールできる日が1日でもあれば多少は1日あたりの睡眠時間を余分に確保することができますが、オールすることで翌日の睡眠時間が大幅に伸びてしまっては元も子もないので最終日のみ寝ないなど無理をしすぎないほうが良いです。
ちなみにスキブ睡眠という後述の放置編成を使ってLIVE中に2分間睡眠をとる方法も存在しますが、1桁を狙わない限り行う必要はありません。相当熟練したスキルがなければ寝落ちして痛い目を見るだけです。


・最低30000個以上のスタージュエル
相当ドリンクに余裕があればもう少し少なくても大丈夫かもしれませんが、最後の方はスタージュエルを買いに行く暇すらなくなると思うのでイベント開始前になるべく余裕を持って所持しておきましょう(放置編成が組めるならその限りではありませんが、外出先のプレイは周囲の迷惑にならないよう気をつけましょう)。


・手首用のサポーター
大きい端末を使用する場合手首にかなりの負担がかかるため、手首をよく使う人はあったほうがいいかと思います。親指勢はどうか無理をしないように。
放置編成が組める場合は不要です。


ジップロック
風呂でイベントを回せます。必須です。


・気合
大事です。最終日までひたすら休みなく同じことを繰り返してると頭がおかしくなるので通話相手を探したりすることをオススメします。


・担当への強い思い
2桁を狙うほどなら、そのイベントに担当アイドルが参加している場合が殆どでしょう。イベント期間中、コミュやMVを観る余裕は全くありませんが、担当のために頑張る気持ちがあれば走り続けられます。


・放置編成
アタポン形式イベントではかなり重要なものです。詳細はこの後すぐ。


放置編成について

f:id:shinemoon227:20181222180649p:plain

人 権



放置編成とは、スキルブーストの特技を持つSSRアイドルと判定強化の特技を持つSSRアイドルを同時にユニットに組み込むことでMISSを含む全ての判定をPERFECTに変えつつ、更にそれらで補えない場所をダメージガードで耐えつつ画面をほぼ触ることなくクリアするためのユニットのことです。イベントで2桁前半を目指すにはひたすら毎日10時間以上プレイしなければならないため、放置編成があるかないかで周回しやすさは大きく変わってきます。
現在は放置編成が普及したため、周回しやすいかどうか以前にこれがないと周回はかなり厳しいものとなってしまいました。

また、1年前の記事で挙げたデメリットもいくつか改善されています。順番に放置編成のデメリットを見ていきましょう。


・ユニットの編成難易度が非常に高い
これは改善されるどころか更に編成難易度が上昇しています。周期が8高のスキブに加えシナジーも必要となったため、スカチケで迎えられないSSRは2枚に増えてしまいました。
シナジーはスコアを出すための特技でクリアだけなら必須ではありませんが、「シナジーを含む編成のほうが強い」ならそれを組める人たちは当然使ってくるでしょう。2桁前半を狙う人ともなるとデレステをそれなりにやっている人が多いでしょうし、理想編成を組めないと苦戦を強いられることになるはずです。


・完全放置でスコアSはまず狙えない → 改善
恐らくイベラン最大の革命でしょう。かつては命燃やして恋せよ乙女しか放置でスコアSを取ることはできませんでしたが、シナジーの登場及び「特技発動率」のポテンシャル解放実装により全曲中最速のキミとボクのミライ(以下キミボク)を完全放置でSランククリアすることが可能になりました(このイベント直後に実装されたHOT LIMITに最速曲の座を譲ることとなりました)。これに伴い、イベント期間の内の大半は2分おきにスマホを操作するだけのゲームと化してしまいました(だけ、とは言いましたが1日の3/4以上休憩なしでこの単純作業を繰り返すのはかなり辛い作業です)。


・ゲスト選択が面倒 → やや改善
ゲストの表示順をソートできるようになりました。ゲストはVoDaViのいずれかを上昇させるトリコロール(最初に実装された9枚)でなければなりませんが、トリコロールは全てひとまとめにされるので上手いことスキブ持ち(センター効果が「トリコロール・アビリティ」のアイドル)を弾いていく必要はあります。


アイドルマスター(プロデューサーランクSSS)を並行して狙うには不向き → 勝手にSSSになる
放置編成の台頭によりボーダーが上昇してしまったので、もはや放置するだけで自動的にアイドルマスターになれます。その月のボーダーにもよりますが、アタポンイベまでに殆どファン数を稼げていなくても、600000ptを超えたあたりでアイドルマスターがほぼ確定します。勿論それまでに貯金があればもう少し少ないptでも狙うことは十分可能です。


このように、放置編成を組めさえすればデメリットなしでイベントを回せます。いっそのこと断言してしまうと放置編成は必須です。狙うのが2000位程度なら不要ですが、2桁前半はないととんでもなく厳しいです。


イベントptについて


今回も1年前と同じiPad Pro 9.7インチで走りましたが、今回は期間中に一度も1位を取ることができませんでした。その原因はやはり機種の差でしょう。当時はiPad Pro第2世代が出て間もない頃でしたが、今は第3世代すら出ている時代です。当然時速はそれほど出ませんし、休憩なしで何時間走ろうが追いつけないものは追いつけません。
仮にもiPad Proでこれなので、Androidの特に古い機種で走る方は苦戦を強いられることとなるでしょう。


イベント期間中の出来事


基本的にやっていることがあまりに代わり映えしないので今回は相当適当です。だって書くことないし。
桜の頃のイベランレポは結構ボリューム濃かったんですけどね。

【11/11(日) 開始8日前】

今回は異例中の異例となるイベント開始より大幅に前のイベント開催予告。
流れ的に次のアタポンイベであることが確定し、その後1週間以上に渡って胃の痛い日々を送ることとなる。

f:id:shinemoon227:20181222182603j:plain

発表当日の現地の写真です

【11/19(月) 1日目・16時間48分】0pt→62689pt (+62689pt) 11位

イベントptの目標はよしのんの誕生日に合わせ730000ptに設定。
数日前に発売されたばかりのポケモン最新作を遊びながらイベントを回し始める。100000pt稼ぐまで寝ない予定だったが流石に眠いので8時前に就寝。

f:id:shinemoon227:20181222183545p:plain

この日に早くも金トロは確定

【11/20(火) 2日目・13時間44分】62689pt→107765pt (+45076pt) 35位

食欲がなさすぎる上心臓の痛みで苦しむ。この日はモバマスPMF最終日だったので同時に回す。

f:id:shinemoon227:20181222184341j:plain

何をやっているんだろうという気分になる

【11/21(水) 3日目・19時間8分】107765pt→175430pt (+67665pt) 36位

起きてから寝るまでノンストップで回す。

f:id:shinemoon227:20181222234333p:plain

何も貼れるスクショがない

【11/22(木) 4日目・17時間5分】175430pt→236011pt (+60581pt) 39位

この日も睡魔と戦いながらノンストップで回す。

f:id:shinemoon227:20181222234838p:plain

森久保は可愛い

【11/23(金) 5日目・19時間46分】236011pt→307341pt (+71330pt) 34位

ビール摂取で生き返る。翌日に後半戦を控えテンションが上がる。
寝る前にエンブレムを一瞬カンストさせてしまい一瞬で眠気が吹き飛ぶ。

f:id:shinemoon227:20181222235055p:plain

心臓が止まるかと思った

【11/24(土) 6日目・17時間57分】307341pt→398913pt (+91572pt) 36位

この日より後半戦が始まる。ペース的に730000ptは不可能と判断し、前回走った冬空プレシャスと同順位である27位を目標に再設定。
とはいえ100位より上のペースは全体的に過去最高で推移しており、歴代最高ボーダーだったPretty Liar以上となると700000ptを超える可能性は十分にあったので気合を入れて走る。

f:id:shinemoon227:20181222235457p:plain

この日からイベントを走る負担は一気に減る

【11/25(日) 7日目・18時間54分】398913pt→520136pt (+121223pt) 28位

虚無と戦いながらひたすら走る。15時のガシャ更新で限定ガシャが復刻するが、何と響子ちゃんを2種類も引いてしまう。実質響子フェス。

f:id:shinemoon227:20181222235640p:plain
f:id:shinemoon227:20181222235727p:plain

響子フェス

【11/26(月) 8日目・34時間19分】520136pt→702657pt (+182521pt) 26位

ぼーっと走っていると、ふと「あれ、これこのペースで700000ptに間に合うか?」という疑問が湧く。計算してみると、これまでのように4時間寝ると確実に死ぬことがわかったので完徹することにする。
走っているうちにとうとう無意識にイベントを回せる境地に達するが、眠いもんは眠いので魔剤をがぶ飲みしたりガムを噛んだりシャワーを浴びたり自分自身をビンタしまくることで強引に起きる。
昼の12時頃(注:すでに火曜日)、とうとう我慢できなくなったので20分だけ寝るつもりが目覚ましが4日後の設定になっていたので40分も寝てしまう。40分で済んで本当に良かった。
眠気により目覚ましの設定すらままならない状況の中、湯船に浸かって疲れを取ろうとするも栓をし忘れ何十分もお湯を垂れ流す。
そして最後の2時間、ここから地獄の順位調整が始まる。この順位帯の人たちがどこまで走るか分からず、イベントptの推移をExcelに記録しながら微調整を繰り返す。途中何度も27位になり、「この瞬間イベントが終わってくれれば…。」という気分になる。
そうこうしている内にイベントが終了、ptを調整していると時間が一瞬で過ぎることが分かった。

f:id:shinemoon227:20181223000155p:plain

イベント終了後に初めて見ることができたMV

【11/28(水) 結果発表】702657pt 27位

1人上、1人下はそれぞれ1000ptも離れていない激戦区の中で無事に目標だった27位の称号を獲得。もう1曲余分にイベント曲を回していただけで26位だったので本当にギリギリだったが無事に取れて満足。
前回の記事で「次回は400000ptを目標に」と言ったのは何だったのかという爆走っぷりだったが、流石にもう次はないです。

f:id:shinemoon227:20181223000802p:plain

今回も27位称号と金トロを獲得


記録

獲得pt 楽曲プレイ回数 合計 プレイ時間 PLv
キミボク イベMAS イベMAS+
1日目 62689 669 297 138 1104 16時間48分 267
2日目 45076 13時間44分 269
3日目 67665 19時間08分 271
4日目 60581 214 141 22 377 17時間05分 272
5日目 71330 238 156 18 412 19時間46分 274
6日目 91572 321 58 31 410 17時間57分 276
7日目 121223 359 72 8 439 18時間54分 278
8日目 182521 635 80 36 751 34時間19分 281
合計 702657 2436 804 253 3493 157時間41分 15

※PLvは266でスタート
※1日目~3日目は各楽曲何回プレイしたかの記録を取り忘れていたため合計値を記載


イベ前 イベ後 獲得数
キュートイヤリング 3069 3935 866
キュートペンダント 1334 1666 332
キュートティアラ 126 210 84
クールイヤリング 1984 2842 858
クールペンダント 879 1256 377
クールティアラ 75 153 78
パッションイヤリング 1301 2901 1600
パッションペンダント 611 1368 757
パッションティアラ 71 234 163
魔法の靴 8180 9999 1819
魔法のドレス 3202 5972 2770
ルーキートレーナーチケット 6508 8307 1799
トレーナーチケット 4637 4812 175
ベテラントレーナーチケット 198 268 70
マスタートレーナーチケット 165 170 5
マニー 5300701 9999999 7474298
スタージュエル 20835 1791 -35064
ファン数 108229335 117652215 9422880

※スタージュエルは途中何度か購入
※マニーは途中何度か使用
※魔法の靴及びマニーは何度かカンストしているため正確な値ではない

まとめ

今回は環境の変化に伴い非常に辛い戦いを強いられましたが、無事に目標だった前回と同順位の称号を獲得することができました。
疲労感自体は過去に走ったイベントほどではなく、とにかく睡眠時間を削ることによる不快感との戦いだったように思えます。放置編成を組むことができ、走る時間があれば後はひたすら寝ないだけなので、それこそ徹夜が余裕な方であればもっと上の順位も目指せると思います。
ここまでボーダーが伸びた今回は27位でしたが、イベントによってはここからさらに1日あたりの睡眠時間を1~2時間ほど削れば1桁に入ることも不可能ではありません。色段を目指すためにはスキブ睡眠を会得しなければならないので流石に一筋縄ではいかないと思いますし、このレポ程度のプレイ時間だと参考にもならないレベルですがもし目指す方がいれば頑張ってください。
今回一緒にイベントを走ったプロデューサーの方々、お疲れ様でした。


f:id:shinemoon227:20181223010047p:plain

この名刺のために頑張りました


おまけ

f:id:shinemoon227:20181223010407p:plain

形が綺麗だと見ていて飽きないです


今回もイベントptと順位の推移を記録してみました。文字が読みづらくて申し訳ないのですが、左側の縦軸がイベントpt(緑色)、右側の縦軸が順位(青色)、横軸が時間となっています。
このグラフの通り、前半戦はエンブレムが貯まったら適宜イベント曲をプレイし、後半戦はひたすらカンスト砲を打ち続けていたことが分かります。カンスト砲の形は綺麗で大好きです。