にゃっとランドforXに設定を足し続けていたら、いつのまにか項目が30を超えていた。猫の表示量、元気さ、音、イベントの種類——ひとつひとつは小さな選択肢なのに、並ぶと圧がある。v1.2.0では、この「設定が多すぎる」問題に向き合った。

よく使う組みあわせを3つに畳んだ

細かく詰めたい人は少数で、ほとんどの人は「今日はにぎやかに」「今は静かに」くらいの粒度で選びたいのではないか。そう考えて、3つのプリセットを用意した。

  • 賑やかし:猫を大盛りで表示し、音もいたずらも全部ありの構成。
  • 静か:小盛り表示・音なし。遊びに来る仲間や段ボールといった突発的な演出も抑える。
  • かいせき:猫の絵が出る演出をすべて止めて、反応率の地面などの分析表示だけを残す。

プリセットは押した瞬間に反映される一括操作にしてある。ただし表示言語だけは変えない。言語は「気分」ではなく「その人の前提」なので、プリセットが勝手に触るものではないと考えた。

猫を全部消すプリセットを作ることになった

面白かったのは「かいせき」だ。猫が主役の拡張機能なのに、猫を全部消すプリセットを用意することになった。

でも、FF比やいいね履歴を落ち着いて見たい場面は確かにある。猫が好きなことと、いつでも猫を出しておきたいことは、別の話だった。

実装で困ったのは、どこで線を引くかだ。最終的に「猫のスプライト画像が出るかどうか」を基準にした。反応率の地面はグラデーションだけで描いている背景なので残す。ねこなびとソワソワは、猫の画像を貼る作りなので落とす。見た目が近い機能でも、この基準で機械的に振り分けられる。

「いま何を選んでいるか」は保存していない

プリセットで意外と悩んだのが、選択状態を覚えておくかどうかだった。結論としては、保存しないことにした。

覚えてしまうと、そのあとで個別のトグルを触ったときに「これはもうプリセットではなくカスタムだ」と判定する処理が要る。その判定を30個以上の項目すべてに配線することになり、しかも将来トグルを足したときに配線を忘れると、画面には「静か」と出ているのに中身は違う、という嘘が残る。

状態を持たなければ、その嘘は最初から生まれない。プリセットは「その組みあわせを流し込むボタン」に徹してもらうことにした。

持たせるのは差分だけ

もうひとつ、プリセットの中身は既定値からの差分だけを持つようにした。3つ分を全部書き下すと、あとで既定値を変えたときに、プリセット3か所の同じ箇所を直し忘れて静かに食い違う。

音の副スイッチ(猫の声・小物の音・通知音)も同じ理屈で、「静か」「かいせき」にはあえて書いていない。音全体がオフなら副スイッチも自動的に倒れる仕組みが元々あるので、両方に書くと同じ決まりが2か所に増えてしまう。

設定をまとめる機能なのに、実装の大半は「どう書かないか」を決める作業だった。

← Safari/iOS版、検討中です 次の記事:ブックマークから起きる特別な出会い → 一覧