育成キャラの抽選を2段抽選+色違いに再設計した話
「ぽんっ!」(旧称:でいりんぐ)は、スタンプを貯めると育成キャラが卵 → 幼体 → 成体 → 最終進化と育ち、最終進化に到達すると図鑑に登録されます。この「次にどのキャラの卵が出るか」の抽選ロジックを作り直しました。設計の狙いと、なぜ 2 段抽選にしたのかを残します。
背景(当時の状況)
育成キャラの抽選を作り直したのは、それまでの「花丸メダル」を育成機能に置き換える大きな方針転換の一部でした。設計に入る前にまず「これはコンプするゲームではなく、習慣化を長く支えるご褒美だ」とゴールを合意したのが 2026-07-06。そのうえで抽選ロジックを詰め、2026-07-08 にとして実装しています。ゴールを先に握ったからこそ、「終盤に失速しない」という要件がはっきりしました。
前提: ゴールは「コンプ」ではなく「習慣化」
まず設計の土台として、キャラのコンプリートはゴールではないと決めました。「ぽんっ!」の目的は、こどもが毎日「できた!」を積むこと=習慣化です。図鑑は、幼稚園から小学校卒業まで長く伴走するご褒美という位置づけです。
そのため「短期間で全部集まる」設計にはしませんでした。1 日 1 回のペースだと正規キャラのコンプまで数年かかりますが、それは仕様です(子ども時代に長く付き合える長さを狙っています)。
旧方式の問題: 重み付け1段は終盤で失速する
以前は「未登録のキャラに重みを付けて1回で抽選する」方式でした。これは終盤になるほど新規キャラに当たりにくくなり、失速します。未登録が残り少ないと、重みを付けても既登録に埋もれてしまうためです。
新方式: 2段抽選+色違い
そこで、抽選を段階に分けました。
- 期限判定で「新規率」を決める。 卵を割るまでにかかった日数で、新しい子に出会える確率を変える。期限内(30 日以内)なら新規率を高め、超過すると低めにする。「毎日あげると新しい子に会いやすい」という、習慣化に効く方向づけです。
- 新規/ダブりのコイン投げ。 上で決めた新規率で「新規枠」か「ダブり枠」かを決める。新規なら まだ図鑑に登録していない種のリストから、ダブりなら 登録済みの種のリストから抽選する(=ここでキャラが確定)。
- 色抽選。 一定確率で 色違いにする。
対象リストが空(例: 新規枠だが未登録がもう無い)なら、反対側のリストへフォールバックします。
[経過日数] ──▶ 新規率を決定(期限内は高め / 超過は低め)
│
▼
新規 or ダブり コイン投げ
├─ 新規 → 未登録の種リストから抽選 ─┐
└─ ダブり → 登録済みの種リストから抽選 ┴─▶ 種が確定
│
▼
色抽選(通常 / 色違い)
この方式なら、残りが少なくても「新規枠を引けば必ず未登録から出る」ので、重み付け1段のような終盤の失速がありません。
実装で効いた工夫
- キャラ総数をハードコードしない。 種数はカタログ(キャラ定義)の最大番号から算出するようにして、キャラを追加したら抽選も自動で追随するようにしました。追加のたびに定数を直す事故を防げます。
- 図鑑登録は最終進化到達時のみ(途中離脱では登録されない、という既存仕様を維持)。新規枠で色違いが出たら正規+色違いの両方を登録します。
- こどもロールはひらがな表記。ダブりのときも「もう図鑑にいるよ」のような後ろ向きの表現は使わず、育成完了を前向きに祝う文言だけにしています。
- 確率が意図どおりかをテストで実測。「期限内に割った卵のほうが、期限超過より被り率が低い」ことをテストで検証しました。
まとめ
- ガチャ的な抽選は、「1段の重み付け」より「期限判定 → 新規/ダブり → 色」の多段にすると、終盤の失速を避けて狙いどおりの体験を作りやすい。
- 総数はデータ由来で算出してハードコードを排除すると、コンテンツ追加に強くなる。
- こども向けでは、確率設計と同じくらい文言のトーン(前向き・ひらがな)が体験を左右します。