300 likes | 484 Views
人工知能をゲームに応用する. 有限会社ムームー 森川幸人 . ニューラルネットワーク・モデルの利用. 主人公がアイテムのカテゴリーを学習、 想起するエンジンとして利用。 主人公が、環境(外界、自分の生理)の状態に 応じて取るべき行動を学習、想起する エンジンとして利用。. 「がんばれ森川君2号」 (1997 SCE). 「ここ掘れプッカ」 (2000 SCE). 遺伝的アルゴリズム・モデルの利用. 敵モンスターが、プレイヤーの仕掛ける トラップに耐性がつくような進化を遂げる 仕組みとして利用。. 「アストロノーカ」 (1998 SCE).
E N D
人工知能をゲームに応用する 有限会社ムームー 森川幸人
ニューラルネットワーク・モデルの利用 • 主人公がアイテムのカテゴリーを学習、 想起するエンジンとして利用。 • 主人公が、環境(外界、自分の生理)の状態に 応じて取るべき行動を学習、想起する エンジンとして利用。 「がんばれ森川君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 曲の生成は、以下の手順で進む。
曲の自動生成の方法#2 1.曲調を選択する 演歌の曲のトーンを選択する。 演歌を大きく3つのタイプに分類し、 いずれかのトーンがランダムに選ばれる。
曲の自動生成の方法#2 2.コードを選択する 曲調に応じたコード進行が選択される。 曲調毎に、多くのコード進行セットが 用意されている。
曲の自動生成の方法#3 3.メロディーラインを選ぶ コードにそうメロディーラインが選ばれる。 コード毎に、多くのメロディーラインが 用意されており、ランダムに選択される。 また、メロディー間の相性があるので、 その禁則処理もされる。
曲の自動生成の方法#4 4.楽器セットを選ぶ 最後に、生成された楽曲を演奏する 楽器セットを選択する。
音声 • カーナビなどでお馴染みの音声合成エンジンを使っている。 (株式会社アニモの音声合成エンジンを利用) • 作られた曲はMIDIデータになっており、音声はその「楽器」として扱われている。 • 人間?の声らしくきこえるために楽曲のメロディーの特性に合わせて、さらにMIDIの制御(ビブラートなど)を加えている。
今後の課題#1 今後の課題は大きく3つある。 • 歌詞全体が「意味の通る」歌詞にする。 • プレイヤーの嗜好を反映した楽曲をつくれるようにする。 • より、人間らしい声にする。
今後の課題#2 • 意味の通る歌詞を生成するためには、高度な意味解析技術が必要。 • この処理はいろいろな意味で「大きな作業」になりそう。例えエンジンが開発されたとしても、1ゲームあるいは、ゲーム機が扱える能力を越えることが予想される。
今後の課題#3 • 「意味が通じる」歌詞の生成の方法として、意味解析とは全く異なるアプローチがあるのではないか? • プレイヤーが教えた、あるいは評価した「歌詞の連なり」をデータベース化する。 • ネットワークを通して、このDBを他のユーザーと共有することで、DBの量と質を高めていく。
今後の課題#4 • そのためには、DBから最適な情報(ことば)を検索し、選択するためのアルゴリズムの開発が必要? • アクティブ探索法の利用? • 補完類似度法の利用?