人工知能をゲームに応用する

30
人人人人人人人人人人人人人 人人人人人人人人 人人人人

description

人工知能をゲームに応用する. 有限会社ムームー 森川幸人  . ニューラルネットワーク・モデルの利用. 主人公がアイテムのカテゴリーを学習、  想起するエンジンとして利用。 主人公が、環境(外界、自分の生理)の状態に  応じて取るべき行動を学習、想起する  エンジンとして利用。. 「がんばれ森川君2号」 (1997 SCE). 「ここ掘れプッカ」 (2000 SCE). 遺伝的アルゴリズム・モデルの利用. 敵モンスターが、プレイヤーの仕掛ける  トラップに耐性がつくような進化を遂げる  仕組みとして利用。. 「アストロノーカ」 (1998 SCE). - PowerPoint PPT Presentation

Transcript of 人工知能をゲームに応用する

Page 1: 人工知能をゲームに応用する

人工知能をゲームに応用する

有限会社ムームー 森川幸人  

Page 2: 人工知能をゲームに応用する

ニューラルネットワーク・モデルの利用

「がんばれ森川君2号」 (1997 SCE)

主人公がアイテムのカテゴリーを学習、 想起するエンジンとして利用。主人公が、環境(外界、自分の生理)の状態に 応じて取るべき行動を学習、想起する エンジンとして利用。

「ここ掘れプッカ」 (2000 SCE)

Page 3: 人工知能をゲームに応用する

遺伝的アルゴリズム・モデルの利用

「アストロノーカ」 (1998 SCE)

敵モンスターが、プレイヤーの仕掛ける トラップに耐性がつくような進化を遂げる 仕組みとして利用。

Page 4: 人工知能をゲームに応用する

ゲーム「アストロノーカ」の流れ

ここにGAを利用

Page 5: 人工知能をゲームに応用する

バブーの進化には、3つの要素がある。 #1

• 種族の進化(拡大)バブーの種類、形状が進化(拡大)する

ゲーム進行中の集団 (20 個体 )

Page 6: 人工知能をゲームに応用する

バブーの進化には、3つの要素がある。 #2

• トラップへの耐性の進化• トラップからの脱出、破壊能力が進化する

(例)落とし穴から飛び出す(脚力)

Page 7: 人工知能をゲームに応用する

バブーの進化には、3つの要素がある。 #3

• トラップへの戦略の進化• トラップをさけるか、壊して行くかなど、

対トラップ戦略が進化する

(例)トラップを発見したら、それを避ける経路を取る

Page 8: 人工知能をゲームに応用する

• バブーの進化(方向とスピード)は、プレイヤーの仕掛けるトラップの構成によって、決まる

Page 9: 人工知能をゲームに応用する

• バブーの能力(属性値)の調整は、最初の集団のみで、その後のレベルのバブーの能力は、自動的に作られていく。

Page 10: 人工知能をゲームに応用する

キャラクターの進化への応用• 例えば、 RPG におけ

るキャラクター(敵)の強さ設定に GA を利用する。

• プレイヤーとのバトルを通じて、キャラクターが自律的に進化する(強くなる)。

Page 11: 人工知能をゲームに応用する

• あらかじめ、全てのレベル(強さ)のキャラクターの能力値を設定しなくてもよい。

• 最初の集団の能力値を設定したら、その後の進化の方向、スピードは、プレイヤーとの関係で設計されていく。

GAを使う利点

Page 12: 人工知能をゲームに応用する

まとめ

• RPG のモンスターに限らず、レースゲームの車の性能など、いろいろなジャンルのゲームに応用が可能。

• 能力値だけでなく、戦略性も進化させられる。• レベル間の強さの段階の設定をしなくてもいい。• 常にその時点のプレイヤーの力にフィットした

能力値の設計が、自動的にできる。• あらかじめ、全てのレベル(強さ)のキャラクターの能力

値を設定しなくてもよい。• もしくは、以上の設定を、開発段階で自動化できる。

Page 13: 人工知能をゲームに応用する

自律生成の仕組みをゲームに組み込む

予定調和的な世界設計が飽きられ始めている。ゲームのボリュームが肥大化していくに伴い、 全内容を人力で作ることが、大きなコストに  なっている。必ずしも人工知能的アプローチに 固執するものではない。

Page 14: 人工知能をゲームに応用する

クマに演歌を作らせ,歌わせる方法

• このゲームは、弟子のクマに演歌の魂を教え込むゲームである。

• クマが演歌の歌詞とメロディーを自動生成する。

• 作った曲を音声合成で歌い上げる。

(2003 SCEJ)

Page 15: 人工知能をゲームに応用する

具体的な内容

具体的には、1)クマに言葉を教える、またはクマが自主的

に言葉を覚えてくる2)クマが作った歌詞に修正や評価を加える

(加えなくても可)3)できあがった歌詞にクマが曲をつける4)できあがった曲をクマが歌うという要素から構成されている。

Page 16: 人工知能をゲームに応用する

演歌を自動生成する

 本ゲームでは、 人工知能的アプローチではないが、 クマが歌詞と曲を自動生成するための

仕組みが組み込まれている。

Page 17: 人工知能をゲームに応用する

歌詞を作る

 クマはゲームの進行、あるいはプレイヤーの教育(言葉を教え込む)によって、ボキャブラリーを増やしていく。

また、覚えた言葉は、使われた回数や評価(ほめられた、無視されたなど)回数によって、選ばれる確率が変化していく。

Page 18: 人工知能をゲームに応用する

歌詞の自動生成の方法 #1 用意された空のテンプレートの中から ランダムにテンプレートを選択する。

このテンプレートには、行数と各行の文字数の制限のみが定義されている。

 (例)1行目:8文字+5文字、2行目:7文字+7文字 ...

Page 19: 人工知能をゲームに応用する

歌詞の自動生成の方法 #2

別の定義テーブルでは、文字数毎の品詞構成が定義されている。(例)8文字:(4文字の形容詞+1文字の助詞+3文字の名詞)、(3文字の形容詞+5文字の名詞) ...

Page 20: 人工知能をゲームに応用する

歌詞の自動生成の方法 #3この定義を先に選択したテンプレートにはめ込んでいき、歌詞の品詞構成を決定する。こうしてできたテンプレートに、クマの知っている言葉(ボキャブラリー)から、文字数的に適合する品詞を選んで組み込んで歌詞を完成させる。※助詞は、その前後の名詞、形容詞から適宜に選択される

Page 21: 人工知能をゲームに応用する

曲の自動生成の方法 #1曲の生成は、以下の手順で進む。

Page 22: 人工知能をゲームに応用する

曲の自動生成の方法 #21.曲調を選択する

演歌の曲のトーンを選択する。演歌を大きく3つのタイプに分類し、いずれかのトーンがランダムに選ばれる。

Page 23: 人工知能をゲームに応用する

曲の自動生成の方法 #22.コードを選択する

曲調に応じたコード進行が選択される。曲調毎に、多くのコード進行セットが用意されている。

Page 24: 人工知能をゲームに応用する

曲の自動生成の方法 #33.メロディーラインを選ぶ

コードにそうメロディーラインが選ばれる。コード毎に、多くのメロディーラインが用意されており、ランダムに選択される。また、メロディー間の相性があるので、その禁則処理もされる。

Page 25: 人工知能をゲームに応用する

曲の自動生成の方法 #44.楽器セットを選ぶ

最後に、生成された楽曲を演奏する楽器セットを選択する。

Page 26: 人工知能をゲームに応用する

音声カーナビなどでお馴染みの音声合成エンジンを

使っている。 (株式会社アニモの音声合成エンジンを利用)

作られた曲はMIDIデータになっており、音声はその「楽器」として扱われている。

人間?の声らしくきこえるために楽曲のメロディーの特性に合わせて、さらにMIDIの制御(ビブラートなど)を加えている。

Page 27: 人工知能をゲームに応用する

今後の課題 #1今後の課題は大きく3つある。

歌詞全体が「意味の通る」歌詞にする。

プレイヤーの嗜好を反映した楽曲をつくれるようにする。

より、人間らしい声にする。

Page 28: 人工知能をゲームに応用する

今後の課題 #2意味の通る歌詞を生成するためには、高度な意味解析技術が必要。

この処理はいろいろな意味で「大きな作業」になりそう。例えエンジンが開発されたとしても、1ゲームあるいは、ゲーム機が扱える能力を越えることが予想される。

Page 29: 人工知能をゲームに応用する

今後の課題 #3「意味が通じる」歌詞の生成の方法として、意味解析とは全く異なるアプローチがあるのではないか?

プレイヤーが教えた、あるいは評価した「歌詞の連なり」をデータベース化する。

ネットワークを通して、このDBを他のユーザーと共有することで、DBの量と質を高めていく。

Page 30: 人工知能をゲームに応用する

今後の課題 #4そのためには、DBから最適な情報(ことば)を検索し、選択するためのアルゴリズムの開発が必要?

アクティブ探索法の利用?補完類似度法の利用?