見出し画像

Notionで習慣トラッカーをゲーム化して楽しむ

なにか新しいことを習慣にしたいとき、それをチェックリストにして管理する手法を習慣トラッカーと言います。チェックが付いているかどうかで「やったかどうか」が視覚的に一目瞭然になるため、途中で途絶えさせたくないという気持ちが働きやすくなります。

Notionを使ってたくさんの方が習慣トラッカーを作成しています。Notionが公式に習慣トラッカーのテンプレートを配布していることからもわかるように、Notionと習慣トラッカーの親和性はとても高く、Notionは使いやすくわかりやすい習慣トラッカーの作成に適しています。

Notionが配布している習慣トラッカーのテンプレート

しかし、Notionを使った一般的な習慣トラッカーは、単に日付ごとにチェックボックスが並んでいるだけで、「チェックを付けなきゃ」という気持ちは湧いても、「チェックを付けたい」という気持ちは湧きません

私も最初はこのテンプレートをベースに習慣トラッカーを作ったのですが、チェックを付けることに飽きてしまったり、全部チェックが付いても「それがなんだ」と思ってしまったりし、最終的に習慣が途絶えました。

なにかを習慣化するには短期的な報酬(メリット)が必要と言われますが、そのメリットが単に「チェックボックスがすべて埋まる」だけでは面白くありません。そこで、「習慣トラッカーにゲーム的要素を加えて、チェックを付けることが楽しくなる仕組みを作ろう!」と思い、習慣クエストというNotionテンプレートを作りました。

「習慣クエスト」の紹介

習慣を実施すると経験値が貯まっていく

習慣クエストは、経験値を貯めて新たな称号を獲得していくゲームです。

私は「Walk(朝散歩)」「Training(筋トレ)」「Weight(体重測定)」の3つを毎日の習慣にしていて、実施したらチェックを入れます。チェックを付けていくにつれて、以下のようにゲームが進行していきます。

  • 習慣を1つ実施すると、その習慣に応じた経験値が貯まる

  • その日の全ての習慣を実施すると、ランダムに登場するモンスターを1体倒すことができる

  • モンスターを倒すと、ボーナスとしてそのモンスターに割り当てられた経験値が貯まる

  • 累計の経験値に応じて、新たな称号を獲得できる

好きなモンスターを倒せる楽しみと、かっこいい称号を獲得できる喜びを報酬に、毎日すべての習慣を実施しています。小さな報酬ではありますが、モンスターがランダムに登場することでより期待が膨らむことと、獲得できる称号が徐々にかっこよくなっていくので「早く次の称号を得たい」という気持ちがより湧いてくることで、モチベーションを維持できています。

ページ構成の紹介

PC画面
スマホ画面

ページのトップに「今日の状況」を一覧で見れるギャラリービューを配置しています。スマホアプリで開くとこのビューだけが画面いっぱいに表示され、基本的にこのビューだけで日々の入力・確認が完結します

ビューをクリックするとページが開き、詳細な入力をすることができます。筋トレは実施したメニューと回数を記録し、体重は体脂肪率や骨格筋率などと一緒に記録します。筋トレは実施した回数に応じて経験値が貯まる仕様にしているので、回数の入力が欠かせません。

継続日数は前日までの連続チェックの日数を表示しています。継続日数の表示も習慣を継続する上での大きなモチベーションになっています。

天気は特に使用機会がありませんが、気が向いた日に入力するようにしています。

ページの中段にはテーブルビューを配置し、日々の結果の推移を見ることができます。これは日々確認するためというよりも、定期的に体重を振り返って運動量や食事量の調整をするためのものです。また、1ヶ月が終わったときにすべてのチェックボックスが埋まっているのを見ると、とても達成感を感じます。

ページ下部には外部サービスのNotionChartsを配置し、グラフで視覚的に推移を把握することができます。とはいえ、縦軸の範囲が指定できずイケてないので、別の方法での実装を検討しているところです。

実装の概要

この習慣クエストを構成するためにデータベース(DB)を3つ用意しました。

1つ目はベースとなる習慣トラッカーDBです。このデータベースから抜粋する形で「今日の状況」を表示するためのギャラリービューや、推移を確認するためのテーブルビューを表示しています。

また、このデータベース内では、チェックボックスのチェック状況から「全クリかどうか」を判定したり、チェックの個数や筋トレの回数に応じて経験値を計算したりする関数を組み込んでいます。

2つ目は経験値を管理する経験値管理DBです。習慣トラッカーDBの累計経験値を参照して、後述する称号リストDBの称号をルックアップしています。称号は累計経験値をもとにIF関数で決定することもできたのですが、称号の数がたくさんあった方がモチベーションに繋がるため、多数の称号を簡単に管理できる専用のDBを用意しました。

3つ目は前述した称号リストDBです。各称号の下限経験値と上限経験値を定義し、それをもとに累計経験値から一意の称号を決定するためのDBです。称号はドラゴンクエストシリーズで使われている称号を拝借しました。ドラゴンクエストのように冒険感のあるゲームをやりたいと思ったのが習慣クエスト作成のきっかけです。(余談ですが、私がドラゴンクエストシリーズで一番好きなのはⅦです)

これら3つのDB間でリレーションやロールアップといった機能を使用しています。多少複雑な作りこみもありますが、これらをすべてノーコードで作成できるnotionには本当に助けられました。

まとめ

習慣クエストを使うと、日々の習慣を楽しみながら行うことができます。「ゲームは何時間でもできるのに、散歩や筋トレは続かない」という私のような人間でも、散歩や筋トレをすること自体がゲームになっているので続けられています。

みなさんの習慣化の参考になれば幸いです。

おまけ

本編はここまでですが、購入いただいた方への特典として、習慣クエストのテンプレート配布と、実装のポイントを余すところなく記載します。

このテンプレートを参考にすれば各自の習慣トラッカーに同じ機能を実装することが可能ですので、ぜひ自分なりにカスタマイズして使用いただければと思います。

※アイコンとカバー画像はフリー素材ではありますが、削除した状態での配布となります。また、NotionChartsは個人ごとに登録が必要なため、こちらも削除した状態での配布となります。リンク先から無料登録の上、ご使用ください。

実装のポイント

notionはノーコードで誰でも簡単に実装できる反面、複雑なことは回り道して実装しないといけない場合があります。

習慣クエストにおいても、「累計値を計算してその値を別のDBで使用する」ことや、「チェックボックスが何日連続でチェックされているかを表示する」ことなど、特に複数行にまたがるようなチェックを他のDBと組み合わせるのに苦労しました。

そのためそれらの具体的な実装方法を中心に、以下の4つの実装方法について詳細に説明します。

  1. 累計経験値の算出方法

  2. 累計経験値から称号をルックアップする方法

  3. 各習慣の継続日数の算出方法

  4. ランダムにモンスターを表示する方法

ここから先は

3,396字 / 5画像

¥ 100

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