Game Feel Lab別冊 処方箋手帳 ── 社会課題 × Feel × Retention 記録 2026.08

都立学校AI Lab 上級|地域課題 × AI アプリ|5ヶ月

正しいだけでは、
開かれない。

防災でも、福祉でも、教育でも。使いたくならないアプリは、課題を解決できない。
第一章は「触った瞬間の手応え」10個。第二章は「使い続けたくなる理由」10個。第三章は「感度の鍛え方」。 そして巻末に、発表で胸を張るための自慢のタネが十粒。全部に動く実演がつき、全部に研究の裏付けがある。

0処方箋
0ミニ実演
0引用研究
0外部リクエスト

※ この数字たち自身が、処方 No.05(カウントアップ)の実演。数え方も正直に——実演 26 = このページの黒い実験窓の数。最後の「0」だけは動かない——動かないことが、誇り。

序章 ── 大原則

先に、大原則3つ。

テクニックの前に、これを守れないと全部が無駄になる。

「誰のために」を1人まで絞る

「地域のみんなのため」は、誰にも刺さらない。顔が浮かぶ実在の1人——おばあちゃん、部活の後輩、隣の席のあの人——の困りごとまで絞る。1人に深く効くものは、結果的に多くの人に効く。

7レバーから、1個だけ尖らせる

音・光・動き・タメ・数字・祝祭・生命感。全部盛りは「うるさい」。1個を尖らせて、残りは静かに支える。Feel の設計で一番大事な作業は、足すことではなく削ること。ただし研究によれば、少なすぎも同罪——答えは「適量」。

60点で出して、最初の5人に見せる

100点の構想より、60点の実物。5人に触ってもらい、どこで笑ったか・どこで手が止まったかを反応ログに取る。Feel は頭の中では検証できない。触った人の表情だけが答え。

第一章 ── 触った瞬間

触った瞬間の Feel 10

各カードは処方箋様式——症状・効能・用法・副作用。黒い枠は動く実験窓。After 側の操作が決まると、朱の「良」印が押される。

ドット絵の猫が聴診器でスマホを診察する挿絵

ボタン — 押した感

症状
押しても無反応。「効いてる?」と不安になり、連打するか離脱する。
効能
100ms以内の反応で、指と画面がつながる。「押した」が「伝わった」に変わる。
用法
:active { transform: scale(.96) } + 戻りは cubic-bezier(.34,1.56,.64,1)。100ms は飾りではなく、Swink の言うリアルタイム制御の成立条件(人の修正サイクル)。
副作用
縮みすぎ・跳ねすぎは操作を「おもちゃ」にする。scale は .95 前後まで。
見本
Nintendo Switch の HOME——押下感と音が一体。LINE は送信した瞬間に吹き出しが飛ぶ。
無反応 押した回数 0
押した感 押した回数 0
今日やる一手 — 15分で移植

手順: 自分のアプリの主役ボタン1個だけに、この2行を足す。

.btn { transition: transform .34s cubic-bezier(.34,1.56,.64,1); }
.btn:active { transform: scale(.96); transition-duration: .05s; }

進捗・ゲージ — 増えた分を先に見せる

症状
数値がパッと変わるだけでは、「増えた」実感が生まれない。
効能
増分を金色のゴーストで先に見せると、成果が目で追えて手応えになる。
用法
ゴーストは即時、本体は transition: width .55s cubic-bezier(.25,1,.4,1) .22s
副作用
全部の数字をアニメさせると「待たされるUI」になる。主役のゲージ1本だけ。
見本
格闘ゲームの体力バー(白い残りが遅れて減る)、モンストのHP表示——増減を一拍見せてから追わせる。
即時
20/100
ゴースト+イージング
20/100
今日やる一手 — 15分で移植

手順: 進捗バー本体に transition を1行。増分は色違いのバーを同じ位置に重ねる。

.bar { transition: width .55s cubic-bezier(.25,1,.4,1) .2s; }
/* 増分バーは即時に伸ばし、本体を遅れて追わせる */

ローディング — 何をしているか話す

症状
ぐるぐるだけの待ち時間は、実際より長く感じ、不安を生む。
効能
いま何をしているかを言葉で話すと、同じ3秒が短くなる。
用法
処理の段階ごとに textContent を差し替えるだけ。
副作用
嘘の進捗(97%で止まるバー)は信頼を失う。正直な言葉だけを話す。
見本
Slack 起動時の一言、Notion AI の「考えています…」——言葉が待ち時間の不安を消している。
スピナーのみ

(待機中)

言葉つき

(待機中)

今日やる一手 — 15分で移植

手順: スピナーの下に p を1個置き、処理の節目で言葉を差し替える。

msg.textContent = 'データを集めています…';
setTimeout(() => { msg.textContent = 'もうすぐ表示します…'; }, 1200);
// 嘘の進捗は書かない。言葉は正直に

完了の祝祭 — チェック+リング1個で十分

症状
やっとできたのに、画面が無言。達成が「無かったこと」になる。
効能
チェックが描かれ、リングが1個広がるだけで、達成が記憶に残る。
用法
SVG の stroke-dashoffset を 40→0 + リングを scale/opacity で拡散
副作用
毎回の紙吹雪は3日で飽きる。大きな祝祭は、大きな節目に取っておく。
見本
Apple Watch のリング達成、Todoist の完了——1秒未満の祝祭が習慣を作っている。

クリックで再生

今日やる一手 — 15分で移植

手順: 完了処理の最後に、この1呼び出しを足すだけ。

el.animate(
  [{ transform: 'scale(1)' }, { transform: 'scale(1.25)' }, { transform: 'scale(1)' }],
  { duration: 280, easing: 'cubic-bezier(.34,1.56,.64,1)' });

数字 — カウントアップ+ポップ

症状
「集まった署名 128件」と表示するだけでは、重みが伝わらない。
効能
0から駆け上がる数字は「積み上げた結果」に見える。
用法
requestAnimationFrameeaseOutCubic で約0.9秒、最後に scale ポップ
副作用
毎回のカウントアップは「待ち」になる。初回表示と更新の瞬間だけ。
見本
募金サイトの達成額、YouTube の再生数——駆け上がる数字は「生きた結果」に見える。
0 集まった署名
今日やる一手 — 15分で移植

手順: 数字を表示している行を、この6行に差し替える。

const t0 = performance.now();
(function tick(now) {
  const p = Math.min(1, (now - t0) / 900);
  el.textContent = Math.round(to * (1 - Math.pow(1 - p, 3)));
  if (p < 1) requestAnimationFrame(tick);
})(t0);

空状態 — 最初の一歩を指す

症状
初回起動の画面が「まだ何もありません」。何をすればいいか分からず閉じる。
効能
最初の一歩をひとつだけ指させば、初回10秒で「できた」が生まれる。
用法
空状態コンポーネントに「説明1行+CTA 1個」。
副作用
CTA を3個並べると、また迷わせる。指すのは1個だけ。
見本
Notion の新規ページ、Slack の新チャンネル——空白が謝罪ではなく招待状になっている。
Before

まだ何もありません

After

記録はここに育っていきます。
まずは気になる場所を、1つだけ。

今日やる一手 — 15分で移植

手順: 「まだ何もありません」の行を、この2行に差し替える。

<p>記録はここに育っていきます。まずは1つだけ。</p>
<button>+ 最初の1件を登録</button>

エラー — 責めずに、回復の道を示す

症状
「エラーが発生しました」だけ。自分が悪いのかと不安になり、二度と開かない。
効能
状況+保証+次の一手の3点で、失敗が「回復できる寄り道」に変わる。
用法
エラー文をテンプレ化。入力内容は必ず守る。
副作用
謝りすぎ・茶化しすぎは軽薄に見える。誠実に、短く。
見本
Gmail——送信に失敗しても下書きは必ず残る。「文章は無事」の保証が回復の道を開く。
Before
After

この実験窓の電波は悪い——送信は一度必ず失敗する。書いた文がどうなるかを見ること。

今日やる一手 — 15分で移植

手順: エラー表示の直前に、この保存を1行足す(消さない保証)。

localStorage.setItem('draft', input.value);   // 失敗しても文章は残る
showError('送信できませんでした',
  '内容はこの端末に残っています。もう一度試せます。', 'もう一度送る');

待機の生命感 — 完全静止は死んで見える

症状
何も操作していない画面がピクリとも動かない。「固まった?」と思われる。
効能
3%の呼吸で、画面が「生きて待っている」ように見える。
用法
animation: breathe 3.4s ease-in-out infinite(拡大は3%まで)
副作用
5%を超えると「うるさい」。動いていると気づかれない程度が正解。
見本
Nintendo Switch のアイコン、ゲームのタイトル画面——止まって見えるものほど、静かに揺れている。
静止
記録をはじめる
呼吸
記録をはじめる
今日やる一手 — 15分で移植

手順: 画面の主役1個だけに、この呼吸を足す。

.hero-btn { animation: breathe 3.4s ease-in-out infinite; }
@keyframes breathe { 50% { transform: scale(1.03); } }

音 — 使うなら1個だけ、上品に

症状
効果音を増やすほど、アプリは安っぽく、うるさくなる。
効能
一番大事な瞬間の1音は、視覚より速く「できた」を伝える。
用法
WebAudio で sine 波 880Hz、gain 0.14 → 0.5秒で減衰。ファイル不要
副作用
2音目から「うるさい」が始まる。足したくなったら、まず1個削る。
見本
Nintendo Switch のUIサウンド、みてねの通知音——小さく・短く・澄んだ音だけが生き残る。

上品な和音3種の聴き比べ。どれも小さく・短く・澄んでいる。
初期状態でこのページから鳴る音はここだけ。紙の音(検印・めくり・鉛筆)は右上のトグルで招ける——音は選ばせるのが礼儀

今日やる一手 — 15分で移植

手順: 音声ファイルは不要。一番大事な完了の瞬間に、この和音を1回だけ。

const ctx = new AudioContext(), t = ctx.currentTime;
[523.25, 659.25, 783.99].forEach((f, i) => {
  const o = ctx.createOscillator(), g = ctx.createGain();
  o.frequency.value = f;
  g.gain.setValueAtTime(.0001, t);
  g.gain.exponentialRampToValueAtTime(.07, t + .02 + i * .04);
  g.gain.exponentialRampToValueAtTime(.0001, t + .8);
  o.connect(g).connect(ctx.destination); o.start(t); o.stop(t + .85);
});

触って分かる導線 — 現れて、応える

症状
全部が一度に表示される画面は、どこを見ればいいか分からない。
効能
順に現れ、触ると応える画面は、説明なしで視線を導ける。
用法
IntersectionObserver で表示時にクラス付与、CSS transition で浮上
副作用
出現を待たせすぎるとイライラに変わる。0.7秒以内・1回だけ。
見本
Apple の製品ページ、ゼルダの祠の光——1要素ずつ現れ、光が視線を導く。説明はない。
さわってみて

……そして、このノート自体がそう作られている。節はスクロールで現れ、カードはホバーで姿勢を正す。

今日やる一手 — 15分で移植

手順: 現したい要素に .reveal を付け、この監視を1個だけ動かす。

new IntersectionObserver(es => es.forEach(e => {
  if (e.isIntersecting) e.target.classList.add('in');
}), { threshold: .15 }).observe(el);
/* CSS: .reveal { opacity: 0; translate: 0 18px; transition: .6s; }
        .reveal.in { opacity: 1; translate: 0 0; } */

理論の窓 — 感触は、カーブが決める

Swink『Game Feel』(2008) の核: game feel とはリアルタイム制御 × 模擬空間 × 磨き(polish)の合成で、プレイヤーには「シミュレーションと磨きの区別がつかない」。そして動きの感触は、音と同じく ADSR(立ち上がり Attack/減衰 Decay/持続 Sustain/余韻 Release)のカーブが決める——マリオのジャンプは、この調律の名作。

距離も時間も、全部同じ。違うのは立ち上がりのカーブだけ——それだけで「重さ」の印象が変わる。

さらに2つ。メタファは約束——同じ物理でも「石」と「風船」では期待される動きが違う。見た目・文言・色は、動きに対する約束状として働く。そして文脈が感触を変える——同じ速度でも、狭い通路では速く、広い広場では遅く感じる。余白と密度の設計も、Feel の一部。

※欄外注 ── 副作用の行は比喩ではない。過剰な juice は有能感を実際に下げる(Kao 2024 →資料)。効く薬ほど、用量を守ること。

初日の体験は、Feel が作る。
二日目に開くかどうかは、続ける理由が決める。

社会課題アプリの勝負は、リリース日ではなく2回目に開かれるかどうか。 Duolingo・Forest・Nike Run Club・Headspace——「続くアプリ」が共通で持つ設計を、研究の裏付けごと5個に絞った。 ゲームでは常識、社会課題では倫理との綱引きになる領域。線の引き方まで含めて処方する。

※誠実な注記 ──「毎日使われる → 社会成果が出る」の橋は、まだ直接実証されていない(研究の現在地)。 ここにあるのは「使われないアプリは効かない」という前提条件の設計であって、成果の保証ではない。発表でもそう言うこと。

ベンチでお茶をのむスライムと、隣で眠る猫の挿絵
第二章 ── 続ける理由

使い続けたくなる 10

「やめられない」を作るのではない。「戻りたい」を作る。その違いが、倫理線のこちら側と向こう側。前半5個は動機の芯、後半5個は行動科学の古典が磨いた形。

スライムがカレンダーに朱色のスタンプを押す挿絵

核概念 ──「主人公感」

使っているとき、自分がこの物語の主人公だと感じられるか。気持ちいいとは、自分の行動に世界が応えてくれる実感のこと——第一章の10個も、この章の5個も、全部この一本の定義でつながっている。

主人公感を駆動するのは選択と代償。自分の判断が結果を変えるとき、人は画面の中の出来事を「自分の物語」として引き受ける。だから続きが気になる。

ストリーク — 続きを祝い、1日は赦す

症状
続ける仕組みがない。今日やっても、明日につながらない。
効能
連続記録は「続いている自分」を可視化する、継続の最強装置。主語を「あなた」にすると、記録が自分の物語になる。
用法
localStorage に日ごとの記録配列+修復トークン1個。復帰日は金色で残す。
副作用
1日の欠けで全ゼロにすると「恐怖で縛る」設計に転落(loss aversion)。赦しを必ずセットで。
見本
Duolingo のストリークフリーズ&修復——罰ではなく保険。休んだ日を「例外」として扱う。
出典
Hamari et al. 2014 — 報酬を取り上げると loss aversion で逆効果。Duolingo のストリーク修復が実務の解。

あなたは0日、守っている。

今日のぶんを記録してみて。

「翌日へ」で1日サボってみること。そして主語を切り替えること——同じ数字でも、体温が変わる。

今日やる一手 — 15分で移植

手順: 日付をキーに記録し、連続数は「今日から過去へ」数える。昨日1日だけの欠けは赦す。

const days = JSON.parse(localStorage.getItem('days') || '{}');
days[new Date().toDateString()] = true;   // 今日を記録
localStorage.setItem('days', JSON.stringify(days));
// 昨日だけ欠けたら「取り戻す」ボタンを出す。全ゼロには戻さない

進捗の投資 — 記録が資産になる

症状
開くたびまっさらなアプリに、戻る理由はない。使った時間がどこにも積もらない。
効能
使った分が目に見える資産として貯まり、開くたび自分の歴史が迎える。Nike Run Club の累計距離、Headspace の累計時間。ゲームで言う permanence のアプリ版。
用法
localStorage に記録を蓄積。空でも消さない。「戻りたい理由」を育てる。
副作用
資産を人質に取る(「消えるぞ」と脅す)と、投資ではなく監禁になる。
見本
GitHub の草、Nike Run Club の累計距離、Headspace の累計分数——開けば自分の歴史が迎える。
出典
SDT(自己決定理論)— 蓄積の可視化は有能感を支える。Vlambeer は permanence を juice の主要技法に挙げる。

まだ何もない。1回目がいちばん重い。

このページを閉じて、また開いてみて。庭は残っている。それが「投資」。

今日やる一手 — 15分で移植

手順: 行動のたび1行貯めて、起動画面の一番上に累計を出す。

const log = JSON.parse(localStorage.getItem('log') || '[]');
log.push(Date.now());
localStorage.setItem('log', JSON.stringify(log));
banner.textContent = `累計 ${log.length} 回`;   // 開くたび最初に見せる

変動報酬 — 好奇心は◎、射幸は禁じ手

症状
毎回同じ結果は、いつか飽きる。だが「たまに大当たり」に頼ると危ない。
効能
不確実性をガチャではなく好奇心で使えば、報酬なしで次を開かせられる。「知りたい」は枯れない燃料。
用法
報酬の乱数ではなく、解消できる不確実性のループ(Q→A→次のQ)を作る。
副作用
射幸(ガチャ)に転ぶと依存設計。社会課題アプリでは禁じ手。
見本
Duolingo のレッスン予告、連続ドラマの引き——「答えの直後に次の問い」が次回を開かせる。
出典
Kao et al. CHI 2024 (n=1,699) — 自由プレイ時間を唯一予測したのは好奇心。報酬量ではない。
射幸型(禁じ手)
なにが出るかな……
開けた回数 0

……気づけば連打している。これが変動比率強化。効くからこそ、禁じ手。

好奇心型

「知りたい」が次を開かせる。報酬ではなく。

今日やる一手 — 15分で移植

手順: コンテンツを Q→A の対で持ち、A の直後に次の Q を見せる。

const QA = [['家で一番危ない場所は?', '窓のそばと家具の転倒範囲'] /* … */];
show(QA[i][0]);                    // 問いを開く
onAnswer(() => show(QA[i][1]));   // 解消する
teaser(QA[i + 1][0]);              // すぐ次の問いを見せる

フィードバック — 点数を配るな、意味を返せ

症状
とりあえずポイント付与。数字は増えるが「で、何が良くなったの?」に答えられない。
効能
行動の意味を伝える1行は、内発的動機を育てる。「+10pt」ではなく「先週の自分より2日多い」。
用法
ユーザー自身の履歴と比較した1文を生成。他人とのランキングより、過去の自分。
副作用
点数配りは内発的動機をそぎ落とす。同じ1行でも、向きが真逆になる。
見本
LINE の既読、Nike Run Club の自己ベスト通知——1行で行動の意味を返す。ポイントは配らない。
出典
Deci, Koestner & Ryan 1999(128研究メタ分析)— 有形報酬 d≈−.28〜−.40 / 情報的フィードバック d≈+.31〜+.33
点数配り
0 pt

で、ポイントで何ができるの?

情報的フィードバック

(まだ記録がない)

行動の意味が、そのまま返ってくる。

今日やる一手 — 15分で移植

手順: ポイント加算の1行を、自分の過去との比較の1行に置き換える。

const diff = thisWeek - lastWeek;
msg.textContent = diff > 0
  ? `先週の自分より ${diff} 回多い`
  : '先週の自分と、並走中';

本物のインパクト — 画面の前進を、現実の前進に

症状
アプリ内だけで完結する進捗は、いつか空虚になる。バッジ100個でも、現実は1mmも動かない。
効能
アプリ内の前進を現実の前進に固定レートで接続すれば、進捗は空虚にならない。Forest は仮想の木を本物の植林200万本超につなげた(Trees for the Future 提携)。
用法
「5回の記録 = マップ1枚が地域に届く」のように換算レートを固定・明示
副作用
換算を水増しした瞬間、全部が嘘になる。正直さが生命線。
見本
Forest の植林200万本超、Ecosia の検索→植樹——画面の前進が現実の前進とつながっている。
出典
倫理原則の第一条「本物の行動を juice せよ」の実装形。Forest は Serious Fun の代表例。
0/5

地域に届いたマップ 0

5回の記録で1枚、が正直な換算レート。アプリの中の前進が、現実の前進とつながっている。

今日やる一手 — 15分で移植

手順: 換算レートを定数で固定し、次の現実インパクトまでの残りを見せる。

const RATE = 5;   // 5回の記録 = 1枚のマップ(水増ししない)
label.textContent =
  `あと ${RATE - count % RATE} 回で、地域にマップが届く`;
スタンプカードに印を押すスライムと見守る猫の挿絵

ここまでの5個は、動機の芯。ここからの5個は、行動科学の古典が磨いた「続きたくなる形」——ただし全部、本物の前進に接続することが条件。

目標勾配 — ゴールが近いほど、人は速くなる

症状
「50%完了」の表示が「まだ半分もある」と読まれ、歩みが止まる。
効能
ゴールが近いほど行動は加速する。「あと2個」と残数で見せるだけで、最後の坂が下り坂になる。
用法
進捗は「%」ではなく残数で。ゴール直前だけ、演出を1段強くする。
副作用
偽のゴール・水増しの残数で急がせるのは搾取=時間泥棒。ゴールは本物の前進にだけ置く。
見本
スタンプカードの最後の1個、ゲームの「実績まであと1」——終わりが見えた瞬間、足が速くなる。
出典
Kivetz, Urminsky & Zheng 2006 — カフェ会員はゴールに近づくほど購入間隔が短縮(目標勾配のフィールド実証)。
まだ 3/10
あと2個

正直に——どちらを先に押したくなった? その引力が目標勾配。

今日やる一手 — 15分で移植

手順: 進捗表示を「%完了」から「残数」へ差し替える。

label.textContent = `あと ${goal - count} 個で完成`;
if (goal - count <= 2) label.classList.add('near');  // 最後だけ1段強調

授かり進捗 — ゼロから始めさせない

症状
まっさらなカードは重い。ゼロからの一歩目が、いちばん高い。
効能
最初から少し進んだ状態で渡すと、同じ残り8回でも完走率が約2倍になる(授かり進捗効果)。
用法
初回セットアップの完了を「最初の2個」として先に押してあげる。理由を添えて
副作用
授かりを隠すと「なぜもう2個?」の不信になる。多すぎる授かりは達成自体を安くする。理由の明示と少量が規律。
見本
入会ポイント、ゲームのチュートリアル報酬——「もう始まっている」状態で手渡している。
出典
Nunes & Drèze 2006 — 洗車カード実験。10個中2個押済は8個白紙より完走率約2倍(34% vs 19%)、完走も速い。
8枠・白紙
10枠・2個は授かり

残りは、どちらも8回。なのに遠さが違って見える。「礼」の2個が授かり。

今日やる一手 — 15分で移植

手順: 新規ユーザーの進捗をゼロから始めない。ただし理由は正直に。

const progress = saved ?? 2;   // 「登録ありがとう」の2個から始める
note.textContent = '登録で2個プレゼント済み';   // 授かりは隠さない

未完の引力 — 開いたループが、再訪を呼ぶ

症状
きれいに完結して閉じた体験は、思い出す理由も残らない。
効能
人は完了した課題より中断した課題を約2倍おぼえている(ツァイガルニク効果)。開いたループが「つづき」への引力になる。
用法
閉じるときに「つづき」を1個だけ保存し、次回起動の最初に見せる。
副作用
ループの量産は通知地獄=時間泥棒。未完は常に1個、ユーザー自身の目標に資するものだけ。
見本
Netflix の「続きを見る」、Kindle の栞——栞が、次に開く理由になっている。
出典
Zeigarnik 1927 — 中断課題は完了課題より約2倍想起される。Ovsiankina 1928 は中断課題の自発的再開を実証。
無言で完結

(今日のぶんは終わりました)

つづきが待つ

つづきが保存されています

避難ルートの確認 — 3/4 まで完了

どちらの画面に、明日もう一度戻りたくなるか。

今日やる一手 — 15分で移植

手順: 閉じる前に、開いたループを1個だけ保存する。

localStorage.setItem('resume', JSON.stringify(
  { label: '避難ルートの確認', step: 3, total: 4 }));
// 次回起動の最初に「つづき: 3/4」を見せる。未完は常に1個だけ

収集と図鑑 — 空き枠が、次の口実になる

症状
1つずつの達成は、積んでも景色にならない。「やった感」が散らばる。
効能
集めたものが一覧の枠に並ぶと、空き枠が次の行動の口実になる。「セット」に見えた瞬間、完集欲が生まれる。
用法
行動の成果をカード化して図鑑の枠に置く。未発見はシルエットで見せる。
副作用
コンプ圧で時間や課金を搾るのはガチャの親戚。枠は本物の行動でだけ埋まるものにする。
見本
ポケモン図鑑、御朱印帳、駅スタンプ——空いている枠が、次の外出の口実になる。
出典
Barasz, John, Keenan & Norton 2017 — 擬似セット効果: ただの課題群も「セット」として見せると完遂動機が上がる。

まちの防災図鑑。空いている枠が、次の散歩の口実。

今日やる一手 — 15分で移植

手順: 成果を一覧の枠に置き、未発見はシルエットにする。

zukan.innerHTML = ITEMS.map((it, i) =>
  i < found ? `<b>${it}</b>` : '<i>?</i>').join('');
// 枠が「本物の行動」でだけ埋まるなら、完集欲は味方になる

振り返りの贈り物 — 蓄積が、物語になって返ってくる

症状
毎日の記録は、日々の中では小さすぎて、誇りにならない。
効能
蓄積を月次の物語として返すと、データが誇りに変わる。体験の記憶はピークと結末で決まる——月報はその両方を作る装置。
用法
月に1度、その人のデータから1枚のカードを自動生成して贈る。
副作用
盛った月報は1回でバレる。数字は正直に、比較は過去の自分とだけ。
見本
Spotify のまとめ(Wrapped)、Nintendo Switch の年間振り返り——1年分のデータが自分の物語として返ってくる。
出典
Kahneman らのピーク・エンド効果 — 体験の記憶は頂点と終わり方で決まる。月報は蓄積に「頂点と結末」を与える。

このノートで実際に触った記録から生成される——あなたのデータが、あなたの物語になる。

今日やる一手 — 15分で移植

手順: 月に1度、蓄積から1枚を自動生成して贈る。

report.textContent =
  `${month}月のあなた: 記録 ${log.length} 回・連続 ${streak} 日。` +
  `いちばん動いた週は 第${bestWeek}週 でした。`;
// 数字は正直に。比較は過去の自分とだけ
資料 ── 引用研究

感覚論に見えて、全部に裏がある。

この20個の処方箋を支える研究と枠組み11本を、カードにして貼っておく。発表で突っ込まれたら、ここを引くこと。

虫眼鏡でスライムを標本のように観察する挿絵
CHI 2024n=1,699事前登録実験

夢中を駆動するのは、好奇心。

自由プレイ時間を唯一予測したのは「解消できる不確実性=好奇心」。しかもフィードバックを増幅しすぎると efficacy −.19 / competence −.43 と逆効果——過剰な演出は「自分が動かしている感覚」を壊す。

Kao et al. "How does Juicy Game Feedback Motivate?" doi:10.1145/3613904.3642656

実験 2020N=3,018juiciness最大規模

演出は「逆U字」。少なすぎも同罪。

juiciness がゼロでも過剰でも、プレイ時間・内発的動機・成績が有意に下がる。正解はミニマリズムではなく適量(カリブレーション)。「削る」とは盛りすぎを削るの意。

Kao 2020, juiciness studies(IEEE ToG 系サーベイ arXiv:2011.09201 も同旨)

メタ分析 1999128研究自己決定理論

報酬は動機を削り、情報は育てる。

予期された有形報酬は内発的動機を d≈−.28〜−.40 でそぎ落とす。一方、情報的な「できた」フィードバックは d≈+.31〜+.33 で高める。「点を配る」と「手応えを返す」は別物

Deci, Koestner & Ryan, Psychological Bulletin 1999

レビュー 201424研究ゲーミフィケーション

ポイント・バッジは条件付きでしか効かない。

全項目ポジティブは24本中わずか2本。効果は文脈依存で、教育・学習が最もポジティブ。そして与えた報酬を取り上げると loss aversion で逆効果——熱心なユーザーほど強く。

Hamari, Koivisto & Sarsa "Does Gamification Work?" HICSS 2014

CHI PLAY 2019定義研究

juiciness の学術定義。

「単一の行動が複数の非機能的反応を引き起こす、冗長なフィードバックの提供」。実験では、演出は見た目の魅力を必ず上げるが、有能感が上がるのは特定条件下のみ。盛れば効く、ではない。

Hicks & Gerling et al. "Juicy Game Design" doi:10.1145/3311350.3347171

メタ分析 2014k=183N=212,468

内発は「質」を作り、外発は「量」を作る。

内発的動機は成果のを予測(β=.35、外的報酬は .06)。外的報酬が予測するのは(β=.33)。深く自発的な行動が要る社会課題では、内発的動機が主役。

Cerasoli, Nicklin & Ford, Psychological Bulletin 2014

書籍 2008定義研究

game feel の定義。手触りは機能と同格。

game feel =リアルタイム制御 × 模擬空間 × 磨き(polish)。応答は約100ms以内がリアルタイム制御の成立条件で、プレイヤーには「シミュレーションと磨きの区別がつかない」——表面の手触りは、衝突判定と同じくらい体験を決める。

Swink, "Game Feel: A Game Designer's Guide to Virtual Sensation," Morgan Kaufmann 2008

JMR 2006フィールド実験カフェ会員

ゴールが近いほど、人は速くなる。

スタンプカードの会員は、ゴールに近づくほど購入間隔を短縮した。カードがリセットされると、また減速する——動機を作っていたのは能力でも好みでもなく、進捗の見え方そのもの

Kivetz, Urminsky & Zheng, "The Goal-Gradient Hypothesis Resurrected," JMR 2006

JCR 2006フィールド実験洗車カード

進んだ状態で渡すと、完走が約2倍。

残り8回は同じなのに、「10個中2個押済」のカードは「8個白紙」より完走率が約2倍(34% vs 19%)で、完走までも速かった。始まり方が、続くかどうかを変える。

Nunes & Drèze, "The Endowed Progress Effect," JCR 2006

古典 1927実験心理学

人は、未完を約2倍おぼえている。

中断された課題は、完了した課題より約2倍想起される(ツァイガルニク効果)。Ovsiankina 1928 は中断課題が自発的に再開されることを実証——開いたループは、再訪を呼ぶ。

Zeigarnik 1927 / Ovsiankina 1928(ベルリン学派)

枠組み 20158つのコアドライブ白帽 / 黒帽

動機は8種類に分けて設計できる。

Yu-kai Chou の Octalysis は、人を動かす動機を8つ(意義・達成・創造・所有・社会性・希少・不確実性・回避)に分解し、長期の信頼を作る White Hat と、短期の強迫を作る Black Hat を分ける。実験結果ではなく設計の地図——第二章の処方がどの動機を触っているかは、これで言語化できる。

Yu-kai Chou, "Actionable Gamification: Beyond Points, Badges, and Leaderboards"(2015)/Octalysis framework(2012–)

付録 ── 実験室への扉

もっと触りたい人へ — Game Feel Lab デモ集

各ワンポイントの「完全版」がここにある。全部このフォルダ内で動く。

第三章 ── 審美性の鍛え方

ワクワクは、感度から生まれる。

時間をかけて磨く、の前に。「気持ちいい」に気づける目を、日々の稽古で育てる。才能ではなく、習慣が5つ。

ドット絵の猫がルーペでノートを観察する挿絵
稽古 其の一

分解 — コマ送りで観察する

「今の、なんか気持ちいい」と思った瞬間に一時停止。コマ送りで観察して、何が起きているかを言語化する。桜井政博は「分析しながら遊ぶ」と言う——ヒットストップに気づけるのは、止めて見た人だけ。

稽古 其の二

収集 — 自分のコレクションを持つ

気持ちいいUI・演出に出会ったら、スクショと画面録画で保存。見返すたびに感度が上がる。プロはみんな reference library を持っている。集めた数だけ、引き出しになる。

稽古 其の三

模写 — 1個だけ再現してみる

いちばん好きな動きを、1個だけ自分で作って再現する。写経すると、7レバーのどれが効いていたのか必ず見つかる。再現できた技は、一生使える。

稽古 其の四

比較 — 2つ並べて、差を言葉にする

同じ機能のアプリを2つ並べて、違いを言葉にする。言葉にできた差だけが、自分の設計に持ち帰れる。このノートの実験窓(Before/After)は、その練習台として作ってある。

稽古 其の五

辞書化 — 「気持ちいい辞典」を育てる

見つけたら、その場で1行書き留める。書いた分だけ、あなたの語彙になる。感度は、語彙の数に比例する。→ 実演は巻末・検印ページの入力欄で。

別帖 ── 見本帳

名作は、全部この処方で読める。

ロゴも画像も要らない。挙動を言葉で観察できれば、手元のどのアプリも教材になる(稽古・其の四の実践)。番号は処方 No.。

スライムと猫が小さな額の並ぶ壁を眺める挿絵

Duolingo

No.03 · 11 · 13 · 14

赦しつきストリーク(フリーズ/修復)。レッスン予告が「次は何を習う?」を開き、フィードバックは学習の意味を返す。

Nintendo Switch

No.01 · 08 · 09

HOME の押下感と音が一体。アイコンは静かに揺れ、UIサウンドは小さく短く澄む。引き算の見本。

モンスターストライク

No.02 · タメと解放

引っ張り→放つ一連が「タメ→解放」の快感設計そのもの。HPバーは減った分が一拍遅れて追う。

みてね

No.09 · 12 · 14

通知音が上品。子どもの成長が時系列の資産として貯まり、「家族が見たよ」が意味のフィードバックになる。

LINE

No.01 · 14

送信した瞬間に吹き出しが飛ぶ即時性。「既読」は1文字で「届いた」の意味を返す情報的フィードバック。

GitHub

No.12

草(contributions)は積み上げの可視化そのもの。空白を埋めたくなるのは、資産が育っているから。

Nike Run Club

No.04 · 12 · 14

累計距離という資産、自己ベスト更新の祝祭、比べる相手はいつも「先週の自分」。

Forest

No.15

仮想の木がコインになり、本物の植林200万本超へ。画面の前進と現実の前進の接続の代表例。

Gmail

No.07

送信に失敗しても下書きは必ず残る。「文章は無事」という保証が、回復の道を開いている。

Apple Watch

No.04 · 05

リングが閉じる瞬間の祝祭。数字ではなく「円が満ちる」進捗表現が、達成を体で分からせる。

特務機関NERV防災

No.03 · 大原則①

0.466秒の配信速度が手応えそのもの。天気で普段使いされるから、災害のとき開かれる。

ゼルダの伝説

No.10

祠の光・地形のライン。説明せずに視線と足を導く「見えない導線」の教科書。

別帖 ── 世界の見本帳

世界は、もう移植している。

ゲームとエンタメの力を、研究・健康・寄付・OSの手触りに転用した海外事例12種。数字は出典つきで確かめたものだけを載せた(確証が弱いものは「とされる」と明記)。カードを開くと採集済になる——この章自体が処方 No.19(収集と図鑑)の実演。

地球儀を眺めるスライムと猫の挿絵
採集 0/12

まだ1つも開いていない。空いた枠が、次に読む口実になる。

Sea Hero QuestGlitchers × Alzheimer's Research UK × UCL / UEA

認知症研究のデータ収集を、船の冒険ゲームに。
移植
実験室の空間認知テストを、霧の海を航海して地図をたどる遊びに置き換えた。研究参加ではなく、遊びとして配った。
結果
2021年10月時点で 430万人がプレイ、累計 117年ぶんの航行データ。成果は Nature 2022(Coutrot et al.)に掲載。従来手法なら1万7,600年かかる量とされる。
処方
No.15(本物のインパクト)・大原則①

学び ── 研究は「ご協力ください」ではなく「遊びたい体験」にした瞬間、桁が変わる。

Coutrot et al., Nature 604, 104–110 (2022) / Alzheimer's Research UK

FolditUniversity of Washington

タンパク質の折り畳みを、点数の出るパズルに。
移植
専門知識が要る立体構造の探索を、形をいじると点が動くパズルに。科学の言葉を一切使わずに遊ばせた。
結果
長年未解決だったサル由来ウイルス(M-PMV)のタンパク質構造を、プレイヤーが 約10日で解ける模型に到達。論文の著者欄に プレイヤー集団の名前が載った(Nature Struct. Mol. Biol. 2011)。
処方
No.13(好奇心)・No.19(収集と図鑑)

学び ── 遊びの動機は、総当たりの計算が届かない場所に届くことがある。

Khatib et al., Nat Struct Mol Biol 18, 1175–1177 (2011) — 著者に Foldit Contenders Group / Void Crushers Group

Zombies, Run!Six to Start × Naomi Alderman

ランニングに、耳から届く物語を。
移植
走行記録アプリにラジオドラマを重ねた。走ると物語が進み、物資を集め、追われる。数字ではなく続きが次を走らせる。
結果
2012年公開。累計 1,000万ダウンロードとされる(公表値は出典により 850万〜1,000万と幅がある)。
処方
No.18(未完の引力)・No.03(言葉で話す)

学び ── 続きが気になる限り、明日も走る理由は尽きない。

Six to Start プレスキット / Wikipedia(数値は幅があるため要注意)

FreericeUN World Food Programme

語彙クイズの正解が、そのまま寄付になる。
移植
寄付のお願いをやめ、クイズに正解する快感そのものを寄付の回路にした。換算レートは1問=10粒と明示。
結果
2007年開始(2009年に国連WFPへ寄贈)。累計 2,240億粒相当を拠出したとされる。スポンサーが粒に応じて拠出する仕組みで、資金は100%WFPへ。
処方
No.15(本物のインパクト)・No.14(意味を返す)

学び ── 「正解したら誰かが助かる」——換算レートが明快なほど、手は止まらない。

freerice.com FAQ / UN WFP・World Food Forum 発表(累計値は発表時点により変動)

Apple Watch アクティビティリングApple

運動を「3つの輪を閉じる」収集に。
移植
歩数という数値を、閉じるか閉じないかのに変えた。3本の輪は動く人・鍛える人・座り仕事の人と、別々の相手に向いている。
結果
2015年の初代から続き、2025年に10周年の記念アワードが配布された。「リングを閉じる」は日常語になっている。
処方
No.04(完了の祝祭)・No.11(ストリーク)・No.19(収集)

学び ── 数値は読まないと分からない。形は、見た瞬間に体で分かる

Apple Newsroom(2025年4月・10周年アワード告知)

iOS ラバーバンドスクロールBas Ording / Apple

紙とばねの物理を、画面のふちに。
移植
ゲームで使われていた慣性と反発の物理を、OSのスクロールに持ち込んだ。端に着くと伸びて、指を離すと戻る。
結果
2005年に Bas Ording が実装(米国特許 7,469,381)。Jobs がこの手触りを見て「これで電話が作れる」と考えたと伝えられ、以後ほぼ全OSの標準作法になった。
処方
No.01(押した感)・理論の窓(模擬空間の手応え)

学び ── 端に着いた時の跳ね返り1つで、平らな画面が「物」になる。

US Patent 7,469,381 / 各種報道(Jobs の逸話は伝聞)

Duolingo リーグDuolingo Leagues

学習に、週替わりのリーグ戦を。
移植
対戦ゲームの週次リーグと昇降格を学習に。相手は世界の見知らぬ30人で、勝ち負けより「今週の自分の席」が気になる作りにした。
結果
リーグ参加者は滞在時間が 約20% 長いとされる(各社分析による推計で、社の公式発表ではない)。連続記録との併用が定着の柱と説明されている。
注意
降格の恐怖に寄りかかると No.11 の副作用(loss aversion)に転落する。競争は主役ではなく、来る口実に留めること。
処方
No.11(ストリーク)・No.16(目標勾配)

学び ── competition は燃料になるが、強すぎる火は人を焼く

Lenny's Newsletter(元 Duolingo CPO 寄稿)ほか第三者分析(数値は推計)

WordleJosh Wardle → The New York Times

結果報告を、ネタバレしない絵文字の格子に。
移植
スコア自慢を答えを漏らさない緑と黄の格子に変換した。見た人は内容が分からないので、自分でも解きたくなる。
結果
2021年11月初旬は 1日約90人。2022年1月に 30万人、まもなく 200万人。広告費ゼロ。2022年1月31日に NYT が買収。
処方
No.14(意味を返す)・拡散の設計

学び ── 共有したくなる形を1つ作れば、宣伝はいらない。

The New York Times 発表(2022年1月31日)/各種報道

Pokémon GONiantic × The Pokémon Company

収集と探索を、現実の街の上に。
移植
図鑑を埋める動機を、そのまま現実の歩行に接続した。地図の空白が、外出の口実になる。
結果
BMJ 2016(n=1,182)で導入後の歩数増を確認、ただし 6週間で消失。JMIR 2016 では熱心な利用者で +1,473歩/日(25%超)。
注意
効果は本物、しかし「一時的」も本物。祭りは動機を起こせるが、続ける設計は第二章の仕事。
処方
No.15(本物のインパクト)・第二章全体

学び ── 起爆はできる。持続は、別の技術

Howe et al., BMJ 2016;355:i6270 / JMIR 2016;18(12):e315

Zooniverse / Galaxy ZooOxford ほか市民科学プラットフォーム

銀河の分類を、誰でもできる仕分けに。
移植
研究者しか触れなかった観測画像を、「渦巻きか、楕円か」を選ぶだけの仕分けに分解した。1件は数秒で終わる。
結果
Galaxy Zoo は初年度に 15万人超5,000万件超を分類。Zooniverse 全体では査読論文 100本超が生まれている。
処方
No.19(収集と図鑑)・No.12(進捗の投資)

学び ── 1件が数秒まで小さく割れたとき、参加者は桁で増える。

Zooniverse / Galaxy Zoo 公表資料(累計値は時点により変動)

Tinder のスワイプJonathan Badeen / Tinder

トランプをめくる手つきを、選択のUIに。
移植
ボタンを押す操作を捨て、カードの束を放る手つきに置き換えた。狙いを定める必要がなく、判断が速く、迷いが減る。
結果
共同創業者 Jonathan Badeen がトランプの束から着想したと語っており、「右にスワイプ」は英語の日常語になった。
処方
No.01(押した感)・理論の窓(メタファは約束)

学び ── 良い比喩は説明を消す。カードなら、誰でも投げ方を知っている。

Badeen 本人のインタビュー各種(着想の逸話は本人談)

Robinhood の紙吹雪反面教師 — Confetti

祝う対象を間違えると、演出は凶器になる。
移植
取引の完了にゲームの祝祭(紙吹雪)を持ち込んだ。祝われたのは「利益」ではなく「取引したこと」そのものだった。
結果
2020年12月、マサチューセッツ州証券部門がゲーム化で未経験の投資家を誘導したとして提訴。2021年3月31日に紙吹雪を撤去。2024年、750万ドルの制裁金と是正で和解。
教訓
同じ紙吹雪でも、本物の前進に付けば祝福、回数に付けば射幸。演出の善悪は、演出の中にはない。

学び ── この一件は「ゲーム演出の禁止」ではなく、何を祝うかの選択が問われた事件だった。

Massachusetts Securities Division(2020年12月提訴・2024年和解)/CNBC・CNN 報道(2021年3月31日)

別帖 ── 自慢のタネ

自慢のタネ、十粒。

発表会で「ここ、触ってみてください」と自信を持って言うための小さな武器。どれも30秒で説明できて、15分で実装できる。

「自慢していい」の3条件

  1. ① 意図を1行で言える「なぜそう動くのか」を一息で。言えないなら、まだ飾り。
  2. ② Before を見せられる無い状態と並べて初めて、差は伝わる。この手帳の実験窓と同じ。
  3. ③ 7レバーのどれかに紐づく音・光・動き・タメ・数字・祝祭・生命感。宙に浮いた技は迷子になる。

3つ揃わない技は、まだタネのまま。発表では、揃った一番の1粒だけを胸を張って見せる。

粒の一

音は「離した瞬間」に鳴らす

押し込んでいる間はまだ迷える時間。指が離れた瞬間が「決めた」の瞬間——完了の合図は release に置く。

見せゼリフ:「押した時じゃなく、離した時に鳴るんです。決めた瞬間だから」

長めに押してから、離してみること。どちらが「決めた感」?(音トグルONなら音も同じ瞬間に)

粒の二

増える数字はカウントアップ、減る数字は即時

嬉しさは伸ばし、痛みは短く。増加は駆け上がらせて味わわせ、減少は一瞬で済ませる。

見せゼリフ:「増える時だけ数字が走ります。減る時は一瞬——嬉しさだけ引き伸ばしました」

50
粒の三

最初の100msは何も見せない

一瞬で終わる処理にスピナーを出すとチラつき=不安のノイズになる。出すのは100ms待ってから。

見せゼリフ:「速い時はローディングを出しません。出す方が遅く感じるので」

即スピナー

(待機中)

一拍待ってから出す

(待機中)

速い処理では、右は何も出さずに終わる。スピナーの閾値はおよそ100ms〜400ms——出すか迷う速さなら、出さない。

粒の四

波紋は押した場所から広がる

中央からの演出は「アプリの都合」。自分の指が起点だと、世界を動かしたのは自分になる(agency)。

見せゼリフ:「どこを押しても、波はあなたの指から始まります」

この面の、好きな場所を押す
粒の五

エラーの赤より、直った瞬間の緑を一拍強く

記憶に残すべきは失敗ではなく回復。失敗は静かに告げ、復帰の瞬間にいちばん良い演出を置く。

見せゼリフ:「失敗は静かに、復帰は華やかに、にしてます」

→ このページの実演: 処方 No.07 の「もう一度送る」成功時が、エラー表示より強く祝われる。

粒の六

「保存しました」より「あなたの3件目の記録」

システムの報告は流れて消える。数えると所有になり、所有は愛着になる。主語を「あなた」に。

見せゼリフ:「保存の報告じゃなくて、あなたの記録の話をさせてます」

→ このページの実演: 処方 No.11 の主語切り替えと No.14 の情報的フィードバック。

粒の七

最下部に小さなご褒美

最後まで来た人だけが見つける一言は発見の報酬。仕込みは1行でいい。見つけた人は、人に言いたくなる。

見せゼリフ:「一番下まで見てくれた人にだけ、ひとこと仕込みました」

→ このページの実演: この手帳の裏表紙にも一粒仕込んである。(見た?)

粒の八

押せないボタンにも返事

無反応は「壊れた?」の種。押せない時は微かに首を振る——断りも応答のうち。

見せゼリフ:「押せない時も、首を振って返事します。無視だけはしない」

→ このページの実演: 処方 No.05「集計する」を集計中にもう一度押してみること。

粒の九

アイコンは押された方向に2度だけ傾く

たった2度の傾きが、平面を「指の下にある物」に変える(Swink: 模擬空間の手応え)。

見せゼリフ:「右側を押すと右に沈むんです。それだけで物になる」

左半分と右半分、押し比べてみること。

粒の十

戻れる削除

消せる安心が、思い切って使える勇気になる。削除の直後だけ「戻す」を置き、静かに引っ込める。

見せゼリフ:「消しても6秒は戻れます。安心して掃除できるように」

→ このページの実演: 処方 No.12「全部消す」を押すと、「戻す」が現れて静かに消える。

規範 ── 越えてはいけない線

越えてはいけない線

天秤の挿絵。ハートの側がコインより重い

本物の行動を juice せよ。

Feel も Retention も、嘘をつくための道具ではない。偽の数字を盛るのではなく、現実の前進に手応えを返す。 ユーザーが実際にやったこと——避難経路を確認した、ゴミを1つ拾った、初めて相談を送れた——にだけ、光と音を。 そして、人の時間を奪って成立するダークパターンは、人の役に立つと言って作るアプリでは禁じ手

やっていい juice

  • 本当にできたことを、その場で祝う
  • 待ち時間に、正直な言葉で状況を話す
  • 休んだ人を罰しない——「おかえり」から始める
  • アプリ内の前進と現実の前進の換算を、正直に見せる
  • やめるとき・閉じるときも、気持ちよく送り出す

禁じ手

  • 無限スクロールで時間を溶かす設計
  • 偽の緊急性(「残り3分!」「今だけ!」)
  • 水増しの数字・実体のない進捗表示
  • 1日休んだら全てゼロに戻すストリーク(恐怖で縛る)
  • 社会課題アプリでのガチャ的変動報酬(射幸で釣る)

判定軸 ── 「全部見えていても、ユーザーは同じ選択をするか?」 Yes なら誘導(親切)、No なら操作(ダークパターン)。

検印 ── 発表前チェック

発表前チェックリスト 14問

チェックはこの端末に保存される。発表の前日に、もう一度開いて確かめること。

0/12

Feel ── 触った瞬間

Retention ── 続ける理由

検証

自分の「気持ちいい」辞典

稽古・其の五の実演。今週見つけた「なんか気持ちいい」を1行で書き留める。この端末に貯まっていく——それ自体が処方12(進捗の投資)。

    まだ空白。最初の1行が、辞書のはじまり。

    ※欄外注 ── このページの「全部消す」「空にする」を押すと、直後だけ「戻す」が現れて静かに消える。タネ・粒の十(戻れる削除)の、このページ自身での実演。