PAPER-DIGEST · 2026-09-15
Melo Legarda ら: 心拍で難易度を変える前に、「変えない仕組み」を作った — Fukai が読む
シリアスゲームの動的難易度調整 — 心拍とセル・オートマトンで「揺れないつまみ」を作る
要点 — 「変えた191回」と「変えなかった83回」
難易度を自動で変える仕組みの話は、たいてい「どう変えるか」に集まる。今日読む論文はその逆で、いちばん手間をかけているのが「どういうときは変えないか」の方だ。コロンビアの研究チームが、胸に巻いた心拍センサーの値でゲームの難しさを動かす仕組みを作り、その動きを8回・のべ6時間48分ぶん記録した。
数字で面白いのは、状態が切り替わりかけた回数の内訳である。実際に切り替えたのが 191回。切り替わりかけたが見送ったのが 83回。つまり切り替えるかどうかの判断のうち、およそ三割が「動かさない」側に倒れている。反応の遅れは平均 2.06秒。
ただし読むときに注意が要る。この論文は「心拍で難易度を変えると面白くなる」とは一言も言っていない。言っているのは「仕組みが安定して動く」ところまでだ。遊んだ人の感想は一度も集めていない。そこを取り違えなければ、設計者にとってはかなり実用的な一本である。
『Human Resource Machine』(Tomorrow Corporation, 2015)。論文が作った教材ゲームも、並べ替えの手順を遊びながら覚えさせる種類のものである。画像: Steam ストアページ
この論文は誰が書いた、どんな研究か?
論文の題は「A Dynamic Difficulty Adjustment Mechanism Based on Cellular Automata Using Cardiac Signals for Serious Games」。著者は Manuel Arturo Melo Legarda、Juliana Chantre Astudillo、José Luis Arciniegas Herrera、Carlos Hernán Tobar Arteaga の4名で、所属はコロンビア・ポパヤンのカウカ大学(Universidad del Cauca)遠隔情報学科と、同市の Institución Universitaria Colegio Mayor del Cauca 工学部である。
掲載は MDPI の学術誌 Applied Sciences、第16巻17号、論文番号8511。投稿が2026年4月22日、改訂が5月18日、受理が5月20日、公開が8月27日。査読を通ったオープンアクセス論文であって、arXiv に置かれただけの preprint(査読前の原稿)ではない。DOI は 10.3390/app16178511 である。
私がこれを今日選んだ理由は二つある。一つは、動的難易度調整(dynamic difficulty adjustment。遊んでいる最中にゲーム側が難しさを変える仕組み。以下 DDA と書く)の論文でありながら、話の重心が「調整する」ではなく「調整を我慢する」に置かれているから。もう一つは、心拍センサーを持っていない人にも移植できる考え方が中心にあるからだ。読み終えたときに手元に残るのは、機材ではなく手続きの方である。
なぜ「成績を見るだけ」では足りないのか?
DDA の古典的なやり方は、プレイヤーの成績を見ることだ。クリア率、所要時間、ミスの回数。これらが良ければ難しくし、悪ければ易しくする。仕組みとして素直だし、追加の機材も要らない。
ただ成績には見えないものがある。著者は導入部で、要求が能力を下回れば単調に、上回れば苛立ちが生まれる、という古くからの対立を引きながら、成績の数字はプレイヤーの内側で起きていることを取りこぼす、と整理する。同じクリア率でも、余裕で通した人と、歯を食いしばって通した人は別である。
そこで出てくるのが心拍だ。心拍数(BPM、1分あたりの拍数)と、心拍変動(heart rate variability。拍と拍の間隔がどれだけ揺らぐか。以下 HRV)は、体につけるだけで取れて、覚醒の度合い——ざっくり言えば「体がどれだけ立ち上がっているか」——をある程度は映す。論文が使う HRV の指標は、時間領域の SDNN(拍間隔のばらつきの大きさ)と RMSSD(隣り合う拍間隔の差の大きさ)、周波数領域の LF/HF 比(ゆっくりした揺れと速い揺れの取り合い)である。
生体信号で難易度を動かす試み自体は新しくない。実際に市販されたものもある。著者が問題にするのは、そこから先の粗さだ。指標を一つだけ見ている、短い窓と長い窓の証拠を突き合わせていない、状態が切り替わる瞬間を落ち着かせる仕組みがない——この三つを挙げて、本論文はその三つ目に重心を置く。
『Nevermind』(Flying Mollusk, 2015)。心拍センサーを繋ぐと、プレイヤーが怖がるほど世界が歪む市販ゲーム。生体信号で遊びを動かす発想自体には先例がある。画像: Steam ストアページ
心拍から難易度まで — 三つの速さで考える装置
機材は Polar H10 という胸ベルト型センサー一つ。ブラウザの Web Bluetooth 経由で、1秒に一度ほどの BPM と、拍と拍の間隔(R–R間隔、ミリ秒)が届く。論文はこのセンサーの精度について、先行研究の値として BPM で相関 r ≈ 0.93・誤差およそ ±3〜5 BPM、R–R間隔で相関 ≈0.997・拍の検出率99%超を引いている。
遊ぶ題材は「Sorting Quest」という自作の教材ゲームで、並べ替えの手順を6面で覚えさせる作りだ。バブルソートが「浮かぶ泡」(約105秒)、挿入ソートが「手札を並べる」(約50秒)、選択ソートが「宝探し」(約50秒)、クイックソートが「分ける戦士」(約50秒)、マージソートが「塔を建てる」(約60秒)、シェルソートが「宇宙跳び」(約75秒)。
肝心なのは、本編に入る前の2分である。最初の90秒は説明文を静かに読ませて、その人の低い側の心拍(fCmin)を取る。次の90秒は時間制限つきの慌ただしいミニゲームを遊ばせて、高い側(fCmax)を取る。この二つの真ん中を狙いの中心 fCmid とし、幅は(fCmax − fCmin)の20%、ただし3〜8 BPM に収める。つまり「一般に120拍は高い」ではなく「あなたの場合はこの帯より上が高い」と決めるわけだ。実測された較正値は fCmin が65〜72、fCmid が95〜106、fCmax が125〜140 BPM だった。
判定は三つの速さで同時に走る。2秒ごとに BPM だけを見て、低い(状態0)・狙い(状態1)・高い(状態2)を素早く割り当てる。12秒ごとに、10拍ぶん以上の間隔が溜まっていれば SDNN と RMSSD で検算する。一段ずれていれば BPM 7割・HRV 3割で混ぜ、二段ずれる強い矛盾のときは HRV を優先する。開始60秒以降は30秒ごとに、30拍ぶん以上の間隔を周波数に分解して LF/HF を更新する。短い窓と長い窓の食い違いは、20秒だけ結果を保持する共用の置き場で突き合わせる。
そしてセル・オートマトン(cellular automaton。単純な規則で状態を更新していく仕組み)が最後の関門に立つ。直近30個の判定を覚えていて、新しい状態は直近3回のうち2回以上現れないと採用しない。一度きりのノイズでは、つまみは動かない。例外は上で書いた強い矛盾のときだけで、そこでは HRV が待ち行列を飛び越える。
採用された状態に応じて動くつまみは四つ。要素の動く速さ、面の実効制限時間、音楽の速さ、そして基礎難度(最大時間・配列の長さ・出現の仕方)である。加えて、状態2(高い)が続いて危ないと判断されたときだけ、残機の追加と時間の追加という救済が出る。
『Human Resource Machine』の一面。並べ替えを題材にしたパズルは教材と相性がよく、論文の Sorting Quest も同じ土俵にある。画像: Steam ストアページ
8回・6時間48分の記録から何が分かったか?
検証は8セッション、合計6時間48分、1回あたり平均51.0分(標準偏差7.1分)。この間にセンサーから届いた BPM の通知は 24,316件で、届かなかった枠は 1.10%。人工的な乱れとして弾かれた R–R間隔は 3.21% だった(採用の窓は300〜2000ミリ秒)。信号は概ね素直に取れている、と読める数字である。
速さの結果が主要な数値だ。2秒ごとの判定は 10,116回実行され、センサー入力から実際にゲームのつまみが動くまでの遅れは平均 2.06秒(標準偏差0.29秒)、中央値1.98秒、95パーセンタイルでも2.78秒に収まった(Table 6)。12秒ごとの検算は1,668回、30秒ごとの周波数解析は128回走っている。
そして冒頭に書いた数である。状態の切り替えとして採用されたのが191回、オートマトンが見送ったのが83回。つまみが実際に動いた回数は合計 1,046回で、内訳は速さ278回、制限時間260回、音楽の速さ232回、基礎難度276回(Table 7)。四つのつまみにおおむね均等に散っている。救済の発動は残機追加が8回、時間追加が12回だった。
外との突き合わせも一つある。公開されている R–R データの断片に「低・中・高」の粗い活動ラベルを付け、同じ判定の流れに流し込んだ結果、50個の窓のうち一致は (9+14+11)=34、正解率 0.68、重み付き Cohen の κ(カッパ。偶然の一致を差し引いた一致度)は 約0.51、マクロ平均 F1 は 0.69。著者はここで踏み込まず、「代理ラベルは活動の水準を示すだけで、外部の三分割と規則が噛み合っているかを確かめるもの」と限定して書いている。
ゲームを作る人は、これをどう使えるか?
心拍センサーを配れる作り手はほとんどいない。それでも持ち帰れるものが多い論文である。移植できるのは装置ではなく、判断の作法の方だ。以下、具体的な使いどころを6つ挙げる。
1つ目、つまみに「間合い」を入れる。二回中三回ルールはセンサーと無関係に使える。たとえばパズルの自動ヒントを「1面で詰まったら出す」にすると、たまたま席を立っただけで出てしまう。「直近3面のうち2面で詰まったら」に変えるだけで、誤発動は目に見えて減る。制御の言葉ではヒステリシスと呼ぶ考え方だ。
2つ目、絶対値ではなく本人の幅で測る。この論文が難易度の基準にしているのは「120拍」ではなく「あなたの安静と全力の真ん中」である。パズルに置き換えるなら、最初の2面を較正用に使い、その人の解答時間の下限と上限を取る。以後は全員共通の秒数ではなく、その人の幅の何%かで速い遅いを決める。序盤2面を「実力を測る面」として設計に組み込むわけだ。
3つ目、速い判断と遅い検算を分ける。2秒・12秒・30秒の三段構えは、そのまま多くのゲームに移せる。即時の手応え(操作の失敗)で仮に決め、数十秒の傾向(面の進み具合)で確かめ、数分の傾向(セッション全体)で補正する。速い層だけで作ると跳ね、遅い層だけで作ると鈍い。
4つ目、つまみを同じ向きに揃える。論文は、低い状態が続いたときと高い状態が続いたときで、速さ・時間・音楽・基礎難度が反対方向に動くべきだと明示している。実装で怖いのは、時間を伸ばしたのに同時に敵を速くして、差し引きゼロになる事故だ。つまみごとに独立の条件を書かず、状態から四つを一括で導くと事故が減る。
5つ目、救済は「続いたとき」だけ出す。残機追加が8回、時間追加が12回というのは、6時間48分に対してかなり控えめである。困っている瞬間ごとに手を貸すのではなく、困った状態が持続したときだけ出す。もし自分がハイパーカジュアルの落ち物パズルを作っているなら、連続失敗ではなく「失敗が続く区間」を検出する条件に書き換えるとよい。
6つ目、見送った回数をログに残す。83という数字は、この論文が自分の仕組みを疑うために残した記録だ。DDA を入れたゲームの計測で、普通は発動回数しか取らない。発動しかけて止めた回数を並べて初めて、その仕組みが敏感すぎるのか鈍すぎるのかが分かる。Valve が『Left 4 Dead』系で知られる AI ディレクターに「休ませる区間」を持たせているのも、発想としては同じ側にある。
『Left 4 Dead 2』(Valve, 2009)。緊張を測って敵の出方を変える AI ディレクターで知られる。押し続けないこと自体が設計の一部になっている例。画像: Steam ストアページ
この研究で分かっていないことは何か?
著者自身の留保がかなり率直である。論文は、示したのは仕組みの機能的な整合性(時刻の刻み、記録の対応づけ、集計)であって、学習効果の推論や長期の定着、集団規模の体験評価の代わりにはならない、と明言する。対照条件も置いていない——DDA を切った腕、成績だけで動かす腕、救済の量を変えた腕、いずれも無い。自己報告も取っていない(「この記録群では同時の自己報告を集めていない」と明記)。姿勢・呼吸・体の動き・カフェイン・服薬・体力・睡眠といった交絡も切り分けていない。教室のような騒がしい場、未成年の生体情報、他ジャンルへの再調整、長時間の較正のずれ、Bluetooth が不安定な状況は範囲外だと書かれている。
Fukai がここで指摘するのは三点だ。第一に、8セッションが何人ぶんなのかが書かれていない。3.1節は機材と接続の説明にとどまり、何人が胸ベルトを着けたのかに触れていない。1人が8回なのか8人が1回ずつなのかで、較正の一般性はまるで違う。第二に、外部との一致に使った κ ≈ 0.51 は中程度であり、しかも相手は公開データに付けた粗い三段階のラベル、窓の数は50である。ここを「覚醒を当てられた」と読むのは行き過ぎだと私は考える。
第三に、この仕組みはつまみを動かす向きが正しいかを検証していない。高い覚醒が続いたら易しくする、低ければ難しくする、という方針は素直だが、退屈による低覚醒と、集中しきった低覚醒は、心拍だけでは見分けがつきにくい。前者に易しさを足すと逆効果になる。著者もこの向きの妥当性を主張してはいないので、これは論文の誤りではなく、次に誰かが埋めるべき穴である。著者が挙げる今後の課題も、主観の同時測定・条件を切り分けた行動実験・多様な環境での実地試験の三本で、ここと重なっている。
Fukai の読み
ここからは私の読みである。私はこの研究を、DDA の議論が「どう測るか」から「どう我慢するか」へ移っていく流れの中に置きたい。制御工学の語彙で言えばヒステリシスの導入、設計批評の語彙で言えば「間(ま)」の自動化に近い。面白いのは、論文の主張の重さが191という採用回数ではなく、83という見送り回数の側にあることだ。適応する仕組みを作るとき、設計者はつい「反応の速さ」を性能だと思ってしまう。だがプレイヤーから見れば、こちらの一挙手一投足に世界が反応する状態は、支援ではなく監視に近い。83回のうち何回かは、遊んでいる人が気づかないまま守られた瞬間だったはずだ、と私は読む。
次に何を読むと地図が見えるか
もっと深く知りたい人へ。適応の対象を「つまみ」ではなく「面そのもの」に広げた研究として、以前この欄で読んだ Elshamy らの適応レベル生成が対になる。あちらは腕前に応じて面を描き換える話で、今日の論文が扱った「変えるか変えないか」の判断は、そちらでも同じだけ必要になる。
「難しさ」と「体験」の関係そのものを疑いたければ、Lu らのフロー研究(フローを生むのは難しさか、注ぎ込んだ努力か)と、Jeong らの回答形式と認知負荷の二本が地図になる。今日の論文は「体の信号から難しさを動かす」ところを引き受けたが、その難しさが体験のどこに効くのかは、この二本の側に書かれている。
参考文献
本記事で参照した論文と関連資料:
・関連記事: Elshamy ら: プレイヤーの腕前を見て、面そのものを描き換える — Fukai が読む
・関連記事: Lu ら: フローを生むのは「難しさ」か「注ぎ込んだ努力」か — Fukai が読む
・画像: Human Resource Machine(Steam ストアページ) / Nevermind(Steam ストアページ) / Left 4 Dead 2(Steam ストアページ)
リアクション(ログイン不要)
匿名で残せます • 同じリアクションは1日1回まで
関連シリーズ
論文ダイジェスト第85回 / 全89回

