(旧バージョン)ブルアカのイベント周回数計算ツールを作った(Excel・Googleスプレッドシート)
更新履歴
背景
イベントの周回を最適化したかった。
あと周回数覚えてられないから記録もしたかった。
作り始めてみたら凝れる場所が沢山あって、楽しくなって作り込みすぎてしまった。
2023/03/12追記
最終編が良すぎて抱え込んだエネルギーを昇華するために縦長版の説明を追記しました。
縦長版はドロップダウンリスト機能について書いた後、気分がノッてその日のうちに作ったんですが、こうやって記事にするのはエネルギーが要るんですよね。自分だけ使えばいいかと記事化を放置してました。
そして2/23の占領戦で必要な機能もまた認識したので改良し、縦長と横長をうまいこと使い分けると良いことに気づきました。横長無駄にならなくてよかった。
自分で使って便利だったので、自信を持って紹介できます。完璧~
何ができるのか
ソルバーを用いた計算によって、目標個数のイベントアイテムを最小限のAP消費で入手する周回プランを求められる。
自分の状況(ボーナス生徒・クリアできる難易度)で計算ができる。
イベント周回の進捗管理ができる。
イベント期日に間に合うAP消費ノルマ(常時更新)が確認できる。
対応端末
ExcelかGoogleスプレッドシートが使えれば何でも、と言いたいところだけど、ソルバーによる計算はどちらもPCじゃないとできない。
僕はPC(Windows11)でExcelへ一気に情報入力&ソルバー計算をして、iPad miniでブルアカ、周回したらiPhoneかPCで入力 というスタイル。
ダウンロード
OneDrive
ファイル - 名前を付けて保存 - コピーをダウンロード
Excelのみ
Google Drive
ファイル - コピーを作成
Excel・Googleスプレッドシート 両方
使い方(通常イベ・縦長Ver.)
基本ルール
青色背景のセルへ任意に入力。
ポイントとアイテムは区別していないため、名前とドロップ数で使い分ける。
項目がないものは省略可能。
日付は左上(A6)にYYYY/MM/DDの形式で入力し、下に向かってフィルで連続入力する。(全部埋める必要はなし)
当日(AM4:00に日付変更)のセルは条件付き書式によってオレンジ色に強調される。
イベントは最終日のAM10:59までであり、最終日を周回可能な日数としてカウントするにはリスキーなので一日短く設定するのがオススメ。
1. Questを進める
理想は最後までチャレンジ条件も含めてクリア。
ただ、自分で入力したAPとドロップ数で計算を行うため、計算自体はステージの難易度に関係なく可能(周回効率は悪い)。
2. ドロップ数最大化
ボーナス生徒を編成してクリアし直し、ドロップ数を最大化する。
アイテムごとに最大値が保存されるため、ひとつのステージを各アイテムごとに挑戦して最大化することが可能。(例えば、最後のステージをポイント・アイテム1・アイテム2・アイテム3と4回編成を変えてクリアするなど)
そして、ステージ番号、消費するAP、ドロップ数を入力する。
アイテム1種ごとに、左と右の枠を合計した数をドロップ数として計算しているため、一周あたりの合計ドロップ数を左だけ/右だけ に入力、というスタイルでも問題なく機能する。
(まず基礎ドロップ量を全部入力し、最高ボーナスで上書きしたら記録するという穴埋め方式でボーナス上書き忘れを予防するのがおすすめの使い方)
ドロップ最高効率とステージの組み合わせは基本的に2パターン。
最後から3つか4つのステージのみを最大化すれば良い。(念のため5ステージ分の枠は作ってある)
後からドロップ数等の条件が変わってしまうとアイテムを集めすぎることに繋がり無駄になってしまうため、イベントと関連したピックアップのガチャで後からボーナス生徒を入手するのは避けたい。(途中でソルバーの再計算を行うことは可能。)
3. 必要アイテム数計算
ショップ画面で電卓片手に計算する。そして目標数に入力。
ショップ画面で各アイテムの所持数(初クリア報酬とドロップ数最大化の過程でそれなりに入手している)を確認し、初期数に入力。
デイリーミッションによるアイテム獲得がある場合(バレンタインイベント等)、初期数か目標数を予想される分だけ変更して辻褄を合わせる。
面倒ならやらなくても問題はない(アイテムが無駄になるだけ)。
アイテム名・単価・個数の情報をWikiからコピペすればチェックボックスか個数指定で必要数を算出できるシートも作ったが、どうにも不便なので使っていない。(チェックボックスはPCでしか動作せず、チェックボックスのチェック解除が一括でできず、チェックボックスを関数に組み込むためにポチポチクリックしていく作業も面倒)
一応仕様
チェックボックスと個数指定を同時に使った場合はMAXが優先。
個数指定は購入上限以上を指定できないように入力規制済み。
コピペ時に体裁を維持するために小計の項目があるが、計算には使っていない。
チェックボックスの配置されているセルに、文字色を変えて見えなくした状態の真偽判定の結果が表示されてる。(計算時の判別用)
4.a ソルバー計算(Excel)
ソルバーアドインの導入方法は割愛。
条件式を解説すると
総消費APが最小になるように計算
(周回)必要数は整数
全アイテムが目標数を上回る数手に入るまで周回
一度計算すれば、ソルバーの設定は維持される。
4.b ソルバー計算(Googleスプレッドシート)
普段Excelしか使わないのでセル指定が独特に感じる。
シート上でセル(セル範囲)を選択してから、[Update]をクリックすることで反映される。
条件式はExcelと同様。
Excelと比べてみても、結果は同じ(AP消費量)になる。
また、これもソルバーの設定は維持される。(非表示シートに設定が保存されているっぽい)
5. 周回数の記録
基本的には消費と目安(一日のAP消費量とノルマのAP消費量)を見比べながら周回する。一日に使えるAPはおよそ一定であるため、無理のないペースで周回しやすい。
石割りしないと間に合わないのか、ドロップ○倍中の他のものにAPを流していいのか、勘ではなく数字で見れるので一安心。(ユウカもにっこり)
6. ソルバーの再計算を行う場合
ドロップ数を最新の状態に更新する。また、周回数の記録を全て削除する。
目標数を変更しないなら、初期数を現在の所持数で更新した後、ソルバー計算を行う。
周回数の記録は途中からになるが、消費APの目安などの機能に影響なし。
使い方(占領戦等多ステージ用・横長Ver.)
初期に作成した横長Ver.の計算シートは、スピル機能への理解が深まったことで行数を増やしたり減らしても動作するように作り変えることができた。
その結果、占領戦のように周回対象のステージが著しく多いイベントであっても、自分で必要なステージ数に調整してソルバー計算を行うことができる。(ステージ数に上限なし)
基本的な使い方は縦長と全く同じ。増やしたステージにもドロップ数を入れてソルバーで計算する。
行の増やし方
ステージの一番上以外(この場合3行目か4行目)を選択し、右クリックから挿入する。
一番上(この場合の2行目)を選択して挿入した場合はCtrl+Z
行の減らし方
ステージの一番上と一番下以外(この場合3行目のみ)を選択し、右クリックから削除する。
一番上か一番下(この場合の2行目か4行目)を選択して削除した場合はCtrl+Z
ソルバー計算
目標セルと変数セルの位置が違うだけであとは横長と同じ。
行選択からの挿入・削除を行っていれば、変数セルの範囲と整数の範囲は自動で反映される。
されてなかったら手動で修正。
使用例
特殊な使い方
途中でアイテムを消費しても、アイテム収集数・収集率をリアルタイムで反映させる
僕はアイテムを全部集めてから一気にショップで交換したいタイプの人間なので、途中でアイテムを消費してしまうと収集数が現在の所持数とずれてしまって気持ち悪い。
それに、定期的に所持数と収集数を見比べて、周回数を間違えて記録していないかの確認ができなくなるのも困る。(間違えて違うステージを10回周回とかやらかしたこともあるので確認大事)
しかし、例えば占領戦などで、集めたアイテムを消費しないと先のステージが開放されなかったり、拠点のランクアップができない場合、回収の途中でも効率のためにアイテムを消費する必要がある。このような場合、ステージを全開放してからソルバー計算を行う、という方法も選択肢に入るが、周回の最適解にならない場合がある。
ということで、最初に全体で必要なアイテム数の計算は必要だが、最初に一度ソルバー計算すれば最後まで使えるし、収集数を所持数と合わせた状態で記録を進める方法を紹介。
やることは簡単 初期数の欄をいじるだけ。
=の後に本来の初期数、その後に-で消費したアイテム数を繋げる
所感
日付連動でセルの色変更やチェックボックスを利用した条件式、その他諸々の関数の使い方がかなり勉強になった。趣味以外に使い道ないけど。
ExcelからGoogleスプレッドシートに変換しても、ちょっとセルの幅が合わないとかそんなレベルの問題しか起こらなくて、ここまで高い互換性を保ってるならExcelから全然移行できると思った。共有時絶対メアドバラす仕様だけはどうかと思う。(別アカウント作った)
Googleスプレッドシートの日付連動機能だけ変だったけど、ファイルにタイムゾーンの設定があった。日本にしたら直った。どこに需要がある機能なんだろう。
改善したい
Web埋め込みでソルバーまで使えるようなツールが作りたかった。現状だとソルバーによる計算にどうしてもPCが必要。誰か作ってほしい。
両方ともスマホで見づらい。でもウィンドウ枠の固定は使わないと更に使いづらいと思う。悩ましい。縦長Ver.でひとまずの解決フォームによる入力は逆にめんどくさそう。進捗を見ながらできないし。機能そのままで見やすい配置にできたらいいのに。
プチ改良①(2023/02/18)
画面の表示領域の狭さ問題を解決できず、スマホからの周回数入力がやりにくかったので、キーボードを使わなくても周回数を入力できるようにドロップダウンリストを設定してみた。(キーボードからの直接入力も変わらず可能)(PCだとキーボードの方が早い)
ドロップ数設定エリアの右にドロップダウンリストの最大値の入力セルがある。
Excelであれば上限を9999にしてもPC・スマホともにサクサク動く(iPhone7)が、Googleスプレッドシートで上限を9999にするとPCの方がかなりもっさりする(ブラウザの問題?)ので使いそうな範囲にしておくことを推奨。
周回数のリセットはドロップダウンリストとか気にせず一括選択からの削除で問題なし。
※ドロップダウンリストはスマホで作れないから、スマホで上限数を変えても反映されないんじゃないかと思って試したけどどっちもいけた。すごい。
感想・不具合報告 お待ちしてます
自分でゴリゴリ使ってるのはExcel版なので、Googleスプレッドシートで不具合出ても気付かない可能性が高いです。また、使いやすくカスタムした例などがあれば、僕も勉強になるので知りたいです。
コメント欄で教えていただけると助かります。
よろしくお願いします。
おまけ(神名のカケラ必要数計算表)
Wikiにある表が見づらかったのと、ワカモの限界解放がギリギリのところで困ったのでちゃんと計算できるように作った。(色彩ホド戦)
神名文字の所持数を入力し、ショップでのカケラ購入数を入力すると、現在の星から任意の星に上げるためのカケラ必要数が表示される。
ショップでの購入数に応じて交換レートに反映されるようになっている。
いくつ購入したか覚えていないなら、とりあえず80にしておけばそれより増えることはない。
限界解放の段階が追加されても対応できるように、薄い字で枠だけ確保してある。