「カオス理論をつかったゲーム」の編集履歴(バックアップ)一覧はこちら
カオス理論をつかったゲーム - (2009/06/25 (木) 02:27:30) の最新版との変更点
追加された行は緑色になります。
削除された行は赤色になります。
制作者 ゲーム関係の仕事探しています堀江 伸一
兵庫県加古川市加古川町南備後79-16
sin-horie@mvd.biglobe.ne,jp
ここではゲームシステムの分析や制作に、カオス理論を導入すれば役に立つことを提唱する。
カオス理論とは数学の一分野であり、シミュレーションの予測不可能性の基礎として有名な理論である。
この理論をゲーム制作や評価の現場に応用することで、単調でつまらないゲームシステムからの脱却を計画的に行えるようになる。
ここではマリオカートのカオス理論による分析を通して、カオス理論が役に立たない理論でないことを証明し、開発現場の製作費カットに役立つことを証明する。
*スーパーマリオカートについて
スーパーマリオカートシリーズは非常に楽しいゲームである。
ドリフトを奇麗につなげてコーナーをかけ、アイテムで一発逆転を狙う。
遊んでいて、不思議に思ったことはないだろうか?
なぜ、マリオカートは何度遊んでも飽きないのだろう?
今回はこの疑問について数学的に分析して考察する。
前半では難しい理屈を、そのあとで誰にでもわかる図解入りで掲載する予定である。
まずは下記の文章に目を通してほしい。
書いてあることが分からない場合は、後半で子供にでもわかるよう図解入りで説明するのでさらっと目を通すだけでよい。
----
*数学的考察
カートが連続コーナーを通る時、連続コーナーがカートの軌道にどのような影響を与えるかを考察する。
状況をシンプルにするためタイムアタックを例にとる。
マリオカートでコーナーを曲がるシーンを考えてほしい。
最初に一つのコーナーを曲がる時のことを考える。
一台のカートがコーナーを抜けるとき重要な要件は何か。
- 入る時の位置やスピード車体の向き
- コーナー中でのドリフトのタイミング
これによってコーナーをでたあとの位置が決まる。
カートが毎回同じような位置から同じコーナーに入ったとしても、入る時の位置や車体の向き、コーナー中での微妙な操作タイミングの差でコーナーから出た後では、位置や車体の向にずれが生じる。
このとき、何度か試してコーナーから出た後の各カートの位置とスピードと向きの差を集め、その差をリャプノフ指数で計るとする。
この値をrとし、rをコーナーのリャプノフ指数とする。
一つのコーナーでの考察の次は連続コーナーを考える。
連続コーナーではドリフトを奇麗につなげていくことが重要となる。
あるコーナーでのドリフトの成否は前のコーナーでのドリフトの影響を受ける。
よって前のコーナーで起きるカートの位置の差は次のコーナーに持ち越される。
その差は累積する。
i番目のコーナーのリャプノフ指数をriとしコーナーの数をnとすれば。
R=r1*r2*、、、*rnとなる。
このRが連続コーナーがカートの軌道に影響を与える要因を表す数字となる。
意外と誤差が累積するのが連続カーブの中にある中途半端な直線や、ゆるやかなカーブでのドリフトとなる。
-誤差修正
次に累積誤差の修正について考えてみる。
マリカではカートの誤差を低減できる場所が無数にある。
ドリフト中での微調整や、連続コーナーの間でも次のコーナーに備えてカートの位置を整えるために一息つける場所などである。
これら誤差修正は累積誤差との綱引きとなりRの値を低減する。
修正は好き放題にはできない。
コーナーでの微調整は車体にも慣性や向きがあるため、コーナーの前後を通る短時間で行わなくてはならず、次のカーブに影響する。
コーナーでの微調整には不可逆性の操作が含まれているため、必ずしも奇麗に調整できるとは限らない。
誤差修正のためのコース取りは上級者と初級者ではあまりにレベルが違いタイムに差が出ることも見逃せない。
調整作業も、単なる調整ではなく次のカーブも考えたうまい調整となると初級中級者の間は難しく、上級者ではカートの速度が上がりすぎて調整作業のタイミングが減っていき誤差の修正が難しくなる。
下手なうちは一つ一つのコーナーを順番にクリアしていくだけだが、うまくなるほど複数のコーナーを一つにつなげてコース取りを取ることを考え始める。
そうなると手前のコーナーでのコース取りが次のコーナーに影響しだす。
下手なうちは誤差の累積を消すチャンスが多いが、うまくなるほど累積誤差や微調整の難しさが前面に出てくるのである。
いつまでも飽きない理由はここにある。
うまくなる=累積誤差が前面に出てくる、このために上達するごとにコースの意味が変わってくるのである。
おまけ程度だが他の理由もある。
連続カーブ内の一息つける直線などでは、微調整をするために十分な長さがあるとは限らない。
単純にカーブ中でのコース取り調整作業は減速を意味するので調整のしすぎはタイムに響く。
このことも連続カーブ内での微調整を難しくさせ、マリオカートの面白さを倍増させる。
直線コーナーは累積したRの値を下げる働きがある。
長い直線ではRが大幅に下がり、短い直線ではRは少ししかさがらない。
50CC、100CC、150CCとあがると、直線コーナーを短時間で通り過ぎるため、直線でRを下げる働きが低下する。
スピードの変化はステージの質的な変化を意味する。
Rが大きすぎる場合、ほんのちょっとの操作タイミングさでカートの位置が大きくずれるため、制御が困難になるがコースアウトによって、累積したRの値はリセットされるのでそこはうまくできている。
基本はRが累積するために、同じようにコーナーに入っても毎回違う軌道を通り飽きない点となる。
またコーナーに入る時のコースを変えれば、カートがまた違った軌道を通る。
そのため、毎回状況が微妙に変わり何度同じコースをとおってもなかなか飽きないのである。
次は上達について考えてみよう。
人は走るたびに上達する。
同じ位置からコーナーに入っても、上達と試行錯誤が入るため前走った時と誤差が出る。
この上達によるコーナー取りの変化は次のカーブへも影響し累積していく。
以上は、アイテムや他のカートがいない場合の最もシンプルな分析である。
クリボーや牛、土管などの障害物が加えて理論を考えただけでも一気に複雑になる。
リャプノフ指数をもったコーナーからかく乱を受けた中での障害物の回避は白熱するわけである。
現実のマリカではアイテムや対戦、カート同士の体当たりなど他にも無数の要素が入り、面白さに貢献している。
今回の考察の重要なところはマリカのシステムを関数で表現できる点である。
xをコーナーに侵入するカートとし,aをユーザーによる微調整能力,Fiをi番目のコーナーのリャプノフ指数を求める関数とする。
マリオカートのゲームシステムのうちコーナーでの操作性を
F1(x,a)*F2(x,a)*,,,,fn(x,a)
また、Giをi番目のコーナーを通りこした後のカートの位置とプレーヤの能力をそのまま出力する関数とすれば。
Gn(,,,,G2(G1(x,a)),,,,)
のように関数の中で非常にシンプルに考えることができる点である。
関数レベルで考えて関数を改造してから、ゲームに落とし込む。
ゲームを関数に置き換え直してから、関数の中で考えてゲームの質を上げたり分析したりする。
このサイクルを繰り返すことでゲームの面白さを的確に評価できる可能性や、関数という抽象化された中でのゲーム作りの手法を確立することができる。
マリオカートが飽きない理由は、累積誤差が蓄積することである。
そしてこの誤差はカオス理論で分析でき、カオス系の中に存在する。
マリカに限らず飽きないゲームバランスや操作系にはカオス系が多用されている。
カオス理論に基づいた関数を多用することは、非常に良いことである。
コストを抑えたゲーム開発の一手法として、関数レベルでカオス系を取り入れそこからゲームを作りだすという手法を提唱したい。
-数学的考察終わり
----
この奇怪な文章はなんだろうか?
リャプノフ指数に、カーブから出た後の差の累積?
数学の苦手な人間には意味がわからないかもしれない。
実はここには、マリオカートがなかなか飽きないことの秘密の一つが書かれているのである。
次は図解入りで誰にでもわかるようにこれを説明しよう。
とりあえず前半かけたので書きかけを送信します。
後半は後日送信します。
とりあえず読んだ方感想ください。
----
*第2章 スーパーマリオブロスシリーズに関する分析
----
*カオス軌道を最も上手に使ったシリーズ
任天堂のマリオシリーズは2つの要素で構成されていた。
S ジャンプ、ダッシュ、パワーアップアイテム後の動きによる連続写像。
M 地形*ギミック*敵踏みつけ*敵の回避、これらが生み出す軌道の複雑さ。
の2つである。
Mにより創出されるマリオの軌道に様々な影響を与える複雑なリャブノフ指数の分布をもつ2D空間M1。
M1の中でなされるS。
Mの配置*Sという複雑さがマリオの飽きなささの源泉の一つである。
そしてマリオは立ち止まることができステージの各部が小分けされている。
複雑にリャプノフ指数の入り乱れた空間の中で、ユーザーは自分の好みで一息つくことができるのである。
これはカオス軌道にほんろうされがちなユーザーへの救済措置となり、難易度を自分で調節できるという幸福感が与えられている。
4人で遊べる最新作ではこれに更に、協力・お邪魔プレイで新しいカオス軌道がうまれている。
この難しそうな文章の中にはゲーム作りのエッセンスというべきものが隠されている。
もしゲーム作りの教科書といいうものが存在すれば、必ず掲載されるだろうほど重要な内容である。
ヒントとなるのは2Dのカオス軌道の分析に使われる理論であり、リャプノフ指数という単語である。
ここでは2Dアクションのみならず、N次元空間の状況を持つシミュレーションにも拡張できるゲーム作りの理論を展開したいと思う。
解説は下準備から始まる。
2Dゲームと3Dゲームの違いを取り上げる下準備から初めて、なぜ2Dゲームを題材にとるかの解説を行う。
次に、カオス理論とは何かの簡単な解説を行う。
最後にカオス理論とゲームがどうつながり、ゲームの中でどのように存在し面白さに貢献しているかを実例で解説し、最後に2次元からN次元空間に拡張する方法を説明する予定である。
*2Dアクションゲームと3Dアクションゲームの違い、2Dゲームを題材にとるわけ
2Dゲームというものは操作が容易で一覧性に優れ、そのためユーザーの自由度が高い。
対して意外なことに3Dアクションゲームの自由度は低い。
画面の向こうのキャラを操作するというのは人間には難易度が高い作業である。
人間の操作・認識能力が画面内の3Dキャラの動きに限界をかしてしまう。
3D空間の表現力の限界でなく、操作性の限界が3Dゲームの限界を形作る。
2Dは一覧性に優れており操作が容易。
3Dより2Dのほうが自由度が高い場合も多く、必然としてカオス理論で分析できるゲームの種類が多い。
また2Dゲームのほうがシンプルなため、よりシンプルに解説することができる。
このため2Dゲームを題材にとり、カオス理論とゲームの面白さについて解説することとする。
-2Dアクションゲームに隠された面白さの秘密
書きかけ
制作メモ
ここでは、2Dアクションゲームの面白さとカオス理論がどう関係しているかを掲載する予定。
2D空間内のリャプノフ指数の分布とそれがゲームに与える影響まで読者に読ませればこっちのもの。
最後はリャプノフ指数の分布やその変化という観点からゲームを構築する理論の提唱、まで掲載する予定。
自キャラの動きのような目に見えてわかりやすい部分だけでなく、それ以外も解説したい。
2Dゲームでも、抽象的な部分までカオス理論の分析対象にすると、無数の面白さが見えてくるということを解説したいし、N次元空間へ拡張するということの意味も解説したい。
*2Dアクションゲームにおけるリャブノフ指数とユーザーの熱中度とストレス指数の相関について
書きかけ
ここでは2Dアクションゲームにおけるストレスと楽しさについての計測結果を載せる予定である。
アクションゲームにおいて、キャラの軌道に影響を与えるゲーム内オブジェと、オブジェがキャラの軌道に与える2D空間内の各点におけるリャブノフ指数を導き出す計算法の導出を掲載する予定。
ステージ内のリャブノフ指数の平均や分布パターンを段階的に変化させてユーザーに遊ばせた時、ユーザーがどのようなストレスや興奮を感じるかを計測し楽しいゲームとは何かの考察の一助とする。
また操作系*オブジェとユーザーのストレス度関係についても分析できたらと思う。
☆作☆者☆ 堀☆江☆伸☆一
住所 675-0033-79-16
制作者 ゲーム関係の仕事探しています堀江 伸一
sin-horie@mvd.biglobe.ne,jp
ここではゲームシステムの分析や制作に、カオス理論を導入すれば役に立つことを提唱する。
カオス理論とは数学の一分野であり、シミュレーションの予測不可能性の基礎として有名な理論である。
この理論をゲーム制作や評価の現場に応用することで、単調でつまらないゲームシステムからの脱却を計画的に行えるようになる。
ここではマリオカートのカオス理論による分析を通して、カオス理論が役に立たない理論でないことを証明し、開発現場の製作費カットに役立つことを証明する。
*なぜマリオカートはいつまで遊んでも飽きにくいのか(改訂版)
章タイトル
-難しい理論
-感覚的な理論
-大学生ならわかる説明
高校生でもわかる説明
-マリオカートのよさを分析して新しいゲームの作成に活かす方法
難しい理論
マリオカートはドリフトとミニターボの連続によってタイムを上げていく。
ドリフトによる旋回とミニターボの連続はコース上でのカートの動きにカオス系をもたらし、カートはカオス軌道の中を回ることになる。
これにより、カートの軌道はコース内で無数に選択でき多様性も生まれ、いつまでも飽きにくいゲーム性が生まれる。
-感覚的な理論
マリオカートDS(私の場合Wifi対戦ではケンジという名前で参加、弟のDSを借りている)キノコリッジウェイ1分58秒(キノコリッジ以外練習していない)と鈍足な俺がゆうのもなんだけど。
感覚的にいえば、タイムがあがってくるとだんだんカートを走らすというより、カートが最速軌道へ向かって落ちるだけという感覚になるんだな。
俺がカートを走らせているのではない、水が低いところに流れるようにカートが勝手に落ちていくんだ、その結果が最速軌道。
でこのタイムになってくると、自分がミニターボの連続のなかを走っているという感覚だけが残り、全てのコーナーに意味がなくなってくる。
ミニターボとドリフトをひたすら連続させてカオス軌道を選択しつづけ、それがたまたまコーナーの流れと一致している。
カートはコーナーを離れ完全にカオス軌道の中だけを走っている。
そのために軌道の選択が無数にあると感じいつまでも飽きない。
-大学生でもわかる理論
実力がそこそこのうちは、カートの軌道は一回一回のドリフトが独立しているので誰もが安心して操作できる。
うまくなると速度が上がりドリフトが連続でつながりミニターボの回数が増え、カートの軌道はカオス系に近づいていく。
うまくなるほどにゲーム性が変わっていく。
これを数式で解説しよう。
i番目のコーナーでのドリフトをfi、コーナーに入る前のカートの状態をxi、コーナーから出た後のカートの状態をfi(xi)とする。
yi=fi(x))
そこそこの実力のうちは速度が上がらないためドリフトの後直線で修正がすむため、
どのコーナーでも
yi=fi(xi)
が成り立つ。
うまくなるとドリフトがつながりだし
y1=f1(x)
y2=f2(f1(x))
,,,
yn=fn(fn-1(,,,f1(x),,,))
に近づいていく。
このfの連続はカオス系を生み出す連続写像の近似である。
そしてうまくなるほどに直ドリなどが増えfの数が増えていく。
次にドリフトを測定してみよう。
ドリフト時、十字キーを何も操作しなかったときの、カートの軌道をL1。
ドリフト時右ボタンと左ボタンを操作したときのカートの軌道をL2。
左右ボタンを押すとカートは回転し、カートを動かすベクトルの向きが大きく変わる。
軌道が大きくずれるがこのL2とL1のドリフト終了時の位置とカートの向きの差をa,b.
更にその後のミニターボの加速により生まれる、カートの位置と向きと速度の差の組をcとする。
このa,b,cを測定基準とし、コース内にとどまろうとするユーザーの操作を勘案すれば、コース内にカオス系が生まれていくことを確認できる。
*高校生でもわかる理論
現在製作中
*マリオカートのよさを分析して新しいゲームの作成に活かす方法
改造案
マリオカートのよさを分析して新しいゲームを作る方法。
その1
カートの操作系を微改造するか増やす(具体的には高さ方向の動きを加えた新しいカートを考える)
その2
ゲーム中、ゲームに大きな影響を与えるいくつかの変数。
これを操作する写像にカオス系と線形系の2つを用意。
線形の写像では、安定しているがゲーム内での評価が低い(スコアが低いとか速度が上がらないとか、敵を一掃できないとか)
カオス系の写像では、変数がカオス軌道の中を動くがゲームオーバーと大スコア(敵の一掃とかハイスコアや最速)などがカオス軌道の中に入り混じっている。
これら変数の操作を、ユーザーにわかりやすい納得できる形で提示でき、それが画面の派手さや爽快感、気持ちよさで包むことができたら、
そのゲームは良いゲームとなる。
制作者 ゲーム関係の仕事探しています堀江 伸一
兵庫県加古川市加古川町南備後79-16
sin-horie@mvd.biglobe.ne,jp
[[カオス理論を使ったゲーム第2章誤差修正]]