kobayashi_m
DESCRIPTION
kobayashi presentation M2 2012TRANSCRIPT
修士論文発表
ゲームにおける課題ステージの自動選択-学習プロセスの推定 -
北海道大学 大学院情報科学研究科 複合情報学専攻複雑系工学講座 調和系工学研究室
M2 小林佑輔
Selection Mechanism of Stages in Game based on Inference of Learning Process
はじめに
ステージ1ステージ1 ステージ2ステージ2 ステージ3ステージ3 ステージ4ステージ4 ・・・・・・
初心者
上級者
簡単すぎたり、難しすぎると楽しくない
プレイヤーが楽しく感じる時間の増大
簡単 丁度良い 丁度良い簡単
丁度良い 難しい 難しい丁度良い
理想のステージ順
ステージnステージn
ステージn+1ステージn+1
ステージn+2ステージn+2
ステージn+3ステージn+3
・・・
簡単
丁度良い
難しい
ch
allen
ge
skillLow High
High
FLOW
anxiety
boredom
FLOW
FLOW理論FLOW理論
行為自体が楽しく、深く没入している状態FLOW状態
[Csikszentmihalyi 1990]
プレイヤーのskillに対して、楽しいと感じるchallengeが存在
簡単
楽しさの理論
challenge
Low High
High
fun
ステージnステージn
ステージn+1ステージn+1
ステージn+2ステージn+2
ステージn+3ステージn+3
・・・
楽しさの軸楽しさの軸
LowHigh
High
High
skill
challenge
fun
FLOWboredom
anxiety
skill t
skill t
ステージ n1 ステージ n2 ステージ n3
ゲームに適用するにあたって
skill = ゲームの上達
challenge = ステージ
skillの変化によるfunへの影響
skillの変化skillの変化 skillが変化すると楽しいと感じるステージも変わってしまう
skillの変化
challenge
Low High
High
fun
ステージ n ステージ m
challenge
Low High
High
fun
ステージ n ステージ m
ステージnの楽しさ > ステージmの楽しさ ステージnの楽しさ < ステージmの楽しさ
skillの変化に応じて、funが最大となるchallengeを求める
課題
skillを計測するためにゲームをプレイするとskillが変化してしまう
少ないログデータからその変化を推測してfunを求める
やること
skillをどのように計算するか
funをどうやって推定するか
目的目的
目的とアプローチ
アプローチアプローチ
プレイヤーの楽しさが最大となるステージの選択
ステージ3ステージ2
ステージn
プレイログを用いたステージごとのfunの推定
skill⊿ skill
ログ
クリアの推定 ⇒ funの推定funの推定
funの推定
funの推定
プレイプレイ
未経験のステージ
ログから直接、ステージごとのfunを推定
スーパーマリオの特性を利用
マリオの特性を用いたステージごとのfunの推定
プレイしたステージのログ 未経験のステージ
分解
分解ステージを『モジュール』という部品に分解
同じモジュール
funの推定
プレイしたステージのログ
合算
モジュールのfunを推定する方法は?マリオにおけるskill各モジュールに対するクリア率
未経験のステージ
+ブロック
プレイしたステージのログ
分解
分解ステージを『モジュール』という部品に分解
マリオの特性を用いたステージごとのfunの推定
合算
マリオにおけるskill各モジュールに対するクリア率
類似のモジュール
funの推定
モジュールのfunを推定する方法は?
・・・
モジュールは全部で201種類
+ブロック
プレイしたステージのログ
未経験のステージ
モジュールのネットワーク関係の利用
モジュールごとのfunの推定画面内には22~3個のモジュール
死亡回数 :d
通過回数 :p
fun: sp =p
pd
モジュールごとの
121番
1
1
2929個のノード 121番
122番
135番
・・・
・・・
150番
1
29
1
29
1
29
121番モジュールを通過した時のネットワークを利用した推定
通過回数+1
画面内には22~3個のモジュール
死亡回数 :d
通過回数 :p
fun: sp =p
pd
モジュールごとの
121番
1
1
2929個のノード 121番
122番
135番
・・・
・・・
150番
1
29
1
29
1
29
121番モジュールを通過した時のネットワークを利用した推定
モジュールごとのfunの推定
通過回数+1/2 通過回数+1/2
画面内には22~3個のモジュール
死亡回数 :d
通過回数 :p
fun: sp =p
pd
モジュールごとの
121番
1
1
2929個のノード 121番
122番
135番
・・・
・・・
150番
1
29
1
29
1
29
121番モジュールを通過した時のネットワークを利用した推定
モジュールごとのfunの推定
通過回数+1/3
通過回数+1/3
画面内には22~3個のモジュール
死亡回数 :d
通過回数 :p
fun: sp =p
pd
モジュールごとの
121番
1
1
2929個のノード 121番
122番
135番
・・・
・・・
150番
1
29
1
29
1
29
121番モジュールを通過した時のネットワークを利用した推定
モジュールごとのfunの推定
... ,1
5,1
4
1
4,1
5, ...
画面内には22~3個のモジュール
死亡回数 :d
通過回数 :p
fun: sp =p
pd
モジュールごとの
121番
1
1
2929個のノード 121番
122番
135番
・・・
・・・
150番
1
29
1
29
1
29
121番モジュールを通過した時のネットワークを利用した推定
モジュールごとのfunの推定
画面内には22~3個のモジュール
死亡回数 :d
通過回数 :p
fun: sp =p
pd
モジュールごとの
121番
1
1
2929個のノード 121番
122番
135番
・・・
・・・
150番
1
29
1
29
1
29観測部分 推定部分
121番モジュールを通過した時のネットワークを利用した推定
モジュールごとのfunの推定
プレイしたステージのログ 未経験のステージ
分解
分解
プレイしたステージのログ
合算
未経験のステージの評価
funの推定
未経験のステージのfun
未経験のステージn
ステージnのfun
プレイしたステージのログ
x1 x2 x3
・・・・・・
xn
・・・・・・
x ' 1
x ' 2
x ' 3
・・・・・・
x ' n
・・・・・・
ネットワークを利用した推定
平均
−1.0≤fun≤1.0
実験概要使用するゲーム使用するゲーム
自作したマリオクローン(2Dプラットフォーム型ゲーム)
実験1実験1
全5ステージ用意(1つのステージが200個のモジュールで構成)ステージ1から順に難しくなるステージ順は固定
実験2実験2
全20ステージ用意(1つのステージが110個のモジュールで構成)ステージ1から順に難しくなる(実験1の場合ほど明確ではない)ステージ順は提案手法によって選択される
目的:skillの変化に応じてfunが変化するか
目的:提案手法によるステージ選択の結果確認
実験1で使用したステージ
ステージ1ステージ1
ステージ2ステージ2
ステージ3ステージ3
ステージ5ステージ5
ステージ4ステージ4クリボー、落とし穴(平地)ノコノコ(前方に壁無)
ノコノコ(前方に壁有)、トゲゾー連続した敵(同種)
ノコノコ(前方後方に壁有)高さのある落とし穴連続した敵(異種)
キラー(単体)キラー(壁越え利用)
キラー(複数)キラー+落とし穴
5人:ステージ1~ステージ5の順にプレイ9人:ステージ5~ステージ1の順にプレイ
ステージ1から順に難しくなる設計
1 2 3 4 5
0.00
0.02
0.04
0.06
0.08
1 2 3 4 5-0.005
0.000
0.005
0.010
0.015
0.020
1 2 3 4 5
-0.0030
-0.0025
-0.0020
-0.0015
-0.0010
-0.0005
0.0000
0.0005
1 2 3 4 5
0.00
0.02
0.04
0.06
0.08
1 2 3 4 5-0.02
0.00
0.02
0.04
0.06
1 2 3 4 5-0.02
0.00
0.02
0.04
0.06
1 2 3 4 5
0.00
0.05
0.10
0.15
0.20
1 2 3 4 5-0.02
0.00
0.02
0.04
0.06
1 2 3 4 5
-0.008
-0.006
-0.004
-0.002
0.000
プレイ回数の増加に伴うfunの値の変化(正順)
1回目のプレイ終了後 全体の半分が経過 最後の1回player
A
プレイ回数
350回
クリア
stage5
B
プレイ回数
29回
クリア
stage5
C
プレイ回数
84回
クリア
stage2
ステージ1ステージ1 ステージ2ステージ2 ステージ3ステージ3 ステージ4ステージ4 ステージ5ステージ5ステージ順
c
f
c
f
c
f
c
f
c
f
c
f
c
f
c
f
c
f
プレイ回数
1 2 3 4 5
-0.40
-0.30
-0.20
-0.10
0.00
0.10
0.20
0.30
1 2 3 4 5
0.00
0.10
0.20
0.30
1 2 3 4 5
0.00
0.05
0.10
0.15
0.20
1 2 3 4 5
0.00
0.05
0.10
0.15
0.20
0.25
1 2 3 4 5
0.00
0.05
0.10
0.15
0.20
0.25
1 2 3 4 5
-0.010
-0.008
-0.006
-0.004
-0.002
0.000
1 2 3 4 5
-0.40
-0.30
-0.20
-0.10
0.00
0.10
0.20
0.30
1 2 3 4 5-0.05
0.00
0.05
0.10
0.15
0.201 2 3 4 5
-0.014
-0.012
-0.010
-0.008
-0.006
-0.004
-0.002
0.000
プレイ回数の増加に伴うfunの値の変化(逆順)
A
プレイ回数
452回
クリア
stage1
B
プレイ回数
80回
クリア
stage1
C
プレイ回数
105回
クリア
なし
1回目のプレイ終了後 全体の半分が経過 最後の1回player
ステージ5ステージ5 ステージ4ステージ4 ステージ3ステージ3 ステージ2ステージ2 ステージ1ステージ1ステージ順
c
f
c
f
c
f
c
f
c
f
c
f
c
f
c
f
c
f
プレイ回数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
-0.04
-0.02
0.00
0.02
0.04
0.06
0.08
0.10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
0.00
0.05
0.10
0.15
0.20
実験2ー提案手法によるステージ選択の例ー
プレイ回数:47
ステージ1ステージ1 ステージ12ステージ12 ステージ14ステージ14 ステージ16ステージ16
クリアクリア クリアクリア クリアクリア クリアクリア
stage12クリア後
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
-0.02
-0.01
0.00
0.01
0.02
0.03
0.04
0.05
0.06
0.07
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
-0.02
-0.01
0.00
0.01
0.02
0.03
0.04
stage16クリア後
stage1クリア後
c
f
c
fstage14クリア後
c
f
c
f
実際のステージ選択の例(考察)
ステージ1ステージ1
ステージ12ステージ12
ステージ14ステージ14
ステージ16ステージ16
ステージ13ステージ13
未知のシチュエーション
まとめ
LowHigh
High
High
skill
challenge
fun
FLOWboredom
anxiety
ステージをモジュールという部品に分解 モジュール一つ一つのfunからステージのfunを推定
fun
High
HighLow challenge
skill s skill t
プレイしたステージのログ 未経験のステージn
目的目的 プレイヤーの楽しさが最大となるステージの選択
デジタルゲームの製作手順デジタルゲームの製作手順
コンテンツデータ
3Dモデル
スクリプト
音楽
音声
設定データ
2Dデータ
ツール
3Dツール
2Dツール
スクリプト言語
サウンドツール
エンジン
ゲームプログラム
ツールプログラマー
開発者
ゲームプログラマー
ゲーム開発における課題
ニッチな手法が多く、汎用性に乏しいプレイヤーの癖や性格といった特徴をプレイ履歴や入力から解析する手法が確立されてはいない
コンテンツ生成に関する研究
プレイヤーを楽しませるための研究
2Dプラットフォーム型ゲームにおけるマップの自動生成に関する研究[Sorenson et al 2010]
協調型共進化を用いた研究[Cook et al 2012]
ゲームシステム・ルールの改良に関する研究[Togelius et al 2008],[Cook et al 2011]
プロシージャル技術以前の製作手法
・手作業によるゲームデータの生成・手作業によるゲームデータの動作定義
プロシージャル技術
・計算によるゲームデータの生成・計算によるゲームデータの動作定義
プロシージャル技術とその課題
デジタルゲームの製作手順デジタルゲームの製作手順
プロシージャル技術とその課題
コンテンツデータ
3Dモデル
スクリプト
音楽
音声
設定データ
2Dデータ
ツール
3Dツール
2Dツール
スクリプト言語
サウンドツール
エンジン
ゲームプログラム
ツールプログラマー
開発者
ゲームプログラマー
ゲーム開発における課題
ニッチな手法が多く、汎用性に乏しいプレイヤーの癖や性格といった特徴をプレイ履歴や入力から解析する手法が確立されてはいない
コンテンツ生成に関する研究
プレイヤーを楽しませるための研究
2Dプラットフォーム型ゲームにおけるマップの自動生成に関する研究[Sorenson et al 2010]
協調型共進化を用いた研究[Cook et al 2012]
ゲームシステム・ルールの改良に関する研究[Togelius et al 2008],[Cook et al 2011]
プロシージャル技術以前の製作手法
・手作業によるゲームデータの生成・手作業によるゲームデータの動作定義
プロシージャル技術
・計算によるゲームデータの生成・計算によるゲームデータの動作定義
デジタルゲームの製作手順デジタルゲームの製作手順
コンテンツデータ
3Dモデル
スクリプト
音楽
音声
設定データ
2Dデータ
ツール
3Dツール
2Dツール
スクリプト言語
サウンドツール
エンジン
ゲームプログラム
ツールプログラマー
開発者
ゲームプログラマー
ゲーム開発における課題
ニッチな手法が多く、汎用性に乏しいプレイヤーの癖や性格といった特徴をプレイ履歴や入力から解析する手法が確立されてはいない
コンテンツ生成に関する研究
プレイヤーを楽しませるための研究
2Dプラットフォーム型ゲームにおけるマップの自動生成に関する研究[Sorenson et al 2010]
協調型共進化を用いた研究[Cook et al 2012]
ゲームシステム・ルールの改良に関する研究[Togelius et al 2008],[Cook et al 2011]
プロシージャル技術以前の製作手法
・手作業によるゲームデータの生成・手作業によるゲームデータの動作定義
プロシージャル技術
・計算によるゲームデータの生成・計算によるゲームデータの動作定義
プロシージャル技術とその課題
デジタルゲームの製作手順デジタルゲームの製作手順
コンテンツデータ
3Dモデル
スクリプト
音楽
音声
設定データ
2Dデータ
ツール
3Dツール
2Dツール
スクリプト言語
サウンドツール
エンジン
ゲームプログラム
ツールプログラマー
開発者
ゲームプログラマー
ゲーム開発における課題
ニッチな手法が多く、汎用性に乏しいプレイヤーの癖や性格といった特徴をプレイ履歴や入力から解析する手法が確立されてはいない
コンテンツ生成に関する研究
プレイヤーを楽しませるための研究
2Dプラットフォーム型ゲームにおけるマップの自動生成に関する研究[Sorenson et al 2010]
協調型共進化を用いた研究[Cook et al 2012]
ゲームシステム・ルールの改良に関する研究[Togelius et al 2008],[Cook et al 2011]
プロシージャル技術以前の製作手法
・手作業によるゲームデータの生成・手作業によるゲームデータの動作定義
プロシージャル技術
・計算によるゲームデータの生成・計算によるゲームデータの動作定義
プロシージャル技術とその課題
プレイ回数の増加に伴うfunの推移(正順)
ステージをクリアできなかった
ステージをクリアした
○ 内の数値は挑戦回数
挑戦回数0
0.16stage1
0.015
0.025
stage2
-0.025
0.025
stage5
-0.04
0.05
stage4
-0.01
0.06
stage3
ステージn挑戦時の評価値の推移
ステージn挑戦時の評価値の推移
挑戦回数-0.01
0.0
stage1
-0.025
0.01
stage2
-0.35
0.15
stage5
-0.02
0.14
stage4
-0.02
0.07
stage3
プレイ回数の増加に伴うfunの推移(逆順)
B
実際のステージ選択の例プレイ回数:48
ステージ1ステージ1 ステージ12ステージ12 ステージ18ステージ18
クリアクリア クリアクリア 諦めた諦めた
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
-0.05
0.00
0.05
0.10
0.15
0.20
stage1クリア後
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
-0.04
-0.02
0.00
0.02
0.04
0.06
0.08
0.10
0.12
stage12クリア後
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
-0.04
-0.02
0.00
0.02
0.04
0.06
0.08
stage18最後のプレイ後