見出し画像

本当の意味であつ森を始めるまでの軌跡2-キャンプサイト厳選とあつ森アプリ-

こちらの続き。
今回もあつ森について話します。
スプレッドシート成分とアプリ開発成分も少々あります。笑

金策が終わり、リアルタイムに戻り1週間経ち、案内所がリニューアルされた。
すると「キャンプサイト」を建てることができ、いよいよ住民厳選が開始になるのです。

※注意
あつ森は自分のペースで、スローライフを楽しむゲームです。
考え方は人それぞれなので、あくまで1プレイヤー遊び方。
時間操作が出てきますので、望まない方はバックしてください。
また、住民厳選に関しての詳しい情報は攻略サイトなどを参考にしてください。

あつ森の住民厳選方法

の前に、住民厳選ってなんぞや?という疑問に答えます。

あつ森では最大10人のどうぶつと暮らすことができるが、基本的にランダムで選ばれるため、推しの住民と暮らしたい場合は、特定の住民を島に招くためにあれこれやる必要があるのです。

2種類方法があると言われています。

・離島厳選
・キャンプサイト厳選
★離島厳選
住民の誰かが引っ越して9人になった際に、離島に行くことでそこにいる人を勧誘し、自分の島に連れくる方法。
離島に行くためには「マイル旅行券」が1枚必要で、出るどうぶつはランダム。
10人の場合は離島でどうぶつが出ないので、別途追い出すことが必要。
しかも旅行券1枚2000マイル(すぐには稼げない)がかかる。
私はこの方法は選びませんでした。
★キャンプサイト厳選
建てたキャンプサイトにランダムで住人が来る。
ランダムだが、一度現れたどうぶつは、1周するまで現れない。
現れたら、根気強く話しかけ、時にはゲームを行い、勝つと移住を決めてくれる。
住人が10人いる場合でも現れ、その場合は入れ替える住民がランダムで選ばれる。

私はひたすらキャンプサイト厳選をすることを決め、実行しました。

キャンプサイト厳選のやり方

★仕様
・キャンプサイトに現れる確率は最大20%
・現れてから2日間は現れず、その後確率が上がっていき、前回現れてから6日後に20%になる
・現れるどうぶつはランダムだが、自分の島にいない性格のどうぶつが出る確率は60%に上がる
・同じ性格のどうぶつが複数いても出づらくはならない
・一度現れたどうぶつは、その性格内で1周出尽くすまで出てこない
・10人未満の場合、売地があればそこに住む。
 売地がない場合は、来ることが確定した後、売地を作ることで来てくれる
・10人いる場合、ランダムで島の一人が交換対象に選ばれる(リセットすれば再抽選できる)

つまり、根気強く頑張っていれば、いつしか出会うことができる。
そして特定の性格のどうぶつが推しの場合は、同じ性格のどうぶつを島から追い出すことで、割と簡単に推しどうぶつ出会えるようだ。

さて、やり方。
調べてみると、「1回の時間変更で2日間試すことができる効率の良い方法」というものを見つけたので、しばらくそれを試しました。
が、途中で冷静になって時間を計測したところ、別の方法が最大効率だったのでそちらに切り替えました。

★やり方(1回で2日間試す方法)
0. 時間を4:58に設定する
1. 森起動
2. タイトル画面でAボタン
3. 島内放送でお知らせがあるか
 →ある場合4.
 →ない場合5.
4. キャンプサイトに行き、目当てのどうぶつであれば時間を2時間ほど戻して再起動し、勧誘。違ったら8.へ
5. 1分 + 5:00の鐘が鳴り終わるまで待つ(自由時間)
6. 島内放送でお知らせがあるか
 →ある場合、4.と同じ
 →ない場合7.
7. ゲーム終了、日付を2日進め、時間を4:58にし1.へ
8. 日付を6日進め、時間を4:58にし1.へ

AM5時にゲーム内日付リセットが走ることを利用した方法。
トータル2:40ぐらいかかる。
次に途中で切り替えたやり方。

★やり方(1回で1日だが高効率)
1. 森起動
2. タイトル画面でAボタン
3. 島内放送でお知らせがあるか
 →ある場合4.
 →ない場合、ゲーム終了し日付を1日進め1.へ
4. キャンプサイトに行き、目当てのどうぶつであれば勧誘。
 違ったら、ゲーム終了し日付を6日進め1.へ

トータル1分数秒。
前者の方法と比較すると、後者の方が2回で30秒ほど得する。
前者は1分の自由時間があるので、そこでついでになにかしたい人にはおすすめ。
だが私はルールで住民厳選以外のことは何もしないので、効率もあり後者を気づいてからは後者を選択。

確率による、かかる最大時間を試算をしてみた。
どうぶつは391人いるらしいので、全員分回すとなると、
391人 * 5(出現率20%) * 1分 = 1955分 = 32.5時間
試行回数が多いので30秒が響いてきそう。
ロード時間は一応自由なことができるので、この時間ずっとゲームに張り付いているわけではない。

目標設定と実施結果

今回も目標を設定します。
欲がない方であれば、推しは2人とかなんでしょうが、住民一覧を見てみると見事に10人欲しいどうぶつがいたので、最も時間はかかるが10人揃うまで帰れま10になりました。笑

さて、いよいよ開始。
折れる心と諦めない気持ちの戦い。

結果としては、337人目で最後の推しが来て、累計約28時間でフィニッシュになりました。
勧誘の時間が入るので、おそらく30時間ぐらいではないかと。
勧誘に関しては運が良い方だった気がするので、勧誘中は心折れませんでした。

何も見えないとひたすら心が折れるので、スプレッドシートで出現管理をしていましたが、どんどん豪華になっていきました。笑
(スプレッドシート詳細については後述)

画像1

これが住民記録シート。
一番左の列に住民が出た順に書き込んでいて、それにより出現数などを自動計算するように式を組みました。
最終的な住民出現割合は86.2%
性格別割合では「コワイ」と「ふつう」に関しては途中でいない期間があり、その時良く出たので高くなっています。
他の性格を見てみると、確率の通り同じぐらいになっています。
確率ってすごい。
ハキハキが少ないのは謎。

心が折れないためのスプレッドシート芸

順番に出た住民を記載してくことで、残数が分かりちょっと前を向けるようになりました。
しかしそれでは飽き足らず、毎試行数十秒の暇な時間があるので、そこで徐々にシートを進化させていきました。

まずは、各性格ごとの出現率の管理。
名前はキャンプサイトで話しかけると見えるのでそれを入力しますが、性格はわかりません。
そこで、Webから名前と性格の一覧をコピってきて、別シートに貼り付けました。
住民マスタシート。

画像2

で、住民記録シートに記載した名前を、マスタからVLOOKUPで探し性格を出力します。

=VLOOKUP(A9,'住民マスタ'!A:C,3,FALSE)

今までVLOOKUPに苦手意識があって、丁度いい機会だったので調べ直しましたが簡単でしたね。笑
そしてVerticalのVなのね(いまさら)。HLOOKUPもあった。

次に下記のように「出現数/総数/割合」を1セルに出したいなと思って調べました。

画像3

「&」で連結できるようです。便利。

=G15&"/"&F15&"/"&J15&"%"

さて、ここまで来て、時は過ぎ、日々の出現確率が20%とは言えど、2週間ぐらいキャンプサイトにどうぶつが現れない場合も出てきます。
記録することで心が折れないよう頑張っていますが、だんだん辛くなってきたのでさらなる策を打ちました。

画像4

どうぶつが出た時間を記録すれば、どれぐらい来ていないのか分かるし、「そろそろ出るっしょ!」みたいな気持ちになれるかなと。(気休め)

やりたいこととしては「特定のセルに入力された時間を書き込みたい」ですが、意外と詰まりました。

now()で現在時刻は取得できるのですが、スプレッドシート更新のタイミングで全てのnow()が更新されてしまう仕様のようです。

画像5

探していたらGASでできるという記事がありました。

実際のコードはこんな感じ。

function onEdit() {
 var ss = SpreadsheetApp.getActiveSpreadsheet(); //現在触っているファイルを取得
 var sheet = ss.getSheetByName('住民'); //対象のシート名を選択(hogeの部分にシート名記載)
 var currentRow = sheet.getActiveCell().getRow(); //アクティブなセルの行番号を取得
 var currentCol = sheet.getActiveCell().getColumn(); //アクティブなセルの列番号を取得
 var currentCell = sheet.getActiveCell().getValue(); //アクティブなセルの入力値を取得
 var updateRange = sheet.getRange('C' + currentRow); //どの列に更新日時を挿入したいか。この場合はA列
 Logger.log(updateRange); //更新日の記入
 if(currentRow > 3 && currentCol == 1 && updateRange.isBlank()) { //3行目以降かつG列の変更を参照とする 
   if(currentCell) {
     updateRange.setValue(new Date());
   }
 }
}

onEdit()に変更時の処理を書くことで、自分でトリガーを設定せずともセル編集時に動くスクリプトが書けるそうです。

これで、どうぶつの名前を入れるだけで、性格と入力時間を自動で入れてくれるようになりました。

心が折れないための買い物

何度も起動と島内放送を繰り返す中で、Aボタン、Bボタンを押すのが辛くなってきました。
プロコンほしいな・・・と調べてみると、色んなサードパーティ製のコントローラーがあるんですね。
連射コン!と思い、一つ購入してみました。

説明とレビューを見て、まぁこれなら良いだろうと。
(サクラチェッカーでは★1.8ぐらい笑)

しばらく使っていますが、いい感じ。
これによりしずえさんのコメントを早送りするのがとても楽になりました。笑

スキマ時間で作ったあつ森アイテムチェックアプリ

厳選1日目は、最初の方に挙げた「時間操作1回で2日間試す方法」をやっていたため、毎回1分ほど暇な時間がありました。
そこで、あつ森でカタログに載ったアイテムを記録できるアプリを作ろうと思い、自分用アプリとして作成しました。
カタログ埋めたいけど、どれ買ったのかってメモるの面倒だし、インクリメンタルサーチで検索できると便利よね、と。

細切れ1分で作業。
データ作成(エクセル芸)含め8時間ぐらい。(厳選作業も含む)

画像6

完全突貫アプリだけど、今までの知識を元にして作った。
一覧とインクリメンタルサーチによる絞り込み、購入チェックのみ。笑
起動時にIME開くとか、RecyclerViewでのFastScrollとか、スクロールしたらIME閉じるとか細かい制御は入れている。
設計はMVVM/UseCase/Repository/infra、ライブラリはDagger2/Room/Rx
RoomもKotlinも楽しい。
Rx好きなんだけど最近CoroutineとFlowが流行りなので、そろそろそっちにも手を出さないとまずいなと危機感を覚えているこの頃。

最後に

ようやくあつ森当初の障壁がすべてクリアされ、今日からスローライフが再開しました。
あつ森はやっぱりスローライフが楽しい。
そしてスキマ時間でスプレッドシートの知識が深まったのと、アプリひとつ作れたので良かった。
無為な時間を過ごした言い訳感はあるけど、めでたしめでたし。

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