Comments
Description
Transcript
楽しさを提供する ゲームステージ自動生成システムに関する研究
平成 22 年度修士論文 楽しさを提供する ゲームステージ自動生成システムに関する研究 大学院情報システム学研究科 情報メディアシステム学専攻 学籍番号 : 0950008 氏名 : 清水 智行 主任指導教員 : 橋山 智訓 准教授 指導教員 : 田野 俊一 教授 指導教員 : 岩舘 祐一 客員准教授 提出年月日 : 平成 23 年 1 月 27 日 i 目次 第1章 はじめに 1 1.1 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 研究の背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2.1 コンピュータゲーム産業の拡大 . . . . . . . . . . . . . . . . 2 1.2.2 コンピュータゲームに関する研究の多様化 . . . . . . . . . . 3 1.3 問題意識と研究の目的 . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 本論文の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 従来研究とその分析 7 プレイヤーの状況に応じて変化するゲーム AI に関する研究 . . . . 7 2.1.1 RTS の対戦相手 AI に関する研究 . . . . . . . . . . . . . . . 8 2.1.2 FPS の AI に関する研究 . . . . . . . . . . . . . . . . . . . . . 9 プレイヤーの分類・モデリングに関する研究 . . . . . . . . . . . . . 10 2.2.1 プレイログを用いたプレイヤーの分類に関する研究 . . . . . 11 2.2.2 プレイヤーの感情のモデリングに関する研究 . . . . . . . . . 13 楽しさに関する理論と研究 . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.1 コンピュータゲームの楽しさに関する理論 . . . . . . . . . . 14 2.3.2 フロー理論 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 ゲームコンテンツ自動生成に関する研究 . . . . . . . . . . . . . . . 16 第2章 2.1 2.2 2.3 2.4 2.4.1 進化的アルゴリズムを用いたコンテンツ自動生成に関する 研究 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 手引書によるコンテンツ自動生成に関する研究 . . . . . . . 19 2.5 従来研究分析のまとめ . . . . . . . . . . . . . . . . . . . . . . . . . . 20 第3章 The Mario AI Championship 2010: The Level Generation Track 23 3.1 The Level Generation Track . . . . . . . . . . . . . . . . . . . . . . 23 3.2 My Favorite Levels システム . . . . . . . . . . . . . . . . . . . . . . 25 3.2.1 操作技能・嗜好推定モジュール . . . . . . . . . . . . . . . . 27 3.2.2 ステージ断片収集ツール . . . . . . . . . . . . . . . . . . . . 27 3.2.3 ステージ断片接続モジュール . . . . . . . . . . . . . . . . . 28 競技の結果と考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.4.2 3.3 ii 第4章 4.1 4.2 第5章 本研究のアプローチ 31 本研究のコンセプト . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1.1 ステージ断片の自動生成メカニズムの実装 . . . . . . . . . . 31 4.1.2 ステージ断片の使用によるリアルタイムでのステージ生成 . 31 4.1.3 ステージ断片単位のプレイログの使用 . . . . . . . . . . . . 32 . . . . . . . . . . . 32 システムの構築対象とするコンピュータゲーム システムの設計 33 5.1 システムの全体構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.2 操作技能・ステージ断片難易度適合判定モジュール . . . . . . . . . 35 5.2.1 特徴ベクトルの候補 . . . . . . . . . . . . . . . . . . . . . . . 37 5.3 ステージ断片自動生成モジュール . . . . . . . . . . . . . . . . . . . 42 5.4 ステージ断片リアルタイム接続モジュール . . . . . . . . . . . . . . 43 システムの実装 45 操作技能・ステージ断片難易度適合判定モジュールの実装 . . . . . 45 6.1.1 特徴選択のためのデータ収集 . . . . . . . . . . . . . . . . . 45 6.1.2 入力ベクトルの特徴選択 . . . . . . . . . . . . . . . . . . . . 46 ステージ断片自動生成モジュールの実装 . . . . . . . . . . . . . . . 47 6.2.1 進化的アルゴリズムにおけるステージ断片の構造 . . . . . . 47 6.2.2 進化的アルゴリズム . . . . . . . . . . . . . . . . . . . . . . . 48 6.2.3 プレイ可能性の検証方法 . . . . . . . . . . . . . . . . . . . . 49 ステージ断片リアルタイム接続モジュールの実装 . . . . . . . . . . 51 システムの評価実験 52 7.1 実験の目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.2 実験の方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 7.2.1 実験の手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 実験の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 7.3.1 難しさの比較結果 . . . . . . . . . . . . . . . . . . . . . . . . 56 7.3.2 楽しさの比較結果 . . . . . . . . . . . . . . . . . . . . . . . . 57 7.3.3 線形判別式の出力値 . . . . . . . . . . . . . . . . . . . . . . . 57 考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 第6章 6.1 6.2 6.3 第7章 7.3 7.4 7.4.1 評価項目 1:本システムによって異なる難易度のステージを 生成できるかどうか . . . . . . . . . . . . . . . . . . . . . . . 63 iii 7.4.2 評価項目 2:難易度の違いがプレイヤーの感じる楽しさに影 響を与えるかどうか . . . . . . . . . . . . . . . . . . . . . . . 7.4.3 評価項目 3:本システムによってプレイヤーの操作技能に適 した難易度のステージを生成できるかどうか . . . . . . . . . 第8章 64 64 おわりに 66 8.1 まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 8.2 今後の課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 謝辞 68 1 第1章 はじめに 1.1 概要 近年,コンピュータゲーム産業の拡大やゲームに使用される技術の発展に伴い, コンピュータゲームが我々にとって身近な遊びの一つになっている.また,コン ピュータゲームに関する研究も多様化してきている. コンピュータゲームにとって,プレイヤーに楽しさを提供することは最も重要な 命題である.しかし,コンピュータゲームの操作技能はプレイヤー毎に非常に異 なっており,プレイヤーの操作技能とゲームの難易度の不一致が発生する.この不 一致がおこるとゲームをつまらないと感じてしまう可能性あり,プレイヤーの操 作技能レベルにあった難易度を提供する必要がある.本研究では,操作技能とゲー ム難易度の不一致を解決してゲームを楽しいと感じるものにするために,楽しみ の科学として知られているフロー理論を適用し,プレイヤー毎に異なる操作技能 に合わせてゲームの難易度を自動で適応するシステムの構築を目指す.また新し い試みとして,ゲームのコンテンツをプレイヤーの操作技能に合わせて自動生成 するシステムの構築を目指す.本研究で自動生成するゲームコンテンツは,ゲー ムのステージとした. 従来研究の分析と,国際会議のコンペティションの参加結果を踏まえて, 「リア ルタイムの適応」, 「プレイログの使用」, 「フロー理論の適用」, 「学習アルゴリズ ムの使用」を構築すべきシステムのコンセプトとした.これらのコンセプトを実 現するために,1) 操作技能・ステージ断片難易度適合判定モジュール,2) ステー ジ断片自動生成モジュール,3) ステージ断片リアルタイム接続モジュール,の 3 つのモジュールを持つシステムを設計し,実装した.設計したシステムは,各モ ジュール毎にその実装の詳細は変更することが可能である.それぞれのモジュー ルを繰り返し利用することで,プレイヤーに対して継続的に楽しみを提供するこ とができる. 実装したシステムの有効性を評価するために人間による評価実験を行い,その 結果から本システムモデルの有用性と将来性を確認することができた.そして,楽 しさを提供するためのゲームコンテンツを自動生成するシステムの実現へ向けた 第一歩となった. 2 1.2 1.2.1 研究の背景 コンピュータゲーム産業の拡大 カード,パズル,言葉遊び,スポーツ等,人間は様々な遊びに興じて楽しんで いる.近年では,コンピュータゲームも我々にとって身近な遊びの一つとなって いる. 日本における近年のコンピュータゲーム産業の発展は目覚ましく,産業全体の 成長率,輸出額の伸びは他の産業に比べて高い.また,ゲーム産業全体における輸 出割合も高く,今やゲーム産業はグローバルな産業となっており,2007 年度の家 庭用ゲーム産業の規模は約 3 兆円に達すると推計されている [1].図 1.1 に,2003 から 2007 年間の各産業規模の年平均成長率を示し,図 1.2 に,各産業の輸出額の 伸びを示す.両図からも,コンピュータゲーム産業の発展,およびグローバル化 が読み取れる. 図 1.1 2003∼2007 年間の産業規模の年平均成長率 図 1.2 各産業の輸出額の伸び 3 コンピュータゲームに使用されている技術の発展も目覚ましく,コンピュータの 処理能力向上に伴い,高解像度,高精細なグラフィックを使用したゲームや,高度 な物理演算を使用したゲームが開発されている.ネットワーク通信の情報基盤も 整備されており,遠隔地にいるプレイヤー同士が同時にコンピュータゲームを遊 ぶことも可能になっている.また,ゲームを操作するデバイスであるコントロー ラに使用されている技術も進歩している.操作デバイスとして,赤外線センサ,加 速度センサ等が搭載されているものも存在し,人間の身体を使ったジェスチャに よってゲームを操作できる機器も開発されている. 最近では,携帯電話やスマートフォン等の端末上で動作するコンピュータゲー ムも普及しており,コンピュータゲームは,より一般的で気軽に遊べる身近なも のになっている. 1.2.2 コンピュータゲームに関する研究の多様化 コンピュータゲームの産業やそこで利用される技術の発展と共に,コンピュー タゲームに関する研究の形態も多様化している. ゲームに関する研究は,従来チェスや将棋等での指し手を計算する論理的で静 的な思考を扱うものが多かったが,現在では,カーレースゲームや FPS(First Per- son Shooting) 等の動的な計算を必要とする自動コントローラ AI(Artificial Intelligence) に関する研究なども行われている.多くの国際会議において,自動コント ローラ AI に関する競技が開催されており,高得点や高い順位を獲得するために最 適な振る舞いをする AI の作成,人間のプレイヤーのように振舞う AI の作成,人 間のプレイヤーに合わせて振る舞いを変える AI の作成等,その目標は多岐にわた る [2]. 機械学習や統計的分析を使用してプレイヤーを分類・推定・モデリングする研 究 [3] [4] [5] も行われており,コンピュータゲームと人間の関わり合いに関する研 究が始められている. コンピュータゲームのプレイヤーが感じる楽しさについての理論や研究も行わ れており [6] [7],楽しさを引き出すために重要な項目,属性の特定や,人間の特 性を考慮した考察が行われている.また,コンピュータゲームが満たすべき要件 に関する提言もなされており [8], • 音声・映像等のたくさんの異なる刺激を提供すべき • インターフェースはその理解と操作が容易であるべき 4 • 瞬時で的確なフィードバックを与えるべき • プレイヤーに適した難易度の挑戦を提供すべき • オンラインヘルプを含むべき 等の要件が挙げられている. 最近では,ゲームコンテンツの自動生成に関する研究も行われており [9] [10] [11], カーレースゲームにおけるトラック,2D アクションゲームにおけるステージ,それ ぞれの自動生成に応用されている.コンテンツの自動生成技術が発達すると,ゲー ム開発の費用削減が期待できる.また同時に,プレイするごとに異なるコンテン ツが自動生成されれば,プレイヤーは飽きずに長くゲームを楽しめる可能性があ る.さらに,ゲームシステムがプレイヤー毎の特性を考慮して各プレイヤー用の コンテンツを自動生成することができれば,個々のプレイヤーに応じた楽しさを 提供することができる.この,個々のプレイヤーの特性を考慮してコンテンツを 自動生成する研究分野は,新しい研究分野である. 1.3 問題意識と研究の目的 コンピュータゲームにとって,プレイヤーに楽しさを提供することは最も重要 な命題である.しかしながら,ゲームを行うプレイヤーの嗜好,性格,経験など は個人毎に異なっており,万人にとって楽しいゲームを作成することは非常に困 難である.コンピュータゲームを操作する技能だけをとっても,その熟達度合い は個人毎に非常に異なっている. 各個人間の操作技能の差異はゲームを設計する際に慎重に考慮しなければなら ない問題である.なぜなら,プレイヤーにとってあまりにも難しい,またはあまり にも簡単なゲームは,プレイヤーに対してそのゲームが “つまらない” という感情 を引き出してしまう可能性があるためである.ゲームが簡単すぎるとプレイヤー は退屈を感じてしまうかもしれないし,また,ゲームが難しすぎると不安・イラ イラを感じてしまうかもしれない.プレイヤーの操作技能とゲームの難易度の不 一致は少なくしなければならない.すなわち,楽しさを引き出すためには,プレ イヤー毎に異なる操作技能に合わせてゲームの難易度を適応させることが重要で ある.この考えはゲーム開発者や研究者の間での共通認識であり [6] [7] [8] [12], フロー理論 [13] によって “行為者の技能と行為への挑戦の機会の適合が楽しさを 引き出す上で重要” と体系的にまとめられている. プレイヤーの操作技能とゲーム難易度の不一致を解決するために,あらかじめ 5 複数の難易度 (Easy,Normal,Hard など) を用意し,プレイヤーに難易度を選択 させるコンピュータゲームが多数存在する.しかし,プレイヤーは必ずしも自分 の操作技能に適した難易度を選択できるとは限らない.また,離散的に区切られ た難易度設定では,細かな調節ができるとは言い難い. 最近では,プレイヤーの残り体力や武器の種類・残弾数などを考慮し,リアルタ イムに敵やアイテムの配置・登場パターンを制御しているゲームがある [14].し かし,ゲームにおけるコンテンツ全体をプレイヤーの特性や状況に合わせて自動 生成するコンピュータゲームに関する研究や製品は少ない. 本研究では,プレイヤーの操作技能とゲームの難易度の不一致を解決して楽し さを引き出すために,フロー理論を適用し, プレイヤー毎に異なる操作技能に合わ せてゲームの難易度を適応させることで,プレイヤーの操作技能によらずに楽し さを引き出すゲームシステムの構築を目指す.また,難易度をプレイヤー自身に 選択させるのではなく,システムが自動でプレイヤーに合った難易度を判断でき る枠組みの構築を目指す.さらに,敵やアイテム等の配置の制御のみならず,ゲー ムコンテンツ全体をプレイヤーの操作技能に合わせて自動生成するという新しい システムの構築を目指す. 本研究の目的をあらためてまとめると次のようになる.本研究の目的は,プレ イヤー毎に異なる操作技能に合わせて,プレイヤーに適した難易度のゲームコン テンツを自動生成することで楽しさを提供するゲームシステムを構築することで ある. 6 1.4 本論文の構成 本論文は,以下の全 8 章で構成される. 第 2 章では,第 1 章で述べた本研究の背景と問題意識,目的に関連して,従来 研究の調査・分析について述べる.第 3 章では,楽しさを提供するゲームステージ 生成に関する国際会議でのコンペティション The Mario AI Championship 2010: The Level Generation Track に応募したシステムを紹介する.第 4 章では,第 2 章 と第 3 章の分析を踏まえて、本研究の目的を満たす為の研究のアプローチとコン セプトについて述べる.第 5 章では,第 4 章で考案したコンセプトに従って設計し たシステムについて述べる.第 6 章では,本システムを実現するための実装方法 について述べる.第 7 章では,実装したシステムの評価実験について述べる.最 後に,第 8 章では、本研究全体についてのまとめと今後の課題について述べる. 7 第2章 従来研究とその分析 本章では,従来研究に関する調査と分析について述べる. 本研究の目的である, 「プレイヤー毎に異なる操作技能に合わせて適した難易度 のゲームコンテンツを自動生成する」という観点から従来研究を見ると,それら は以下の 4 つの研究形態に大別することができる. 1 プレイヤーの状況に応じて変化するゲーム AI に関する研究 2 プレイヤーの分類・モデリングに関する研究 3 楽しさに関する理論と研究 4 ゲームコンテンツ自動生成に関する研究 次節からは,各研究形態毎の調査と分析について述べる. 2.1 プレイヤーの状況に応じて変化するゲーム AI に関 する研究 プレイヤーの状況に応じて,ゲームシステムを変更することを試みている研究は 多数存在する [12] [15] [16].これらの研究では,主にプレイヤーが操作しないゲー ムキャラクターであるノンプレイヤーキャラクター(Non Player Character: NPC) の振る舞いをプレイヤーの状況に応じて変更していくものがほとんどである. 8 2.1.1 RTS の対戦相手 AI に関する研究 リアルタイムストラテジー (Real-Time Strategy: RTS) とは,プレイヤーが軍隊 の指揮官になり,リアルタイムに進行する時間に対応しつつ兵士や戦車などのキャ ラクターに指示を与えて敵の軍隊を倒すことを目的とするゲームである. 文献 [12] と文献 [15] は,RTS における戦闘 AI の戦略を,プレイヤーの状況に 応じて動的に変更しようと試みている研究である.これらの文献では,プレイヤー とその対戦相手 AI との間に対等な戦闘を作り出すことを目標としている.すなわ ち,プレイヤーが対戦相手 AI に打ち勝つことが簡単すぎず,また難しすぎない状 況を作ることで楽しさを引き出そうとしている. 文献 [12] では,プレイヤーと戦闘を行う各ユニット (戦車など) の行動実行確率 を動的に変更している.行動実行確率とはゲームのタイムステップ毎に各ユニッ トが行動を行う確率である.この行動実行確率が高ければ,ユニットは攻撃や移 動などの行動を頻繁に行うので強くなり,逆に行動確率が低ければ,ユニットが何 もしない時間が増えるので弱くなる.この研究では,プレイヤーが所有している 各ユニットの残り体力と,敵の各ユニットの残り体力の変動を基にして行動実行 確率を動的に変えている.適応アルゴリズムは,プレイヤーと敵の全ユニット間 の残り体力を比較し,その差が 0 になるように,適切な学習率で行動実行確率を更 新するものである.この研究では,以下の 5 つの設定の対戦相手 AI を用意し,実 際に人間にプレイしてもらいアンケートにより実装システムの評価を行っている. AI-A 各ユニットの行動実行確率が 0.3 で固定の AI. AI-B 各ユニットの行動実行確率が 0.1 で固定の AI. AI-C 各ユニットの行動実行確率の初期値が 0.4 で,学習率 0.01 で更新する AI. AI-D AI-C と同様の初期値と学習率を持ち,プレイヤーが保持する戦車が 5 台以 下になった時に行動実行確率を 0.02 に下げる AI. AI-E 各ユニットの行動実行確率の初期値が 0.4 で,学習率が 0.2 の AI. アンケートは「楽しさ」, 「強さ」, 「多様性」の 3 つの観点で集計されている.ア ンケートの結果を表 2.1 に示す.表 2.1 は,それぞれの AI を対戦相手にしてプレ イした被験者が「楽しさ」, 「強さ」, 「多様性」の観点から AI を評価した値であり, 数字が高いほど高評価であることを示している.表 2.1 より,行動実行確率を動的 に変える AI である「AI-C」, 「AI-E」の方が,行動実行確率が不変の AI より楽し 9 いと評価されている傾向があることがわかる.しかし,極度にプレイヤーに勝利 させようとする「AI-D」と対戦したプレイヤーの「楽しさ」の評価は一番低い結 果となっている.このことから,プレイヤーの行動に合わせてゲームの難易度を 適切に変えることで楽しさを引き出せる可能性があることがわかる.また一方で, 極端にプレイヤーに勝利させようと調節するとかえってゲームをつまらなくして しまう可能性があることもわかる. 表 2.1 文献 [12] のアンケート結果 AI A B C D E 楽しさ -0.03 -0.04 0.66 -0.94 0.91 強さ 0.46 -1.6 -0.38 -1.21 -0.62 多様性 -0.69 -0.64 -0.03 -1.17 -0.17 2.1.2 FPS の AI に関する研究 ファーストパーソン・シューティングゲーム(First Person shooter, FPS)とは, 画面に登場する主人公の視点 (図 2.1) でゲーム中の世界・空間を移動し,武器もし くは素手などを用いて敵キャラクターと戦うアクションゲームである. 図 2.1 First Person shooter FPS において,プレイヤーの状況に応じてゲーム AI を変更する研究としては文 献 [16] がある.この研究では,アイテムや敵の配置や出現パターンをを操作する 10 ことによって,プレイヤーキャラクターが敵との戦闘によって倒されないように 一定の体力に保つことを試みている.この研究では,プレイヤーキャラクターの 現在の体力と戦闘で受ける可能性のあるダメージを計算することにより,プレイ ヤーキャラクターが倒される確率を見積もっている.そして,プレイヤーキャラ クターが倒される確率が 40% を上回った場合にゲームシステムが介入する.シス テムによる介入としては,回復アイテム・弾薬・武器などのアイテムの配置,出 現させる敵の変更,プレイヤーキャラクターの攻撃力の向上等のパラメータの変 更などが考えられている.この研究では,ゲームを実際に人間にプレイしてもら い,以下の 3 つの観点でシステムを評価している. • プレイヤー状況に応じた適応が効果的に行えるかどうか • プレイヤーはシステムによる介入に気付くかどうか • システムの介入によって,プレイヤーが感じる楽しさ,難しさに十分な影響 を与えられるかどうか この研究は,結果的にプレイヤーキャラクターの死亡回数を減らすことに成功 している.また,プレイヤーはシステムの介入の有無にあまり気付かなかったと 報告されている.システムの介入とプレイヤーが感じた楽しさと相関は,初心者 のプレイヤーには見られなかったが,上級者のプレイヤーはシステムが介入した 方が「楽しかった」と答える傾向があったと報告されている. プレイヤーの状況に応じて変化するゲーム AI に関する研究である文献 [12] [16] から,プレイヤーの状況に応じてゲーム AI を効果的に変えることで,プレイヤー の楽しさを引き出せる可能性があることがわかる.また,2 つの文献の共通点とし て,プレイヤーの状況に応じてリアルタイムにゲーム AI を変更している点が挙げ られる.よって,プレイヤーに合わせるシステムを考える際には,プレイヤーの 状況を応じてリアルタイムにゲームを変化させることを考慮する必要があるとい える. 2.2 プレイヤーの分類・モデリングに関する研究 プレイヤーをそのプレイスタイルなどによって分類したり,プレイヤーの感情 をモデリングしたりすることを目的としている研究も存在する [3] [4] [5].プレイ ヤーのプレイスタイルを分類することができれば,そのプレイスタイルに応じて 11 ゲームを適応させることによってプレイヤーに応じた楽しさを提供できる可能性 がある.また,プレイヤーの感情をモデリングすることができれば,そこから特 定の感情を引き出すための戦略を考えることができるようになる. 2.2.1 プレイログを用いたプレイヤーの分類に関する研究 文献 [3] は,3D アクションゲーム「Tomb Raider: Underworld」をプレイする 個々のプレイヤーのプレイログを記録し,そのログを自己組織化マップで量子化し てプレイヤーを分類することを試みている.この研究では,ゲームをクリアした プレイヤー 1365 人のプレイログから以下の 6 つの特徴を抽出して自己組織化マッ プの入力としている. • 失敗の原因とその回数 – 敵に倒された回数 – 環境によって倒された回数 (溺死や焼死) – 落とし穴に落ちた回数 • 総失敗数 • ゲームクリアに要した時間 • パズルのヒントを求めた回数 図 2.2 に,この研究によって出来上がった自己組織化マップを示す.出来上がっ た自己組織化マップをいくつかの領域に区切り,各領域に,1) ベテラン,2) 解明 者,3) 平和主義者, 4) 走り屋等の特徴的なラベルを定義することでプレイヤーを 分類している. 図 2.2 自己組織化マップによる分類の結果 12 この研究で使用している特徴の数は 6 つと,あまり多いとは言えないにも関わ らず,プレイヤーを特徴的なグループに分類することに成功している.このこと から,プレイログを使用することでプレイヤーを分類できる可能性があることが わかる. 文献 [4] では,アクションゲーム「パックマン」における各プレイヤーのプレイ ログを記録し,線形判別分析により各プレイヤーを分類することを試みている.プ レイログ情報としては, 「行動の回数とその種類」, 「行動の割合」, 「ゲームの進行 具合」の 3 つの観点から以下の情報を収集し,使用している. 行動の回数とその種類 ピル捕食数,パワーピル捕食数,ゴースト捕食数,ゴース ト被捕食数,果物捕食数,ステージクリア数,方向転換数. 行動の割合 ピル捕食数/分,ゴースト捕食数/パワーピル,ゴースト捕食数/分, パワーピル捕食数/分,キー操作/ピル,方向転換数/ピル. ゲームの進行具合 ステージクリア所要時間. 各プレイヤーの 5 セットのプレイログデータを 1 つのクラスとして,そのクラス を識別するような線形判別分析を実施している.プレイログは 245 人プレイヤー から収集しているので,線形判別分析をする際のクラス数は 245 クラスとなって いる.図 2.3 と図 2.4 は,各クラスを線形判別分析に算出された 2 つの軸空間に配 置したものである.図中の数字の番号は各プレイヤーのデータを表している. 図 2.3 プレイログを 2 軸に配置した図 図 2.4 図 2.3 の拡大図 13 この研究では,線形判別分析によって算出された軸よりプレイヤーを分類する 上で目安になる特徴を見出しており, 「キー操作/ピル」が最も重要な特徴になった ことから,プレイヤーと操作デバイス間との物理的インタラクションが,プレイ ヤーを分類する上で重要であると結論付けている.また,線形判別分析によって 算出された軸にプレイヤーを並べることによって, 「リスクを冒さずに高得点を獲 得するプレイヤー」と「リスクを冒して失敗してしまうプレイヤー」を分類する ことができたとも報告されている. この研究から,プレイヤーを分類するために使用する情報として,ゲームのイ ベント発生回数といった高レベルなプレイログ以外に,操作デバイスの操作量と いった低レベルなプレイログも有用となる可能性があることがわかる. 2.2.2 プレイヤーの感情のモデリングに関する研究 文献 [5] は,ゲームをプレイすることによって発生する感情と関係のあるプレイ ログ変数とステージ特徴変数を機械学習によって特定することを試みている研究 である.この研究では,被験者に 2 つのステージをプレイしてもらった後に「どち らのステージで特定の感情を強く感じたか」の情報を収集し,その傾向を階層型 ニューラルネットワークに学習させている.特定の感情としては, 「楽しさ」 「チャ レンジ」 「欲求不満」 「予測通り」 「心配」 「退屈」を用いている.この研究では,プ レイログは,プレイヤー以外に,プレイするステージの特徴にも依存することを 考慮し,ネットワークの入力にはプレイログ変数とステージ特徴変数の両方を入 力している.この研究はインターネットのブラウザ上で動作するゲームを使用し, 120 人のプレイヤーから学習データを収集している.学習後に,一番予測できた感 情は「欲求不満」であり,コンピュータゲームにとって一番重要な「楽しさ」の予 測率は 74.21%に留まっている. 文献 [5] で学習されたネットワークは,後の研究 [17] で,個々のプレイヤーの楽 しさを引き出すためのゲームステージを自動生成するために使用されている.し かし,ステージを生成する際に操作するパラメータ数が非常に少なく,生成され るステージは多様性に乏しい.また,使用しているネットワークは,多くのプレイ ヤーから収集した学習例を使用して “平均化された楽しさ” を学習しているので, 個人向けの楽しさを引き出す目的には適していないと考えられる. 14 2.3 楽しさに関する理論と研究 楽しさに関する理論や研究は数多く存在する.その中で,コンピュータゲーム に強く関連する研究を調査・分析した. コンピュータゲームの楽しさに関する理論 2.3.1 コンピュータゲームにおける楽しさについての理論としては,マロンの理論 [6] とコスターの理論 [7] がある. マロンは,楽しさを引き出すためにコンピュータゲームが持つべき特徴として “challenge”,“fanatsy”,“curiosity” の 3 つを挙げ,以下のようにまとめている. challenge • プレイヤーに目標を提示するべきである. • 「成功」, 「失敗」という結果を明確に予測できないようにするべきである. • プレイヤーに良い気分を与えるために,プレイヤーに勝たせるべきである. fantasy • 実世界には存在しない幻想的な表現を使用してプレイヤーを惹きつけるべき である. curiosity • 遊びを動機付けるために,複雑すぎず単純すぎない情報を提供すべきである. • 音や画像等の刺激によって感覚的好奇心を駆り立てるべきである. • プレイヤーの現在の知識では不完全に見える情報を提示し認知的好奇心を駆 り立てるべきである. コスターは,学ぶ行為そのものが楽しさを引き出すとしている [7].特定のパ ターンを自分のものとするために繰り返し学ぶことが面白い行為であるとしてい る.そして,プレイヤーがゲームにパターンを見出すことができない場合や,学 ぶべき新しいパターンが無くなってしまった時に「つまらない」と感じるように なると言及している.つまり,ゲームはプレイヤーが既存のパターンを学びきっ てしまう前に新しいパターンを提供することが重要であるとしている. 15 2.3.2 フロー理論 行為の集中や楽しさに関する理論としてよく引用されるものに,チクセントミ ハイのフロー理論 [13] がある.チクセントミハイは,ゲームに関わらず,ロック クライミングやダンスなどの他の娯楽活動や,仕事までを含めたあらゆる行為に ついて適用できる楽しさに関する研究を通して,この理論を提唱している. フロー理論では,行為者の技能と行為の挑戦の機会が適合している時に,行為 者はその行為に没頭することができ,流れるような何か「フロー」を感じる事が 出来るとしている.また,行為の挑戦の機会と行為者の技能が適合していないと, 心配や不安と感情が引き出されるとしている.つまり,フローは,金銭や名声等 の外部報酬無しに “行動それ自体” を自ら進んで行うことを駆り立てる感情であり, 楽しさを引き出す上で重要な要素であるという考えがフロー理論である.フロー 理論では,フローを感じる条件として「行為者の技能と行為への挑戦の適合」を 挙げており,その条件を満たす領域「フローチャンネル」(図 2.5) を定義している. このフローチャンネルに入るためには,行為への挑戦が高すぎることによって心 配にならず,また,行為への挑戦が低すぎることによって退屈にならないことが 重要である. 図 2.5 フローチャンネル 16 またチクセントミハイは,行動自体が自己目的的で,明瞭なルールとフィード バックがあり,適切に限定された刺激がある活動がフローを体験し易い活動 (フ ロー活動) としている.フロー活動には,例えばロッククライミングやチェスなど が挙げられており,ゲームもフロー活動とされている. フロー理論をコンピュータゲーム用に解釈して,コンピュータゲームが満たす べき要件を提言している文献 [8] も存在する.その要件として • 音声・映像等のたくさんの異なる刺激を提供すべき • 瞬時で的確なフィードバックを与えるべき • プレイヤーに適した難易度の挑戦を提供すべき 等の要素が挙げられており,どれもフロー理論と密接に関係している. これら楽しさに関する理論や研究を見ていると,ほぼ全ての理論や研究で共通 する事項が存在することがわかる.それは,フロー理論が提起している「行為の 挑戦の機会と行為者の技能の適合」が重要としている点である.また,フロー理 論をコンピュータゲーム用に解釈している文献 [8] からは,フロー理論の考えがコ ンピュータゲームの楽しさと密接に関係していることがわかる. 2.4 ゲームコンテンツ自動生成に関する研究 ゲームコンテンツ自動生成に関する研究も数多く存在し [9] [10] [11],生成対象 とするコンテンツもゲームステージやカーレーシングゲームのトラック,パズル ゲームの盤,など多岐に渡る. 2.4.1 進化的アルゴリズムを用いたコンテンツ自動生成に関する研究 進化的アルゴリズムを使用したゲームコンテンツ自動生成に関する研究として は文献 [9] [10] などがある. 文献 [9] は,カーレースゲームにおけるトラックを進化的アルゴリズムによって 自動的に生成することを試みている.進化的アルゴリズムの染色体は “waypoint” と呼ばれるトラックの軌跡を表現する点の座標列である.評価関数はとしては,“ やりがい”,“多様性”,“車の最高速度” を考慮し,彼らが直感的に定義したもの 17 を使用している.評価関数の入力値は,人間のように振舞う AI コントローラにト ラックをプレイさせたときのプレイログを基に算出しているので,トラックは人 間の介入無しで自動で進化する.図 2.6 と図 2.7 に,この研究によって自動生成さ れたトラックを示す. この研究で自動生成されるトラックは多様性に乏しく,多くの改善の余地が残っ ている.また,人間が実際にプレイして評価をしていないので,使用した評価関 数が本当に楽しさを引き出せるかどうかは分からない. 図 2.6 自動生成されたトラックその 1 図 2.7 自動生成されたトラックその 2 文献 [10] は,ゲーム「スーパーマリオブラザーズ」のステージを進化的アルゴ リズムを使用して自動生成することを試みている.この研究では,ゲームの難し さが,プレイヤーキャラクターが足場から足場へ跳び移る時に描く軌道と関係が あるとし,跳躍行動の難しさを式 2.1 のように定義している. c(t) = d( p1 , p2 ) − ( f p( p1 ) + f p( p2 )) + 2 f pmax 図 2.8 落とし穴の幅と着地地点範囲 (2.1) 18 ここで,t はジャンプ地点に到達した時間,p1 ,p2 は落とし穴の両端の足場, f p はジャンプした時の着地地点範囲, f pmax はプレイヤーキャラクターがジャンプで きる最大距離を表している.この式 2.1 は,ジャンプ時の幅が広ければ広いほど, また,ジャンプ時の着地地点の幅が狭ければ狭いほど難しくなることを意味して いる. また彼らは,ゲームの楽しさは提供する難しさのリズムと関係があるとし,難 しさのリズムを表す「心配曲線」(図 2.9) を定義している.そして,オリジナルの スーパーマリオブラザーズの 4 つのステージ (図 2.10) から特徴的な心配曲線を見 出している.その特徴とは,ステージの最初と最後の部分には難しさがないこと, 難しさのリズムが徐々に上がっていき最後の手前でピークに達することである.こ の研究では,オリジナルのスーパーマリオブラザーズのステージに見られる特徴 的な心配曲線を再現するような評価関数を用意し,ステージを進化的アルゴリズ ムによって生成することを試みている. 図 2.9 オリジナルのスーパーマリオブラザーズの 4 つのステージから算出した心 配曲線 図 2.10 スーパーマリオブラザースの 4 つのステージ この研究は,結果的にオリジナルのスーパーマリオブラザースのステージから 算出した心配曲線の形に似た,心配曲線を有するステージの自動生成に成功して いる.しかし,ステージの難しさが式 2.1 だけで説明できるとは考え難い.また, 19 文献 [9] と同様に,実際に人間がプレイすることによってステージを評価していな いので,評価関数に使用した考えが本当に楽しさを引き出せるかどうかはわから ない. 2.4.2 手引書によるコンテンツ自動生成に関する研究 文献 [11] は,2D プラットフォームゲームの楽しさが操作のリズムに関係して いるとし,リズムによってステージを自動生成する枠組みを構築している.また この研究では,リズムとそのリズムを表現するためのステージの構成要素を切り 離して考えており,同じリズムを複数の異なるステージ構成要素で表現すること で,生成されるステージの多様性向上を実現している.また,この研究の先行研 究 [18] で,ステージ全体は幾つかの断片に分かれていることを分析しており,リ ズムはステージ断片単位で指定するシステムになっている. ステージ断片を生成する流れとしては,まず人間の設計者が図 2.11 の上部に示 されているようなリズムを指定することから始まる.そして,そのリズムは図 2.12 の手引書に示されている「Moving」, 「Jumping」, 「Waiting-Moving」, 「Waiting- Moving-Waiting」に分割される.それらを手引書の手引きとして使用し,終端記 号が選択され,その終端記号と対応しているステージ構成要素がステージ断片上 に生成される.図 2.11 を見ると,1 つのリズムから 4 つの異なるステージ断片が 生成されていることがわかる. 図 2.11 1 つのリズムを基に生成された 4 つのステージ断片 20 図 2.12 手引書 この研究では,人間の設計者が指定したリズムをを実現するステージ断片を複 数生成し,そのステージ断片を繋ぎ合わせる事でステージ全体を生成している.し かし,楽しさを引き出すためにリズムが持つべき性質や特徴のことには言及され ておらず,楽しさを引き出すためのリズムの設計は人間に委ねられている. 2.5 従来研究分析のまとめ プレイヤーの状況に応じて変化するゲーム AI に関する研究 [12] [16] からは,プ レイヤーの状況に応じてリアルタイムにゲームを適応させることで,プレイヤー の楽しさを引き出せる可能性があることがわかる.特に文献 [12] は,リアルタイ ムにゲーム AI の設定を変化させて,プレイヤーとその対戦相手 AI との間に対等 な戦闘を作り出すことでプレイヤーの楽しさを引き出している.この対等な戦闘 を作り出すという考えは,楽しさを引き出すためには「行為者の技能と行為への 挑戦の適合」が重要とするフロー理論の考えと一致している. しかし,プレイヤーの状況に応じて変化するゲーム設定を変える時に注意しな ければならない点もみられる.それは,必要以上にプレイヤーに勝たせようとす るとかえってゲームをつまらないものにしてしまう可能性があることや,プレイ ヤーにシステムの介入に気付かれてしまう可能性があるとこである. プレイヤーの分類・モデリングに関する研究 [3] [4] [5] からは,プレイログを 使用することでプレイヤーを分類したりモデリングできる可能性があることがわ 21 かる. しかし,プレイヤーを分類した情報を実際に使用している研究は少なく,その 情報をどのように使用するかを考えなければならない.文献 [17] は,プレイヤー の感情をモデリングした多層パーセプトロンを使用して,ゲームコンテンツを生 成する際のパラメータを決定しているが,コンテンツを制御するためのパラメー タ数が非常に少ないこと,また学習した感情は多くのプレイヤーからの情報を基 にして平均化されたものであり,研究の目的である個人向けのコンテンツを生成 することには向いていないことなど,問題が多く残っている.またプレイログは, プレイヤーの特性以外に,その際にプレイしていたゲームコンテンツにも少なか らず依存する.よって,プレイログの使用によってプレイヤーを分類できる可能 性があるにしても,目的に合わせた使用方法を適切に設計しなければならない. 楽しさに関する理論である文献 [6] [7] [13] は,互いに共通している部分がある ことがわかる.それは,フロー理論 [13] の言うところの “行為者の技能と行為の 挑戦の機会の適合が楽しさを生み出す上で重要” とする考えである.文献 [6] では, 楽しさを引き出す上で重要とする 3 つの特徴の 1 つとして “challenge” を挙げてお り,“結果がプレイヤーに明瞭に分からないようにすべき” とする考えは,言い換 えれば,ゲームが簡単すぎてプレイヤーが勝つことが明確であったり,難しすぎ て負けることがはっきりわかるようにさせないべきであり,勝ったり負けたりが 拮抗しているべきである,と捉えることができる.また文献 [7] では,学ぶべきパ ターンが複雑すぎたり,あるいは簡単すぎたりするとプレイヤーはゲームを止め てしまうとしており,“技能と挑戦の機会の適合” の重要性を認識している.さら に文献 [7] では,プレイヤーにゲームを続けさせるためには,プレイヤーが現在の パターンを学びきる前に新しいパターンを提供すべきだとしており,“技能と挑戦 の機会の適合” を常に保つことの重要性について言及している. ゲームコンテンツ自動生成に関する研究である文献 [9] [10] からは,進化的アル ゴリズムを用いることでゲームコンテンツを自動生成できることがわかる.その 際に,生成したコンテンツの評価基準を設定することで人間の設計者の意図を反 映させることができる.さらに,その評価基準の中に楽しさを引き出すための理 論を組み込むことができれば,楽しさを引き出すためのコンテンツを自動生成で きる可能性がある.また,文献 [11] のように,自動生成システムの中に人間が設 定できる部分を設けることも効果的である. 22 しかしこれらの研究の中で,生成したコンテンツを人間のプレイによって評価 しているものは私の知る限りまだ無い.文献 [5] [9] [10] は,楽しさを引き出すコ ンテンツを自動生成していることを試みているが,人間のプレイヤーによる評価 を行っていないので,使用されている手法によって本当に楽しさを引き出せるこ とができるのかは判断できない.また文献 [11] は,2D プラットフォームゲームに おいて楽しさを引き出すにためには操作のリズム感が重要としているが,どのよ うなリズムが楽しさを生み出すのかには言及しておらず,リズムの設定は人間の 設計者に委ねられている. 以上の分析を踏まえ,本研究の目的である「プレイヤー毎に異なる操作技能に 適した難易度のゲームコンテンツを自動生成することで楽しさを提供するゲーム システムを構築する」際に考慮すべき点は以下の 4 点にまとめられる. リアルタイムの適応 プレイヤーの状況を細かく監視し,リアルタイムにゲーム設 定を変化させる. プレイログの使用 プレイログを目的に合わせて適切に使用する. フロー理論の適用 プレイヤーの操作技能とゲーム難易度を適合させて楽しさを引 き出す. 学習アルゴリズムの使用 楽しさを引き出すための評価関数を設定し,進化的アル ゴリズム等を使用してコンテンツを自動生成する. 本研究においては,これらの分析に加え,予備実験として国際会議でのコンペ ティションに参加することで,実際の問題を検討することとした. 23 第3章 The Mario AI Championship 2010: The Level Generation Track 本章では,IEEE Conference on Computational Intelligence and Games 2010(CIG- 2010) で開かれた競技 The Mario AI Championship 2010 [19] の一部門である The Level Generation Track において,著者らが取り組んだ研究について述べる.こ の競技は,個々のプレイヤーの楽しさを引き出すためのゲームステージを自動生 成するシステムの優劣を競い合う競技である.我々は,従来研究の調査と分析を 踏まえ,My Favorite Levels(MFLs) システムを実装し,このコンペティションに 参加した.コンペティションのルールに則るために,MFLs システムでは「リアル タイムの適応」については考慮していない. 3.1 The Level Generation Track 競技の概要 The Level Generation Track とは,コンピュータゲーム「Infinite Mario Bros」 [20] において,個々のプレイヤーの楽しさを引き出すためのゲームステージを自 動生成するシステムの優劣を競い合うコンペティションである.よって,競技者 は,個々のプレイヤーの楽しさを引き出すゲームステージ自動生成プログラムを 作成することになる. 競技のルール プレイヤーの特徴を判断するために競技者が使用できる情報は,各プレイヤー がテストステージをプレイした時のプレイログ情報 (図 3.1) である.各プレイヤー がプレイするテストステージは 1 つだけ用意されており,全てのプレイヤーが同 じテストステージをプレイすることになる.また,生成するステージに関する制 約があり,出現させる敵やアイテムの上限数とステージの長さが決められている (図 3.2). 24 図 3.1 競技で使用できるプレイログ変数 25 図 3.2 競技の制約 競技に提出されたステージ自動生成システムの優劣はプレイヤーの投票数によ り評価される.投票を行うプレイヤーは,実際に大会に訪れた人達で構成される. プレイヤーが投票を行うまでの手順を以下に示す. 投票手順 手順 1 プレイヤーがテストステージをプレイし,プレイログが作成される. 手順 2 コンペティションに提出された全自動生成システムの中からランダムに 2 つのシステムが選ばれ,テストプレイのログを基に 2 つのステージが生成さ れる. 手順 3 2 つのステージをプレイヤーがプレイし,より楽しいと感じたステージに 投票する. My Favorite Levels システム 3.2 楽しさを提供するゲームシステムを自動生成するにシステムを作成するにあた り,従来研究の分析より見出した「フロー理論の適用」, 「プレイログの使用」,学 習アルゴリズムとして「進化的アルゴリズムの使用」の考えを反映したシステム である My Favorite Levels(:MFLs) システムを実装しコンペティションに臨んだ. MFLs システムは,プレイヤーの操作技能に適合した難易度のステージを生成す ることで,プレイヤーのフロー経験を誘発し,楽しさ引き出すことを目指したシ ステムであり,それを実現するために,著者らは以下の 3 つのモジュールを実装 した. 操作技能・嗜好推定モジュール プレイログからプレイヤーの操作技能と嗜好を推 定するモジュールである. ステージ断片収集ツール インタラクティブ進化的計算 (Interactive Evolutionary Computation: IEC) [21] を通して,ステージ生成の際に使用するステージの 26 断片を人間が評価して収集するためのツールである. ステージ断片接続モジュール このモジュールは, 「技能・嗜好推定モジュール」が 推定したプレイヤーの操作技能と嗜好に適合するステージ断片を選択・接続 することでステージ全体を生成するモジュールである. 図 3.3 に MFLs システムの全体像を示す.MFLs システムは,まず,プレイヤー のテストステージにおけるプレイログから「操作技能・嗜好推定モジュール」に よってプレイヤーの操作技能と嗜好を推定する.次に, 「ステージ断片接続モジュー ル」により,事前に「ステージ断片収集ツール」によって収集されたステージ断 片集合の中から,推定した操作技能と嗜好に適合するステージ断片が幾つか選択 され,それらを水平に繋げることでステージ全体が生成する. 図 3.3 MFLs システムの全体像 27 次小節からは,各モジュールの詳細について述べる. 3.2.1 操作技能・嗜好推定モジュール このモジュールは,プレイヤーの操作技能,及び嗜好を推定するモジュールで ある.プレイヤーの操作技能と嗜好は,テストステージにおけるプレイヤーのプ レイログから推定する. プレイヤーの操作技能は,プレイログから抽出した「失敗回数」, 「走っていた 時間」, 「“踏みつけ” で敵を倒した回数」, 「各モードで過ごしていた時間」, 「モー ドが切り替わった回数」を使用して推定する.推定の際のルールは著者らの経験 則を使用し,プレイヤーの操作技能を 5 段階 (0:低∼4:高) で分類する.操作技能推 定のルールを以下に示す. 操作技能推定のルール • 「失敗回数」が多いほど操作技能を低く見積もる. • 「走っていた時間」が長いほど操作技能を高く見積もる. • 「“踏みつけ” で敵を倒した回数」が多いほど操作技能を高く見積もる. • 「各モードで過していた時間」の内,チビモードで過ごしていた時間が最も 長ければ操作技能を低く,炎モードで過していた時間が最も長ければ操作技 能を高く見積もる. • 「モードが切り替わった回数」が 3 回より多いほど操作技能を低く見積もる. プレイヤーの嗜好としては, 「コイン収集家」, 「ブロック破壊屋」, 「敵撃破家」の 3 つのカテゴリを用意した.それら,3 つのカテゴリはそれぞれプレイログから抽 出した「コイン収集率」, 「ブロック破壊率」, 「敵撃破率」の値をそのまま各カテゴ リの所属度とした. 3.2.2 ステージ断片収集ツール このツールは,インタラクティブ進化的計算 (Interactive Evolutionary Compu- tation: IEC) [21] を通して,ステージ生成の際に使用するステージの断片を人間が 収集するためのツールである.進化的計算における個体はゲームの 1 画面に表示 されるステージ断片であり,次世代に残すステージ断片は収集者によって評価さ れることで個体集団が進化していく.進化の過程でステージ生成の際に使用した 28 いステージ断片が現れたら,収集者は画面内からステージ断片として抜き出した い領域を指定すると同時に,その断片の難易度を 5 段階 (0∼4) で評価する (図 3.4). 図 3.4 ステージ断片収集ツールを使用した作業の流れ また,そのステージ断片の特徴として, 「コインを多く含んでいるか」, 「ブロッ クを多く含んでいるか」, 「敵を多く含んでいるか」の 3 つも評価する.ステージ 断片の難易度と特徴は,それぞれ「操作技能・嗜好推定」モジュールで推定した 操作技能と嗜好に対応している.競技で使用したステージ断片は,このツールを 使用し著者らが事前に収集し,ステージ断片集合に格納した.収集したステージ 断片の総数は 198 個だった. 3.2.3 ステージ断片接続モジュール このモジュールは,ステージ断片を左から右に水平に接続していき,ステージ 全体を生成するモジュールである (図 3.5).接続されるステージ断片としては, 「技 能・嗜好推定モジュール」が推定したプレイヤーの技能と嗜好に適合する断片が 選択される.このモジュールはまず,プレイヤーの技能値 (0∼4) と同じ難度値 (0 ∼4) を持つステージ断片を候補に挙げる.次に,プレイヤーの嗜好の 3 つのカテ ゴリの値を,選択するステージ断片が持つ特徴の選択確率とする.これで,選択 するステージ断片の難度と特徴の組が一意に決まる.最後に,決定した難度と特 徴を持つステージ断片の中から 1 つがランダムに選択され,現在のステージの右 29 側に水平に接続される.ステージ断片の選択と接続の処理は,ステージの長さが 競技で指定されている長さに達するまで繰り返される. 図 3.5 ステージ断片接続の流れ 3.3 競技の結果と考察 コンペティションの結果 (表 3.1),MFLs システムは 6 人中 2 位と好成績を収め た [22].このことより,MFLs システムのモデルは,異なるプレイヤー毎の楽しさ を引き出す上で優れているモデルであるといえる. 表 3.1 競技の結果 Name Affilication Score Ben Weber Tomoyuki Shimizu Nathan Sorenson Peter Mawhorter Glen Takahashi and Gillian Smith Robin Baumgarten University of California, Santa Cruz University of Electro-Communications, Tokyo Simon Fraser University, Canada University of California, Santa Cruz University of California, Santa Cruz Imperial College London 10 9 6 4 2 1 MFLs システムは,プレイヤー毎に異なる操作技能や嗜好に合わせてコンテン 30 ツを自動生成することを目的とした,コンテンツ自動生成の新しい可能性を模索 したシステムであるが,その手法は長所がある一方で,解決しなければならない 問題も多く残っている. MFLs システムの利点として挙げられることは,プレイヤー毎の操作技能を考 慮してステージを生成していることである.これにより,競技の結果が 2 位とい う好成績になったと考えられる.また,生成するステージの断片は IEC を通して 人間が直接評価することができるので,評価関数を設計する必要が無く,生成さ れるステージに人間の評価を直接的に反映させることができる. MFLs システムの問題点として挙げられることは,プレイヤーの操作技能の推定 の際のルールに著者らの経験則を使用している点である.経験則を使用している ことから,操作技能推定の妥当性は必ずしも保証されない.プレイヤーの操作技 能の推定にはテストステージにおけるプレイヤーのプレイログを使用しているが, このコンペティションで使用されたテストステージと異なるステージにおけるプ レイログを使用すると,上手く操作技能を推定できなくなる可能性がある.また, 大会で使用されたプレイログはテストステージ全体を一通りプレイした後に算出 された “平均化された” プレイログであるので,そのログは大まかに使用せざるを 得ない.もう一つの問題は,生成されるステージの多様性は事前に収集しておい たステージ断片の多様性に依存してしまうことである.さらに,IEC は人間によ る評価が必須なのでステージ断片の進化のスピードが遅いことも欠点である.よっ て,MFLs システムの問題点としては「経験則による操作技能推定の妥当性の不確 かさ」, 「ステージ断片の進化スピードの遅さと人間の負荷の高さ」が挙げられる. MFLs システムの, 「経験則による操作技能の推定の妥当性の不確かさ」の問題 は,機械学習を使用して推定方法を見い出すことで解決できる可能性がある. 「ス テージ断片の進化スピードの遅さと人間の負荷の高さ」の問題は,人間の評価の 代わりとなる評価関数を設定することで解決できる可能性がある.また,このコ ンペティションでは実装しなかったが,従来研究の分析によって見出した「リア ルタイムの適応」を実現するためには,ステージ全体を一度に生成するのではな く,プレイヤーの進行に合わせて少しずつステージ断片を繋げていくことで達成 できると考えられる. 31 第4章 本研究のアプローチ 本章では,第 3 章のコンペティションの結果を踏まえ,本研究におけるコンセプ トとアプローチついて述べる. 4.1 本研究のコンセプト 本研究は,MFLs システムを発展させ,プレイヤーのプレイ特徴に合わせて,プ レイヤーが感じる楽しさを引き出すゲームステージを自動生成するシステムの構 築を目標とする. 楽しさに関する理論や研究において,楽しさを引き出すためにはプレイヤーの 操作技能とゲームの難易度の適合が重要とすることは共通認識である.よって本 研究では,フロー理論を適用し,プレイヤーの操作技能に合わせてゲームの難易 度を適応させることに焦点を絞ってステージを自動生成することにする.本コン セプトを基に,具体的に解決・実装すべき課題を以下に挙げる. 4.1.1 ステージ断片の自動生成メカニズムの実装 MFLs システムでは,事前に人の手によって収集されたステージ断片を繋ぎ合 わせる事でステージを生成していた.ステージ断片は,IEC を通して人間の評価 によって進化・収集を行っていた.しかし,IEC では人間の評価が実際に評価を 行わなければならないため,進化スピードの遅さと,実際に評価を行う人間に対 する負担の高さが欠点である.よって本研究では,人間が評価すること無しにス テージ断片が自動進化する枠組みを構築する.そのためには,人間の評価の代わ りとなる評価関数が必要となる. 4.1.2 ステージ断片の使用によるリアルタイムでのステージ生成 MFLs システムでは,ステージ全体を生成したものをプレイヤーに提供してい た.しかし,本研究ではあらかじめステージ全体を生成するのでなく,プレイヤー 32 がステージの端に到達したら逐次ステージ断片を追加接続していくことにする.こ うすることで,ステージの難易度をリアルタイムに細かく変化させることが可能 となる. 4.1.3 ステージ断片単位のプレイログの使用 MFLs システムでは,プレイヤーの操作技能と嗜好を推定する際に,テストス テージ全体におけるプレイログを参考にしていた.しかし,ステージ全体のプレ イログはその特徴が平均化されてしまっていると考えられる.ステージ中でも各 断片において難易度は異なるため,難しい場所付近におけるプレイログと簡単な 場所付近おけるプレイログの特徴は異なる可能性がある.よって本研究では,ス テージ断片毎にプレイログを記録する.また,プレイログはプレイするステージ の特徴に依存すると考えられるので,プレイヤーの操作技能を推定する際は,プ レイログの他にそのステージの特徴も考慮することにする. 4.2 システムの構築対象とするコンピュータゲーム 本研究では,コンペティションで実装した MFLs システムに引き続きコンピュー タゲーム「Infinite Mario Bros」 [20] におけるゲームステージを自動生成するシ ステムの構築を目標とする. 「Infinite Mario Bros」[20] は,コンピュータゲーム「スーパーマリオブラザーズ」 のクローンである.マークスによって制作され,インターネット上に Java 言語で書 かれたソースコードがパブリックドメインとして公開されている. 「Infinite Mario Bros」には,ゲームステージのランダム生成機能が挙げ備わっている. 「Infinite Mario Bros」は,あらかじめ用意されているステージ断片毎の構築方法を順次適 用することでステージを生成している.用意されているステージ断片毎の構築方 法としては,1) 平地構築,2) 丘構築,3) 土管構築,4) 落とし穴構築,5) 砲台構築, の 5 つがある.各構築方法を適用する際には,各構築方法で使用される少数のパ ラメータ値をランダムに設定して構築される.例えば,落とし穴構築におけるパ ラメータ値としては,落とし穴の幅,落とし穴の数,などがある.ランダム生成 では,各構築方法毎にあらかじめ決められた少数のパラメータ値をランダムに変 えるだけなので,生成されるステージの多様性は非常に乏しい. 33 第5章 システムの設計 本章では,第 4 章であげたコンセプトに基づいたシステムの設計について述べる. 5.1 システムの全体構造 本研究では,第 4 章で述べたコンセプトを実現するために以下に示す 3 つのモ ジュールを設計する. 操作技能・ステージ断片難易度適合判定モジュール このモジュールは,プレイロ グとステージ断片の特徴を比較して,プレイヤーの操作技能とステージ断片 の難易度の適合度を判定するモジュールである.プレイログは,ステージ断 片毎に記録されたものを使用する. ステージ断片自動生成モジュール このモジュールは,進化的アルゴリズムを使用 してステージ断片を自動生成するモジュールである.ステージ断片の評価と しては, 「操作技能・ステージ断片適合判定モジュール」によって算出される 適合度を使用し,人間による評価無しで自動生成させることにする. ステージ断片リアルタイム接続モジュール このモジュールは,プレイヤーの進行 に応じてリアルタイムに逐次ステージ断片を繋げてステージの幅を長くして いくモジュールである.次に繋げるステージ断片は, 「操作技能・ステージ断 片難易度適合判定モジュール」によって算出される適合度を参考に選択する ことにする. 34 図 5.1 にシステムの全体図を示す. 「操作技能・ステージ断片難易度適合判定モ ジュール」はプレイヤーの最近のプレイログを保持し,ステージ断片が入力され る度に,プレイヤーの操作技能とそのステージ断片の難易度の適合度を判定する. 「ステージ断片自動生成モジュール」は,各ステージ断片の適合度を「操作技能・ ステージ断片難易度適合判定モジュール」を基に算出し,ステージ断片を進化させ て,ステージ断片集合に保存していく. 「ステージ断片リアルタイム接続モジュー ル」は,ステージ断片集合の中から,プレイヤーの操作技能と適合する難易度を 持つステージ断片を選び,リアルタイムにステージ断片を既存のステージに接続 していく. 図 5.1 システムの全体図 35 次節からは,各モジュール毎の設計について述べる. 5.2 操作技能・ステージ断片難易度適合判定モジュール このモジュールは,プレイヤーの操作技能とステージ断片の難易度が適合して いるかを判断するモジュールである. MFLs システムでは,プレイヤーの操作技能を,プレイログを経験則に基づく ルールによって推定していた.また,ステージ断片の難易度は,IEC を通して人 間が行っていた.しかし,今回は人間の評価無しにステージ断片を自動生成する システムの構築を目指すので,機械学習の手法を用いて,プレイヤーの操作技能 とステージ断片の適合の判断をすることにする. まず我々は,プレイログからプレイヤーの操作技能を推定することを考えた.し かし,同じプレイヤーからプレイログを収集するとしてもプレイするステージに よってその特徴は大きく変動する可能性がある.例えば,図 5.2 と図 5.3 に示す 2 つのステージ断片を同一のプレイヤーがプレイしたとしても,そのプレイログは 当然異なると考えられる.プレイログのみを使用してプレイヤーの操作技能を推 定することは適切ではない. 図 5.2 ステージ断片 A 図 5.3 ステージ断片 B よって,機械学習の入力特徴としては,プレイヤーのプレイログのみならず,そ の時にプレイしたステージの特徴も入力することにする.また問題点で述べたよ うに,プレイログはステージ全体をプレイした後の平均化されたものではなく,ス テージを細かい断片に分けて,その断片毎にプレイログとステージ特徴を記録す ることにする.こうすることで,プレイログにステージ特徴を反映させることが 期待できる. 36 本研究では,プレイヤーの操作技能とステージ断片の難易度の適合判定に線形 判別を用いることにした.具体的には,プレイログの変数 (プレイ特徴),および ステージ断片の特徴 (ステージ特徴) を入力して,プレイヤーにとっての難易をそ れぞれ-1,1 と対応づける.難易は,プレイヤーがそのステージ断片を通過できた か,あるいはできなかったかによって判断する. プレイ特徴とステージ特徴からステージの難易を分離する超平面を見い出すこ と,すなわち,プレイヤーに対し適切な判別式を見出すことができれば,その超 平面の境界を基準にして,プレイヤーの操作技能とステージ断片が適合している か判断することができる.つまり,プレイ特徴 p = ( p1 , p2 , . . . , pn ) と,ステージ 断片の特徴 s = (s1 , s2 , . . . , sm ) を入力した時の線形判別式 (5.1) f ( p, s) = a1 p1 + a2 p2 + · · · + an p1 + b1 s1 + b2 sm + · · · + bm sm (5.1) の出力値によってそのステージ断片の適合度を評価できる. 超平面の境界の近傍に位置する特徴ベクトルは,その入力値が少し変わっただ けで境界をまたぐ可能性がある.よって,超平面の境界付近は難易の判別が難し い領域であり,プレイヤーにとっては丁度良い難易度になると考えられる.超平 面の境界の近傍に位置する特徴ベクトルが観測された時は,プレイヤーがそのス テージ断片を「辛くもクリアした」, 「もう少しでクリアできた」と考えることが できる.また,境界よりも遠い位置にある特徴ベクトルは,その値を変化させて も境界をまたぐ可能性が低いので, 「余裕でクリア」 「なすすべなく失敗」と考える ことができる.図 5.4 はそのイメージ図である.図 5.4 の横軸はステージの進行距 離を,縦軸は観測された特徴ベクトルを線形判別式 (5.1) に入力した際の出力値で ある. 図 5.4 線形判別のイメージ図 37 本研究では,この境界付近の領域をフロー理論で言うところのフローチャンネ ルと見立て,観測された特徴ベクトルがこの領域に入るようにすることを目指す (図 5.5). 図 5.5 線形判別の境界付近とフローチャンネル 線形判別式 (5.1) の係数は,機械学習によって導き出すことにする. 5.2.1 特徴ベクトルの候補 線形判別に使用する特徴ベクトルの候補としては,プレイ特徴とステージ特徴 を使用する. A. プレイ特徴 プレイ特徴としては以下の値を用意する. キーボード操作率 これは,プレイヤーがステージ断片内においてキーボード操作 を行った回数を,ログを記録した総タイムステップで割った値である.プレイヤー はタイムステップ単位で操作を切り替えられるので,この値は [0,1] の値を取る. 38 平均移動速度 これは,プレイヤーキャラクターのタイムステップ毎の x 座標の 移動距離の合計値を総タイムステップ数で割った値である.この値は,[0,1] の値 をとるように,ゲームメカニズムにおける 1 タイムステップでの最大 x 座標移動 距離で割ることにする. 平均危険度 危険度とは,数フレーム先にプレイヤーキャラクターがダメージを 受けるか失敗する可能性のある操作の数である (図 5.6).つまり危険度とは,現在 のプレイヤーキャラクターが直面している危険の程度を表す値である.この危険 度をタイムステップ毎に算出して合計した値を,総タイムステップ数で割った値 が平均危険度である.この平均危険度は,[0,1] の値を取るように,1 タイムステッ プの最大危険度で割ることにする. 図 5.6 数フレーム先のプレイヤーキャラクターの動きをシミュレートした軌跡 危険時操作切り替え率 この値は,上述した危険度が 0 以上だったタイムステッ プの時に,プレイヤーがキーボード操作を行った割合である. しゃがみ過し率,走り過し率 これらの値は,それぞれ,しゃがみ行動 (図 5.7) を していたタイムステップ数,走り行動を行っていたタイムステップ数,を総タイ ムステップ数で割った値である. 図 5.7 しゃがみ行動 39 左移動率,立ち止まり率,右移動率 これらの値は,プレイヤーキャラクターが, 左に移動していたタイムステップ数,立ち止まっていたタイムステップ数,右に 移動していたタイムステップ数,を総タイムステップ数で割った値である. 炎で敵を撃破した率,カメの甲羅で敵を撃破した率,踏みつけで敵を撃破した率 これらの値は,敵を撃破した時に使用した行動の割合である.これらの値は,そ れぞれ,炎で敵を撃破した回数,カメの甲羅で敵を撃破した回数,踏み付けで敵 を撃破した回数,を倒した敵の総数で割った値である. チビ状態率,デカ状態率,炎状態率 これらの値は,プレイヤーキャラクターが どの状態でステージ断片内を過していたかを表す値である.これらの値は,それ ぞれ,チビ状態 (図 5.8) だったタイムステップ数,デカ状態 (図 5.9) だったタイム ステップ数,炎状態 (図 5.10) だったタイムステップ数,を総タイムステップ数で 割った値である. 図 5.8 チビ状態 コイン収集率 図 5.9 デカ状態 図 5.10 炎状態 この値は,プレイヤーが収集したコイン数をステージ断片内に存 在する総コイン数で割った値である. コインブロック破壊率,空ブロック破壊率,アイテムブロック破壊率 これらの 値は,それぞれ,破壊したコインブロック数を総コインブロック数で割った値,破 壊した空ブロック数を総空ブロック数で割った値,破壊したアイテムブロック数 を総アイテムブロック数で割った値,である. 赤カメ撃破率,緑カメ撃破率,トゲカメ撃破率,クリボー撃破率,人食い花撃破 率 これらの値は,各敵の種類を撃破した割合を表す値であり,それぞれの種類 の敵を撃破数をそれぞれの敵の総数で割った値である. 40 敵撃破率 この値は,敵の種類に関係なく,撃破した全ての敵の数を,ステージ 断片内にいる敵の総数で割った値である. B. ステージ特徴 ステージ特徴としては以下の値を用意する. 各敵の存在率 この値は,各敵の種類ごとの敵がステージ断片を占める割合を表 す値である.これらの値は,各種類それぞれの敵数を,ステージ断片内において 敵を配置できる全てのセルの数で割った値である.敵の敵の種類としては,緑カ メ,羽緑カメ,赤カメ,羽赤カメ,クリボー,羽クリボー,トゲカメ,羽トゲカメ, 人食い花,がある.図 5.11∼図 5.19 に各敵の画像を示す. 図 5.11 緑カメ 図 5.12 羽緑カメ 図 5.13 赤カメ 図 5.14 羽赤カメ 図 5.15 クリボー 図 5.16 羽クリ 図 5.17 トゲカメ 図 5.18 羽トゲカ 図 5.19 人食い花 ボー メ 41 落とし穴存在率 この値は,ステージ断片に存在する落とし穴 (図 5.20) の数を,落 とし穴を配置できる全てのセルの数で割った値である. 図 5.20 落とし穴 土管存在率 この値は,ステージ断片内に存在する土管 (図 5.21) の数を,土管を 配置可能な全てのセルの数で割った値である. 図 5.21 砲台存在率 土管 この値は,ステージ断片内に存在する砲台 (図 5.22) の数を,砲台を 配置可能な全てのセルの数で割った値である. 図 5.22 コイン存在率 砲台 この値は,ステージ断片内に存在するコイン (図 5.23) の数を,コ インを配置可能な全てのセルの数で割った値である. 図 5.23 コイン 42 この値は,ステージ断片内に存在する石 (図 5.24) の数を,石を配置可 石存在率 能な全てのセルの数で割った値である. 図 5.24 各ブロックの存在率 石 この値は,各ブロックの種類毎に算出する値であり,各種 類のブロック数を,ブロックを配置可能な全てのセルの数で割った値である.ブ ロックの種類としては,空ブロック (図 5.25),アイテムブロック,コインブロック (図 5.26),がある. 図 5.25 空ブロック 脅威存在率 図 5.26 アイテムブロック,またはコイン ブロック この値は,プレイヤーが失敗する原因となるもの (脅威) がステージ 断片を占める割合である.脅威としては,敵,落とし穴,砲台,がある. 5.3 ステージ断片自動生成モジュール このモジュールは,ステージ全体を構築する時に使用されるステージ断片を進 化的アルゴリズムを使用して自動生成するモジュールである. 進化的アルゴリズムにおける各個体は,ゲーム画面分の大きさのステージ断片 とする.進化の過程で,各ステージ断片の適合度とプレイ可能性を評価する. 各個体の適合度の評価としては, 「操作技能・ステージ断片難易度適合判定モ ジュール」に組み込まれている線形判別式の出力値を参考にする.ステージ断片 を提供したいプレイヤーの最近のプレイログ (プレイ特徴)p = ( p1 , p2 , . . . , pn ) を固定入力ベクトルとし,個体集団に含まれる各ステージ断片 i のステージ特徴 si = (s1i , s2i , . . . , sim ) を入力した時の線形判別式 (5.1) の出力値 f ( p, si ) よってその ステージ断片の適合度を評価する. 本研究では,ステージ断片の難易を線形判別する超平面付近をフロー理論のい うところのフローチャンネルと見立てているので,線形判別式の出力値 f ( p, si ) が 43 0 に近いほど適合度が高いとする.つまり,N 個のステージ断片の中で最も適合度 の高いステージ断片は式 (5.2) で求めることができる. min {k f ( p, si ) − 0k} i =1,··· ,N 5.4 (5.2) ステージ断片リアルタイム接続モジュール このモジュールは,ステージ断片をリアルタイムに接続するモジュールである. 接続するモジュールは, 「ステージ断片自動生成モジュール」によって生成された ステージ断片の中から選択する.ステージ断片は,ゲーム画面がステージの未構 築領域に進入する直前に接続することにする (図 5.27). 図 5.27 ステージ断片を接続する流れ 次に接続するステージ断片は,プレイヤーの最近のプレイログを固定入力ベク トルとし,現在までに生成されている全ステージ断片のステージ特徴を全て試し, 線形判別式の出力が 0 に最も近い値になったステージ特徴を持つステージ断片を選 択することにする.もしゲームを動作させる計算機の処理能力が高ければ,現在 蓄積されているステージ断片の中から最適なステージ断片を選ぶよりも「ステー ジ断片自動生成モジュール」でステージ断片を生成する方が良いが,実行時間の 問題で生成できていない. 44 固定入力とするプレイ特徴を,プレイヤーの最近のプレイログ,しかも同じス テージにおけるものにすることでさまざまな利点が考えられる.まず 1 つ目の利 点は,プレイヤーの操作技能の上達を考慮することができる点である.ゲームを プレイしていく過程でプレイヤーは操作技能を学習していくので,最近のプレイ ログを参考にすることは基本的な考えである.2 つ目の利点としては,プレイヤー キャラクターの現在の状態を加味できることである.コンピュータゲームでは,プ レイヤーキャラクター自身のパラメータ値や状態がリアルタイムに変わることが ほとんどである. 「Infinite Mario Bros」においても,キャラクターの状態が変わ る (例えば炎状態など) と様々なことができるようになる.キャラクターの状態が 変わるとプレイスタイルが変わる可能性が大いにある.よって,同じステージ内 の最近のプレイログを考慮してステージ断片を選択することは,直前のキャラク ターの状態やプレイ特徴を考慮できる. 45 第6章 システムの実装 本章では,第 5 章で設計したシステムの実装について述べる. 6.1 操作技能・ステージ断片難易度適合判定モジュール の実装 このモジュールに組み込まれる線形判別式の係数は,機械学習の手法によって 求める.また同時に,第 5 章で列挙した特徴ベクトル候補の中から有用な特徴ベ クトルを選択する. 6.1.1 特徴選択のためのデータ収集 線形判別式を構成する上で,必要な入力特徴を選択するためには,入力ベクト ルとその教師信号の情報が必要となる.本研究では,学習データとして使用する 入力ベクトルとその教師信号として,人間のプレイヤーのプレイログを用いるこ ととした.教師信号の値は,プレイヤーがステージ断片を無事に通過することが できたら,簡単であったと判断し 1,逆に,プレイヤーが失敗したり敵からダメー ジを受けてしまったときは,難しいと判断し-1 とする. 学習データの組はステージ断片毎の情報であるが,実際に人間のプレイヤーは, 1 つ 1 つのステージ断片単体をプレイするのではなく,ステージ断片を幾つか繋げ たステージ全体をプレイする.ステージ断片に進入する前のプレイヤーキャラク ターの状態も多様になり,様々な情報を収集することができる. プレイログは各ステージ断片毎に保存するので,対応するステージ断片の開始 と終了のタイミングを設定しなければならない.本研究では,プレイヤーキャラ クターの x 座標が,ログを記録するステージ断片の 3 セル手前に到達した時をロ グの開始,ステージ断片の 3 セル後ろに到達した時をログの終了のタイミングと する. 本研究では,MFLs システム用に収集しておいたステージ断片 198 個をランダ ムに繋ぎ合わせてステージを生成するプログラムを作成し,5 人のプレイヤーにス 46 テージを複数回プレイしてもらって学習データを収集した.収集した学習データ は全部で 2534 個になった. 6.1.2 入力ベクトルの特徴選択 本研究では,第 5 章で列挙したプレイ特徴とステージ特徴の候補である全 45 特 徴を用い,図 6.1 に示す単純パーセプトロンを用いて Sequential Forward Selec- tion(SFS) を実施して,線形判別式の係数の算出と,特徴ベクトルの選択を行った. 図 6.1 単純パーセプトロン パーセプトロンの学習用データとしては,上記で述べた 2534 個のデータを用い た.活性化関数としては符号関数を使用した.モデルを評価する基準としては,7 交差検定における正当率とした.この時,パーセプトロンの学習率は 0.00001 とし 学習回数を 10000 回として実施した.また学習として,教師信号とパーセプトロ ンの出力である判別結果が異なった時にだけ重みベクトルの更新を行う,誤り訂 正学習を実施した. 特徴選択を実施した結果,交差検定の正当率が 79.87%となった以下の 10 個の 特徴を使用することにした. • 落とし穴存在率 • 砲台存在率 • 脅威存在率 47 • 平均移動速度 • 平均危険度 • しゃがみ過し率 • 立ち止まり率 • チビ状態率 • 炎状態率 • 敵撃破率 6.2 ステージ断片自動生成モジュールの実装 このモジュールは,プレイヤーに適すると考えられるステージ断片を進化的ア ルゴリズムによって自動生成するモジュールである.進化的アルゴリズムにおけ る各個体をステージ断片に対応させ,個体の評価には「操作技能・ステージ断片難 易度適合判定モジュール」に組み込まれている線形判別式の出力値を用いた.す なわち,出力値が 0 に近い (難易度が適切) なステージ断片を判断する.また,進 化の過程で,各ステージ断片のプレイ可能性も評価する. 6.2.1 進化的アルゴリズムにおけるステージ断片の構造 進化的アルゴリズムにおける各個体はゲーム画面サイズのステージ断片であり, その構造をステージ断片内に含まれているステージ構成要素の配列として表現する (図 6.2).進化的アルゴリズムの進化の際には,各ステージ断片に対して「追加」, 「削除」, 「変更」の操作をしてステージ断片を変形させる. 「追加」は,ステージ断 片内に新たにステージ構成要素を追加する操作である. 「削除」は,ステージ断片 内に含めれているステージ構成要素を削除する操作である. 「変更」は,ステージ 断片内に含まれているステージ構成要素を変更する操作である. 48 図 6.2 進化的アルゴリズムにおけるステージ断片の構造 6.2.2 進化的アルゴリズム 進化的アルゴリズムの 1 個体は,ゲーム画面サイズのステージ断片である.図 6.3 に,進化的アルゴリズムのフローチャートを示す. ステージ断片の初期集団を生成する際には, 「Infinite Mario Bros」で使用されて いるランダム生成機能で生成されたステージをランダムな位置で 1 画面サイズ分 に切り取ったものを新規ステージ断片とする.各ステージ断片の適合度の評価は, 「操作技能・ステージ断片難易度適合判定モジュール」に組み込まれている線形判 別式に各ステージ断片のステージ特徴を入力した時の出力値で判断する.線形判 別式の出力の絶対値が 0 に近いほど適合度が高いと判断し,最も適合が高いステー ジ断片を複製し,かつ最も適合度が低いステージ断片を削除する.ステージ断片 の変形は,そのステージ断片内におけるステージ構成要素を追加,削除,変更す ることで実現する.ステージ構成要素の追加,削除,変更の操作はそれぞれラン ダムな順番でランダムな回数行う.変形後のステージ断片は,そのプレイ可能性 を検証し,プレイ可能性を満たしていないステージ断片は「Infinite Mario Bros」 のランダム生成機能を使用して生成したステージ断片に置き換える.進化の終了 49 図 6.3 進化的アルゴリズムのフローチャート 条件としては進化回数を用い,ステージ断片集団の世代数が,事前に決めておい た進化回数に達したら進化終了とする. 本システムでは,ゲーム画面サイズのステージ断片を 1 個体とし,個体数を 5 個,進化回数を 30 回とする.この設定において,初期ステージ断片集団の生成か ら進化終了まで約 9 分の時間を要する.よって,このモジュールはゲームとは独 立して動作させることにする. 6.2.3 プレイ可能性の検証方法 ステージ断片のプレイ可能性は,ステージ断片単体のプレイ可能性と,他のス テージ断片との接続可能性の 2 つの観点から検証する. ステージ断片単体のプレイ可能性の検証方法 ステージ断片単体のプレイ可能性は,ステージ断片をセルに区切り,プレイヤー キャラクターの動きを簡易的にシミュレーションすることによって検証する.ま ず,ステージ断片の全てのセルの中からプレイヤーキャラクターが立ち止まるこ とのできるセル (踏み台セル) を特定する (図 6.4 中の青色のセル).そして,その踏 み台セルにプレイヤーキャラクターを立たせて,数タイムステップだけ動きをシ 50 ミュレーションした時にプレイヤーキャラクターが進入することのできるセル (進 入可能セル) を生成する (図 6.4 中の緑色のセル).簡易的なシミュレーションはス テージ断片の一番左側に位置する踏み台セルから開始し,次のシミュレーション の踏み台セルとして,前のシミュレーションによって進入可能セルと判断された 踏み台セルを選択しシミュレーションを続けていく.この進入可能セルを辿って ステージ断片の左端から右端まで到達できれば,プレイ可能なステージ断片だと 判断する. 図 6.4 シミュレーションによって作成した踏み台セル (青) と進入可能セル (緑) 接続可能性の検証方法 ステージ断片の接続可能性は,ステージ断片の両端に位置する踏み台ポイント の高さによって検証する.本システムでは,ステージ断片の両端の高さに上限を 設定することで,プレイヤーキャラクターがジャンプ行動によってステージ断片 に侵入できなくなることを防ぐ. 51 6.3 ステージ断片リアルタイム接続モジュールの実装 このモジュールは,ステージ断片をリアルタイムに接続するモジュールである. 接続するステージ断片は, 「ステージ断片自動生成モジュール」によって生成され たステージ断片の中から,プレイヤーのプレイログに応じて選択する.ステージ断 片は,ゲーム画面がステージの未構築領域に侵入する直前に接続することにする. 図 6.5 に,現在のステージにステージ断片を接続する流れを示す. プレイヤーの最近のステージ断片毎のプレイログが格納されているキューから 1 つのプレイログを取りだして算出したプレイ特徴を固定入力ベクトルとし,現在 までに生成されているステージ断片のステージ特徴の値を「操作技能・ステージ 断片難易度適合判定モジュール」に入力する.そして,線形判別式の出力値が 0 境 界付近に最も近い値になったステージ特徴を持つステージ断片を選択し,既存の ステージの接続する.保存されているステージ断片数が 300 個程度ならば,全て のステージ断片の適合度算出は実時間内で行える. 図 6.5 ステージ断片リアルタイム選択,接続の流れ) 52 第7章 システムの評価実験 提案システムの有効性を検証するために評価実験を行った.本章では,システム の評価実験について述べる. 7.1 実験の目的 本実験の目的は, 「プレイヤーの技能とゲームの難易度の適合」を実現するべく 実装したシステムにより,プレイヤーの楽しさを引き出すためのゲームステージ が生成されるかを評価することである. しかし, 「プレイヤーの操作技能とゲームの難易度の適合」が楽しさを引き出す とする考えには, 「難易度の違いがプレイヤーの感じる楽しさに影響を与える」と いう前提があり,まずはそれを確認しなければならない.また,プレイヤーの技 能とゲームの難易度を適合させるためには,難易度の異なるステージを自動生成 する能力が本システムに備わっていなければならない.よって,本実験では以下 の 3 つの観点についてシステムの評価をする. 評価項目 1 本システムによって異なる難易度のステージを生成できるかどうか. 評価項目 2 難易度の違いがプレイヤーの感じる楽しさに影響を与えるかどうか. 評価項目 3 本システムによってプレイヤーの操作技能に適した難易度のステージ を生成できるかどうか. 53 7.2 実験の方法 本システムで自動生成したステージを実際に人間の被験者がプレイし,その後 にアンケートに記入することによって評価を行う.被験者は,プレイしたステー ジの「難しさ」と「楽しさ」について評価をする. 本システムによって異なる難易度のステージを生成できるかどうかを調べるた めには,本システムで難易度が異なるであろうステージを複数生成して,被験者 が実際にプレイし,その難しさを比較する必要がある.本実験では,異なる設定 で以下の 3 種類のステージを生成して,被験者がそれらの難しさを評価する. 簡単ステージ このステージは,プレイヤーの最近のプレイログから抽出したプ レイ特徴を固定入力ベクトルとし,その時点までに保存されている全ステージ断 片の中から, 「操作技能・ステージ断片難易度適合判定モジュール」の線形判別式の 出力値が最大となるステージ特徴を持つステージ断片を選び,繋げていくステー ジである. 「操作技能・ステージ断片難易度適合判定モジュール」に組み込まれて いる線形判別式の係数は,単純パーセプトロンを使用して,プレイヤーがステー ジ断片を通過できた時の特徴ベクトルを入力した時の出力値が正になるように学 習している.よって,線形判別式の出力が正の値に大きくなるステージ断片はプ レイヤーが簡単に通過できる可能性が高いものと考えられる.この設定で選ばれ るステージ断片の例を図 7.1 と図 7.2 に示す.以後,この設定で生成されるステー ジの事を簡単ステージと呼ぶことにする. 図 7.1 簡単ステージ断片の例 1 図 7.2 簡単ステージ断片の例 2 54 困難ステージ このステージは,簡単ステージとは反対に,線形判別式の出力値 が負の値に大きくなるステージ特徴を持つステージ断片を繋げていくステージで ある.線形判別式の係数は,プレイヤーが失敗,または敵からダメージを受けた 時の特徴ベクトルを入力した時の出力値が負になるように学習している.よって, 線形判別式の出力値が負の値に大きくなるステージ断片は,プレイヤーが失敗す る可能性が高いものになると考えられる.この設定で選ばれるステージ断片の例 を図 7.3 と図 7.4 に示す.以後,この設定で生成されるステージの事を困難ステー ジと呼ぶことにする. 図 7.3 困難ステージ断片の例 1 適応ステージ 図 7.4 困難ステージ断片の例 2 このステージは,線形判別式の出力値が 0 に近いステージ特徴を 持つステージ断片を繋げていくステージである.本研究では,線形判別式が形作 る超平面付近の領域を「プレイヤーの技能とステージの難易度が適合している領 域」,つまりフローチャンネルと見立てている.よって,この設定で生成されるス テージの難易度はプレイ特徴が異なれば,それに応じて異なると考えられる.ま た,この設定で生成されるステージは,プレイヤーの楽しさを引き出すことがで きることを期待している.この設定で選ばれるステージ断片の例を図 7.5 と図 7.6 に示す.以後,この設定で生成されるステージの事を適応ステージと呼ぶことに する. 55 図 7.5 適応ステージ断片の例 1 図 7.6 適応ステージ断片の例 2 実験ではこれら 3 種類のステージを被験者がプレイし,それらを「難しさ」と 「楽しさ」の観点で評価する.しかし, 「難しさ」と「楽しさ」は人間の感性である ので,評価の仕方が困難であると考えられる.よって本実験では,3 種類のステー ジに対し絶対評価を行うのではなく,3 種類のステージから作られる 2 つのステー ジの組み合わせ全てを一対比較を行うこととする. 今回は 10 名 (男性 8 人,女性 2 人) の理系学生に被験者になってもらった. 7.2.1 実験の手順 実験の手順を以下に示す. 手順 1: 操作練習 被験者がゲーム操作に慣れるために,練習用ステージをプレイ する.練習用ステージには,著者らが第 3 章で述べた競技に使用するために収集 したステージ断片の中から,IEC を通して我々が難易度を 0(一番易しい) と評価し たステージ断片のみを使用する.被験者は,この練習用ステージをクリアできる まで練習する. 手順 2: ステージ組のプレイと評価 被験者は,3 種類のステージからランダムに 選ばれた 2 つのステージをプレイする.プレイ後に 2 つのステージを難しさと楽 しさの観点から一対比較する.一対比較では, 「最初のステージの方が○○」, 「後 のステージの方が○○」, 「両方のステージとも○○」, 「両方のステージとも○○ でない」の 4 つを選択肢として用意する.また,ステージの「難しさ」, 「楽しさ」 を比較した理由について,チェックリスト (付録 A) の選択と自由記述を行う.プレ 56 イするステージ組の順序は,および同一組内の 2 つのステージの提示順序は,被 験者毎にランダムに決定する.被験者は,各ステージの全組み合わせの合計 6 ス テージをプレイする. 本実験では,ゲームシステムとは独立して「ステージ断片自動生成モジュール」 を動作させておき,被験者のプレイログから抽出したプレイ特徴向けのステージ 断片を生成し,逐次,ステージ断片集合に追加することにする. 7.3 7.3.1 実験の結果 難しさの比較結果 本実験では,3 種類のステージを「難しさ」の観点で比較してもらった.3 種類 のステージの各組み合わせの比較結果を表 7.1 に示す.表 7.1 中の「簡単」, 「適応」, 「困難」はそれぞれ簡単ステージ,適応ステージ,困難ステージを表している. 簡単ステージと困難ステージの難易度の比較について見てみると,被験者全員 が困難ステージの方が難しいと回答している.簡単ステージと適応ステージの難 易度比較についても,被験者全員が適応ステージの方が難しいと答えている.ま た,適応ステージと困難ステージについての比較においては,明確に難易度を比 較した人は 10 人中 5 人であり,内 1 人は適応ステージの方が難しかったと回答し, 残り 4 人が困難ステージの方が難しかったと回答している.困難ステージの方が 適応ステージよりも難しいと答えた回答を「+」,適応ステージの方が困難ステー ジより難しいと答えた回答を「-」,困難ステージと適応ステージ両方とも難しい と答えた回答を「0」にして符号検定 (α = 0.05) をしたところ有意差は見られな かった. 表 7.1 組み合わせ 簡単 対 適応 適応 対 困難 簡単 対 困難 左が難しい 0 1 0 アンケート結果 右が難しい 10 4 10 両方とも難しい 0 5 0 両方とも難しくない 0 0 0 57 7.3.2 楽しさの比較結果 今回の実験では, 「難易度の違いがプレイヤーの感じる楽しさに影響を与えるの かどうか」を調べることが 1 つの目標である.被験者が楽しいと感じたステージ の中に難易度が同程度であれば, 「難易度の違いがプレイヤーの感じる楽しさに影 響を与える」と言うことができる.逆に,被験者が楽しいと感じたステージの中 に,難易度が極端に違うステージが混在しているようであれば, 「難易度は楽しさ に影響を与える」とはいうことができない. 表 7.2 は,各種類のステージが含まれる組の評価において, 「そのステージの方 が楽しかった」,または「両方とも楽しかった」が選択された回数を,被験者毎に 集計したものである.2 人の被験者 (C,J) を除き,ほぼ全員が適応ステージを境 にして「難しいのが好き」または「簡単が好き」のどちらかの傾向があることが わかる. 表 7.2 被験者 被験者 A 被験者 B 被験者 C 被験者 D 被験者 E 被験者 F 被験者 G 被験者 H 被験者 I 被験者 J 7.3.3 アンケート結果 簡単ステージ 0 1 1 1 2 0 2 0 0 1 適応ステージ 1 2 0 2 0 2 1 2 2 1 困難ステージ 3 0 1 0 0 2 0 2 1 1 線形判別式の出力値 図 7.7∼図 7.16 に,実際のプレイログとその時のステージ断片の特徴ベクトルを 「操作技能・ステージ断片難易度適合判定モジュール」の線形判別式に入力した時 の出力値の推移を,各被験者毎に示す.図 7.7∼図 7.16 における横軸は,各被験者 が通過できたステージ断片の数であり,ステージの進行具合を示している.それ ぞれの図には,各種類のステージにおいて被験者が最もステージを進行できた時 の出力値の推移を示す. 58 図 7.7 被験者 A についての線形判別式の出力値の推移 図 7.8 被験者 B についての線形判別式の出力値の推移 59 図 7.9 被験者 C についての線形判別式の出力値の推移 図 7.10 被験者 D についての線形判別式の出力値の推移 60 図 7.11 被験者 E についての線形判別式の出力値の推移 図 7.12 被験者 F についての線形判別式の出力値の推移 61 図 7.13 被験者 G についての線形判別式の出力値の推移 図 7.14 被験者 H についての線形判別式の出力値の推移 62 図 7.15 被験者 I についての線形判別式の出力値の推移 図 7.16 被験者 J についての線形判別式の出力値の推移 63 図 7.7∼図 7.16 から,線形判別式の出力値は,簡単ステージにおいては正の値を 推移し,困難ステージにおいては負の値を推移し,適応ステージにおいては境界 線である 0 の値を境に正負に行き来するように推移していることがわかる. 7.4 考察 本評価実験は,実装したシステムを以下の観点で評価するために行った. 評価項目 1 本システムによって異なる難易度のステージを生成できるかどうか. 評価項目 2 難易度の違いがプレイヤーの感じる楽しさに影響を与えるかどうか. 評価項目 3 本システムによってプレイヤーの操作技能に適した難易度のステージ を生成できるかどうか. 次小節からは,各評価項目についての考察について述べる. 7.4.1 評価項目 1:本システムによって異なる難易度のステージを生 成できるかどうか この実験では,線形判別式の出力を参考にして 3 種類のステージを生成し,被 験者にその難しさを比較してもらった.そして,被験者全員が,簡単ステージよ りも困難ステージの方が難しいと答えた.この結果から,本システムは異なる難 易度のステージを生成する能力が備わっているといえる. しかし,プレイヤー毎の操作技能に合わせてステージの難易度を適合すること を期待した適応ステージの難易度は困難ステージの難易度と差が無い結果となっ た.もし,被験者全員の操作技能が高かったとすれば,その操作技能に合わせて 難易度の高いステージが生成されたと考えられるが,おそらくそうは考えられな い.なぜなら,ほとんどの被験者は適応ステージにおいてあまり進行距離が大き くない結果となったからだ.適応ステージをクリアした被験者は 2 人であった. よって,このシステムは難易度の異なるステージを生成する能力はあるが,難 しすぎるステージを生成したと考えられる. 64 7.4.2 評価項目 2:難易度の違いがプレイヤーの感じる楽しさに影響 を与えるかどうか この実験では,難易度が異なるであろう 3 種類のステージを生成し,被験者に その楽しさを比較してもらった.その結果,難易度の違いによる楽しさの評価に 傾向がみられた.困難ステージを楽しいと評価した被験者は簡単ステージを楽し いとは選択せず,また,簡単ステージを楽しいと評価した被験者は困難ステージ を楽しいとは選択しない傾向が見られた.また,アンケートを通して被験者に楽 しいと答えた理由を答えてもらったところ, 「クリアできたから」, 「やり応えがあっ たから」, 「難易度が自分にあっていたから」という項目が選択された事実から,難 易度が楽しさに影響を与えていると言える. また,3 種類のステージの中で,楽しいと評価された回数が一番多いのは適応ス テージだった.この結果となったのは,適応ステージの難易度は,簡単ステージ の難易度と困難ステージの難易度の間にの難易度であったからだと考えられる. 7.4.3 評価項目 3:本システムによってプレイヤーの操作技能に適し た難易度のステージを生成できるかどうか この実験では,被験者の最近のプレイログを基にして「操作技能・ステージ断片 難易度適合判定モジュール」の線形判別式の出力値が 0 に最も近くなるステージ 断片を繋いで,操作技能とステージ断片難易度を適合させようとする適応ステー ジを用意した.適被験者のプレイログから抽出したプレイ特徴と,その時にプレ イしていたステージ断片のステージ特徴を入力ベクトルとした時の線形判別式の 出力値の推移からは,適応ステージのものが他の 2 種類のステージよりも 0 付近 の値を推移する結果となった. しかし,ほとんどのプレイヤーは適応ステージをクリアすることができずに,す ぐに失敗する結果となってしまった.よって,プレイヤー毎の操作技能に適した 難易度のステージを生成する精度は低いと言える.また,被験者が評価した難し さの比較において,適応ステージと困難ステージの間に有意差は見られなかった. プレイヤー毎の操作技能に適した難易度のステージ生成精度が低かった原因と しては,2 つのことが考えられる. 1 つ目の原因として考えられることは,線形判別の予測精度が悪かったことであ る.今回しようした線形判別の予測精度は 79.87 %と決して高いとは言えない.予 測精度の低さからして,プレイヤーがステージ断片を “できる” か “できない” と 65 いうことは線形分離では予測できない可能性が十分に考えられる. 2 つ目の原因として考えられることは,プレイヤーに適するであろうステージ断 片を評価する際に固定するプレイ特徴は,今から評価するステージ断片をプレイ した時のものではないことである.すなわち,時間的な遅れを伴うことが避けら れない.もし簡単なステージ断片をプレイした時のプレイ特徴を固定入力ベクト ルとすると,線形判別式の出力を 0 にするために今度は難しいステージ断片が選 択される可能性があり,また,難しいステージ断片をプレイした時のステージ断 片をプレイした時のプレイ特徴を固定入力ベクトルとすると易しいステージ断片 が選択される可能性がある.線形判別式の出力値の推移を示した図 7.7∼図 7.16 か らは,0 値をはさんで正負を行き来すように推移している様子が見てとれる.これ は,予想よりも難しい (もしくは易しい) ステージ断片の選択を繰り返している考 えることができる. 66 第8章 おわりに 本章では,本研究のまとめと今後の課題について述べる. 8.1 まとめ 本研究では,楽しさを引き出すゲームシステムを構築するためにフロー理論を 適用し,プレイヤー毎の操作技能に応じた難易度のゲームコンテンツを自動生成 するシステムを構築するという新しい試みを実施した. 従来研究と,国際学会の競技用に実装した MFLs システムの分析の結果,シス テムのコンセプトとして • リアルタイムの適応 • プレイログの使用 • フロー理論の適用 • 学習アルゴリズムの使用 を設定した. 設定したコンセプトを実現するために,システムを • 操作技能・ステージ断片難易度適合判定モジュール • ステージ断片自動生成モジュール • ステージ断片リアルタイム接続モジュール の 3 つのモジュールに分けて設計,実装をした. 「操作技能・ステージ断片難易度適合モジュール」には,プレイヤーのプレイ 特徴とステージ断片のステージ特徴を基に,プレイヤーのとってのステージ断片 の難易を線形判別する線形判別式を機械学習の手法で導き,できあがった超平面 の境界線付近をフロー理論におけるフローチャンネルと見立てて,プレイヤーの 操作技能とステージ断片の難易度の適合を試みた. 67 「ステージ断片自動生成モジュール」には進化的アルゴリズムを使用した.各 ステージ断片の適合度の評価として「操作技能・ステージ断片難易度適合モジュー ル」の線形判別式の出力値を用いて人間の評価無しでステージ断片を自動生成す る枠組みを実装した. 「ステージ断片リアルタイム接続モジュール」では,プレイヤーの最近のプレ イログを参考に,リアルタイムにステージ断片を接続していく枠組みを実装した. 実装したシステムを,人間のプレイによる評価をした結果,本システムがプレ イヤー毎の操作技能に適した難易度のゲームステージを自動生成することができ る潜在能力があることがわかった.そして,プレイヤーに楽しさを提供することの できるゲームステージ自動生成システム実現への第一歩を踏みだすことができた. 8.2 今後の課題 今後の課題としては,本システムの各モジュールそれぞれの性能の向上が考え られる. 本研究では, 「操作技能・ステージ断片難易度適合判定モジュール」おいて,プ レイヤーの操作技能とステージ断片の難易度の適合度を評価する方法として,線 形判別を適用した.しかし,プレイヤーの操作技能とステージ断片の難易度の適 合度は,線形分離不可能であるこが十分考えられる.よって今後の課題としては, 線形判別の代わりに多層パーセプトロンやサポートベクターマシーン等による非 線形判別を使用したシステムの実装が考えられる. 「ステージ断片自動生成モジュール」の進化のメカニズムの性能の向上も今後 の課題として考えられる.生成されるステージ断片の多様性や,進化のスピード は,今後考慮していかなければならない. 68 謝辞 本研究の全過程を通して、直接懇切なるご指導、ご鞭撻を賜りました指導教員 である電気通信大学大学院 情報システム学研究科 情報メディアシステム学専攻 情 報メディア学講座の橋山智訓准教授に心より深謝致します。 また、本研究の遂行に当たり、有益な御助言とご鞭撻を頂きました田野俊一教 授、市野順子助教、江崎朋人研究員に深く感謝致します。 最後に、種々の面でお世話になりました田野・橋山研究室の諸氏に深く感謝申 し上げます。 69 参考文献 [1] 社団法人コンピュータエンターテイメント協会, ゲームソフトウェア産業の分 析と波及効果に関する調査報告書, 2008. [2] IEEE Conference on Computational Intelligence and Games, http://www.ieee-cig.org. [3] Drachen, A. Canossa, A. and Yannakakis, G.N., Player Modeling using Self-Organization in Tomb Raider: Underworld, In Proceedings of the IEEE Symposium on Computational Intelligence and Games, pages 1–8, 2009. [4] Robin Baumgarten, Towards Automatic Player Behaviour Characterisation using Multiclass Linear Discriminant Analysis, In Proceedings of AISB Symposium: AI and Games, 2010. [5] Pedersen, C. Togelius, J. and Yannakakis, G.N., Modeling Player Experience for Content Creation, IEEE Transactions on Computational Intelligence and AI in Games, 2(1):54–67, 2010. [6] Thomas W. Malone, What Makes Things Fun to Learn? Heuristics for Designing Instructional Computer Games, In Proceedings of the 3rd ACM SIGSMALL symposium and the first SIGPC symposium on Small systems, pages 162– 169, 1980. [7] Raph Koster 著, 酒井皇治 訳, 「おもしろい」のゲームデザイン. オーム社, 2005. [8] P. Sweetser, P. Wyeth, GameFlow: A Model for Evaluating Player Enjoyment in Games, ACM Computers in Entertainment, 3(3):1–24, 2005. [9] Togelius, J. De Nardi, R. Lucas, S.M., Towards automatic personalised content creation for racing games, In Proceedings of the IEEE Symposium on Computational Intelligence and Games, pages 252–259, 2007. [10] P. Pasquier N. Sorenson, Towards a Generic Framework for Automated Video Game Level Creation, In Proceedings of the European Conference on Applications of Evolutionary Computation, pages 130–139, 2010. 70 [11] G. Smith, M. Treanor, J. Whitehead, M. Mateas, Rhythm-Based Level Generation for 2D Platformers, In Proceedings of the 4th International Conference on Foundations of Digital Games, pages 175–182, 2009. [12] Hagelback, J. and Johansson, S.J., Measuring player experience on runtime dynamic difficulty scaling in an RTS game, In Proceedings of the IEEE Symposium on Computational Intelligence and Games, pages 46–52, 2009. [13] M. チクセントミハイ 著, 今村浩明 訳, 楽しみの社会学. 新思索社, 2005. [14] Valve Software, Left 4 Dead, 2008. [15] P. Bakkes, S. Spronck and J. van den Herik, Rapid adaptation of video game ai, In Proceedings of the IEEE Symposium on Computational Intelligence and Games, pages 79–86, 2008. [16] Robin Hunicke, The Case for Dynamic Difficulty Adjustment in Games, In Proceedings of the 2005 ACM SIGCHI International Conference on Advances in computer entertainment technology, pages 429–433, 2005. [17] N. Shaker, J. Togelius, and G. N. Yannakakis, Towards Automatic Personalized Content Generation for Platform Games, In Proceedings of AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment. AAAI Press, 2010. [18] G. Smith, M. Cha, J. Whitehead, A Framework for Analysis of 2D Platformer Levels, In Proceedings of the 2008 ACM SIGGRAPH symposium on Video games, pages 75–80, 2008. [19] The 2010 Mario AI Championship, http://www.marioai.org/. [20] Infinite Mario Bros, http://www.mojang.com/notch/mario/. [21] Takagi, H., Interactive Evolutionary Computation: fusion of the Capacities of EC Optimization and human Evaluation, Proceedings of the IEEE, 89(9):1275–1296, 2001. [22] N. Shaker, J. Togelius, G.N. Yannakakis, B. Weber, T. Shimizu, T. Hashiyama, N. Sorenson, P. Pasquier, P. Mawhorter, G. Takahashi, G. 71 Smith, R. Baumgarten, The 2010 Mario AI Championship: Level Generation Track, IEEE Transactions on Computational Intelligence and AI in Games, (to appear).