「ネットワーク」 サンプルページ · のサービスやアプリケーションの開発,ネットワーク対応のゲームの制作にも役立つ. ... 6.4 ipv6
人工知能をゲームに応用する
description
Transcript of 人工知能をゲームに応用する
人工知能をゲームに応用する
有限会社ムームー 森川幸人
ニューラルネットワーク・モデルの利用
「がんばれ森川君2号」 (1997 SCE)
主人公がアイテムのカテゴリーを学習、 想起するエンジンとして利用。主人公が、環境(外界、自分の生理)の状態に 応じて取るべき行動を学習、想起する エンジンとして利用。
「ここ掘れプッカ」 (2000 SCE)
遺伝的アルゴリズム・モデルの利用
「アストロノーカ」 (1998 SCE)
敵モンスターが、プレイヤーの仕掛ける トラップに耐性がつくような進化を遂げる 仕組みとして利用。
ゲーム「アストロノーカ」の流れ
ここにGAを利用
バブーの進化には、3つの要素がある。 #1
• 種族の進化(拡大)バブーの種類、形状が進化(拡大)する
ゲーム進行中の集団 (20 個体 )
バブーの進化には、3つの要素がある。 #2
• トラップへの耐性の進化• トラップからの脱出、破壊能力が進化する
(例)落とし穴から飛び出す(脚力)
バブーの進化には、3つの要素がある。 #3
• トラップへの戦略の進化• トラップをさけるか、壊して行くかなど、
対トラップ戦略が進化する
(例)トラップを発見したら、それを避ける経路を取る
• バブーの進化(方向とスピード)は、プレイヤーの仕掛けるトラップの構成によって、決まる
• バブーの能力(属性値)の調整は、最初の集団のみで、その後のレベルのバブーの能力は、自動的に作られていく。
キャラクターの進化への応用• 例えば、 RPG におけ
るキャラクター(敵)の強さ設定に GA を利用する。
• プレイヤーとのバトルを通じて、キャラクターが自律的に進化する(強くなる)。
• あらかじめ、全てのレベル(強さ)のキャラクターの能力値を設定しなくてもよい。
• 最初の集団の能力値を設定したら、その後の進化の方向、スピードは、プレイヤーとの関係で設計されていく。
GAを使う利点
まとめ
• RPG のモンスターに限らず、レースゲームの車の性能など、いろいろなジャンルのゲームに応用が可能。
• 能力値だけでなく、戦略性も進化させられる。• レベル間の強さの段階の設定をしなくてもいい。• 常にその時点のプレイヤーの力にフィットした
能力値の設計が、自動的にできる。• あらかじめ、全てのレベル(強さ)のキャラクターの能力
値を設定しなくてもよい。• もしくは、以上の設定を、開発段階で自動化できる。
自律生成の仕組みをゲームに組み込む
予定調和的な世界設計が飽きられ始めている。ゲームのボリュームが肥大化していくに伴い、 全内容を人力で作ることが、大きなコストに なっている。必ずしも人工知能的アプローチに 固執するものではない。
クマに演歌を作らせ,歌わせる方法
• このゲームは、弟子のクマに演歌の魂を教え込むゲームである。
• クマが演歌の歌詞とメロディーを自動生成する。
• 作った曲を音声合成で歌い上げる。
(2003 SCEJ)
具体的な内容
具体的には、1)クマに言葉を教える、またはクマが自主的
に言葉を覚えてくる2)クマが作った歌詞に修正や評価を加える
(加えなくても可)3)できあがった歌詞にクマが曲をつける4)できあがった曲をクマが歌うという要素から構成されている。
演歌を自動生成する
本ゲームでは、 人工知能的アプローチではないが、 クマが歌詞と曲を自動生成するための
仕組みが組み込まれている。
歌詞を作る
クマはゲームの進行、あるいはプレイヤーの教育(言葉を教え込む)によって、ボキャブラリーを増やしていく。
また、覚えた言葉は、使われた回数や評価(ほめられた、無視されたなど)回数によって、選ばれる確率が変化していく。
歌詞の自動生成の方法 #1 用意された空のテンプレートの中から ランダムにテンプレートを選択する。
このテンプレートには、行数と各行の文字数の制限のみが定義されている。
(例)1行目:8文字+5文字、2行目:7文字+7文字 ...
歌詞の自動生成の方法 #2
別の定義テーブルでは、文字数毎の品詞構成が定義されている。(例)8文字:(4文字の形容詞+1文字の助詞+3文字の名詞)、(3文字の形容詞+5文字の名詞) ...
歌詞の自動生成の方法 #3この定義を先に選択したテンプレートにはめ込んでいき、歌詞の品詞構成を決定する。こうしてできたテンプレートに、クマの知っている言葉(ボキャブラリー)から、文字数的に適合する品詞を選んで組み込んで歌詞を完成させる。※助詞は、その前後の名詞、形容詞から適宜に選択される
曲の自動生成の方法 #1曲の生成は、以下の手順で進む。
曲の自動生成の方法 #21.曲調を選択する
演歌の曲のトーンを選択する。演歌を大きく3つのタイプに分類し、いずれかのトーンがランダムに選ばれる。
曲の自動生成の方法 #22.コードを選択する
曲調に応じたコード進行が選択される。曲調毎に、多くのコード進行セットが用意されている。
曲の自動生成の方法 #33.メロディーラインを選ぶ
コードにそうメロディーラインが選ばれる。コード毎に、多くのメロディーラインが用意されており、ランダムに選択される。また、メロディー間の相性があるので、その禁則処理もされる。
曲の自動生成の方法 #44.楽器セットを選ぶ
最後に、生成された楽曲を演奏する楽器セットを選択する。
音声カーナビなどでお馴染みの音声合成エンジンを
使っている。 (株式会社アニモの音声合成エンジンを利用)
作られた曲はMIDIデータになっており、音声はその「楽器」として扱われている。
人間?の声らしくきこえるために楽曲のメロディーの特性に合わせて、さらにMIDIの制御(ビブラートなど)を加えている。
今後の課題 #1今後の課題は大きく3つある。
歌詞全体が「意味の通る」歌詞にする。
プレイヤーの嗜好を反映した楽曲をつくれるようにする。
より、人間らしい声にする。
今後の課題 #2意味の通る歌詞を生成するためには、高度な意味解析技術が必要。
この処理はいろいろな意味で「大きな作業」になりそう。例えエンジンが開発されたとしても、1ゲームあるいは、ゲーム機が扱える能力を越えることが予想される。
今後の課題 #3「意味が通じる」歌詞の生成の方法として、意味解析とは全く異なるアプローチがあるのではないか?
プレイヤーが教えた、あるいは評価した「歌詞の連なり」をデータベース化する。
ネットワークを通して、このDBを他のユーザーと共有することで、DBの量と質を高めていく。
今後の課題 #4そのためには、DBから最適な情報(ことば)を検索し、選択するためのアルゴリズムの開発が必要?
アクティブ探索法の利用?補完類似度法の利用?