top of page
https___qiita-image-store.s3.ap-northeas
l_5a2b94c6dce67.jpg
l_5a2b94c69d6c6.jpg
l_5a2b94c780dbf.jpg
l_5a2b94c7ea53e.jpg
y_5a2b94c752f5c.jpg
y_5a2b94c7af00a.jpg
y_5a2b94c6805ec.jpg
46434.jpg
8e478879045553cb.jpg
1_WEI7GbPKqRgurYzQqza_Ng.jpeg

人工知能が敵キャラを育てる! ディープラーニングを使った次世代のゲームAI開発

ゲームAIの各手法まとめ

ゲーム制作AIゲームAI

新卒ゆるゆるアドベントカレンダー15日担当です。
 

はじめに

あくまで概念的なお話しかしません。
そのため、各ゲームエンジンで実装する際にはそのエンジンごとの最適解や、エンジン改造で無理やり最適解にするなどの手法をとらなければいけないことと思います。その辺りのことはご自身で調べていただけますと幸いです。

ゲームAIっていったい何でしょう

最近AIがやたらと話題に上がることが多いと思います。最近だとAIを用いて東京のラーメンを評価するというニュースがあり、ラーメン二郎が入選していて何かしらの異論とかが上がっていたりしました。該当のニュースはこちら ぼく個人的言えば二郎系が一番おいしいと思います。
このような最近話題に上がるような俗世間的に広く認知されているAIの中でもゲームAIについて説明できればと思います。

 

この記事の内容の多くは人工知能の作り方 ―「おもしろい」ゲームAIはいかにして動くのかという本を参考にしています。

知能とは

AIはArtificial Intelligenceの略語で人工知能と和訳されるものです。
人工的に開発された知能それがすなわち人工知能なのですが、じゃあ一体知能とは何でしょう。
すごく概念的に言うと自分の内部を外部から守ること。内部から湧きあがる欲求を環境において実現すること。になるらしいです。正直これだけ言われても何のことか全くわからないので、別の定義では外部と内部の環境を調節するものになるらしいです。これだとわかりやすいかと思います。例えば、
おなかが減ったら冷蔵庫を開けてチャーハンを作ったり、

寒かったらエアコンをつけて部屋を暖めたりすることは、

知能が体の状況を判断して処置していることです。
他にもさまざまな定義はあるものの、環境と自身との間に入り、環境内での行動を制御するものを知能としてみていくとわかりやすいかと思います。

じゃあゲームAIっていったい。。。

さっきの知能をゲーム内に置き換えて考えてみましょう。
例えば、こんなモンスターがいたとします。

  • なわばりをもち、群れで行動する

  • 見た目からして弱そう。

よくいるスライムみたいなキャラクターが群れで行動していると考えてみてください。
このモンスターがどういう行動をしたら、”らしく”見えるでしょうか。
見た目からして弱そうなこのモンスターがなわばりに入ってきたプレイヤーを見つけた場合に取りそうな行動は、おそらく一人で神風特攻するよりも仲間を呼んで数の暴力を行う方がらしさがあるかと思います。もしくは、群れごとどこかへ逃げ出してしまうかもしれません。このらしさの部分を作るのがゲームAIであり、そのらしさを作るために様々なものを使用します。

ゲームAIの必須要素

ゲームAIに必要な共通要素は以下の二つあります。

  1. リアリティ(知能シミュレーション)

  2. 演技

また、以下のものがあるとよりらしさを演出することができます。

  • 反射

  • 群れ制御

これらについて説明していきます。

リアリティ(知能シミュレーション)

例えば、FPS系のゲームで敵キャラクターを作ろうとしたとしたときに、5m以内に入ってきた敵に対して発砲を行いたいとしましょう。
純粋にやろうとすると、プレイヤーとの距離を参照して5m以内に入ったらトリガーを弾くというプログラムになりますが、例えば、後ろから近づかれたらどうするのとか、障害物に隠れてたらどうするのとかそういった箇所においての処理をしなければなりません。純粋に5m以内に入ってきたら攻撃をするだけでは生きてる感じがしないので、キャラクターが状況を記録し、判断するような機能を実装し、実際の行動を起こす必要があります。これを自立型AIといい、割と多く用いられている手法かと思います。

演技

これは、先ほどのモンスターを例として考えていただければわかりやすいかと思います。
例えば、なわばりに入ってきたプレイヤーに威嚇行動をしてみたり、FPSでは、警戒状態になったら銃を構えながら歩いてみたり、こういった演技をキャラクターにさせることでよりキャラクターがプログラムに動かされている傀儡ではなく、ゲームの世界で生きているかのようにさせることができるものかと思います。

反射

これは、例えば、草むらから動物が飛び出して来たらとっさによけるといったことや、まずいものを食べたときに動物はそれを吐き出すといった生理的な行動です。
草食動物や肉食動物、モンスターといったような者たちはどちらかといえば知能による判断というよりかは反射で状況を判断させた方が、よりらしさが出ますし、人間や其れに近しい生き物の場合は反射より知能から状況を判断し、行動に起こす方がらしさができるかと思います。
状況によって使い分けが必要ですが、これを入れることで、行動のすみわけができるため、よりゲーム内の行動にメリハリがつくことでしょう。

群れ制御

キャラクターが2体以上存在している場合には、群れ制御のアルゴリズムとして、「レイノルズの群アルゴリズム」が有効です。このアルゴリズムを使用すると、キャラクター同士が衝突しなくなったり、オブジェクトを回避することができます。これは、お互いの位置関係から間接的に自分の位置を変化させていきます。これでAIが周りを認識して行動している感じを醸し出すことがらしさを引き出す際に重要となるのです。

以上のものを実際どのようにして組み合わせるのかを説明していきます。

意思決定アルゴリズム

意思決定とは、AIが自身で判断する技術です。
ゲームAIに用いられているもので、代表的なものは以下の七つです。

ルールベースAI

これは行動の基準をルールとして組み上げるAIのことです。
ここでのルールとは「もし~なら(if then)」の形式であらわされるものです。
このタイプのAIでは場合いろいろなルールをあらかじめ作成しておき、それらをルールセレクターというモジュールでどのルールを使用するかを判断させます。
わかりやすい例を上げるならば、FFXIIのガンビットシステムを想像していただくとわかりやすいかと思います。

このようにルールを定義しておき、それを一度だけ選ぶ、順番に選ぶ等のセレクターを実装し、動かすAIです。

ステートベースAI

ステートベースAIはその名前の通り、世界や人間の行動をステートの集合で表現しようとするAIです。
様々な分野で用いられているステートマシンのAI版で、あらかじめ、巡回や休憩中といった状態を定義しておき、AIの行動をステートからステートへ遷移するという形で表現するものです。
このAIはどちらかというとキャラクターに適応するものというよりは、ゲームのフローの中で用いられることが多く、
プレイヤーがこの場所にいる場合にこのイベントを起こす等の使用方法がよく見られます。

ビヘイビアベースAI

ビヘイビア(振る舞い)を基本としてAIの行動を考えるものがこのビヘイビアベースAIです。

UnityでもBehavior treeを組むためのアセットがあったり、Unreal Engineだとデフォルトで使用するAIであったりとゲームを開発する際に使用する機会が多いAIかと思います。
このAIは画像一番上のルートから自身の状況を把握するための様々な機能を利用して枝を見ていき、末端にある葉のノードを実行するAIとなっています。

タスクベースAI

ある課題を解決するために、行うべき行動を一つ一つ順番に実行するAIです。
これは、人間がパンを作るという行動をする際に小麦粉をこねて、生地を形作り、焼くといった各行動をひとつづつ順番に実行することにより、行動を生成します。
タスクごとに切り分けられているため、行動の入れ替えがとても容易にできるというメリットがあります。

ゴールベースAI

これは、あるゴールを目指すために到達しなければいけない小さなゴールの集合体を作成しキャラクターを制御するAIです。
例えば、ダンジョンに入った時にボスエリア手前にかぎの掛かった扉があるとしましょう。
この鍵を入手するには中ボスが待っているエリア奥の宝箱を開けなくてはならず、そのエリアに行くには道中でモンスターから特殊なアイテムを手に入れなければいけないといった小さなゴールの集合体を作成し、この小さなゴールを達成するために必要な行動をAIに行わせるものです。

ユーティリティベースAI

このAIでは行動する際に重要視されるものをユーティリティで表現します。
例えば、HPが少なく賞金も少ないモンスターを倒すのと、HPは多いけれど賞金の多いモンスターを倒すのとどちらが効用(ユーティリティ)が高く感じるでしょうか。
おそらく後者の方が効用が高く感じるかと思います。
このようにAIに効用を評価させ、それに応じて行動を決定させます。

シミュレーションベースAI

これは、AIにまだ起きていないことを想像させ、それによって現在の行動を生成させるAIです。
答えを見出すまでに様々な数学的手法があり、それらの革新的な応用の一つにモンテカルロ木探索法があります。これは、囲碁AIに用いられ、候補手の評価値を得るために、それ以降の手をランダムにシミュレーションします。これを何度も行うことにより、自身が一番勝率の高い手を選択することができるようになります。

これらの手法を用いて、キャラクターのらしさであったり、ゲームフローの管理などを行います。
これらの手法には向き不向きがあり、適したAIを選ぶのもまた重要になると思います。

まとめ

最近巷を騒がせているAIの分野は学習等でどれだけAIの判断が正確かどうかを評価する傾向にあるように感じます。
ですが、ゲームAIにおいては正確であることも必要ではあるものの、実際の生き物の反応としてみることができることの方が重要であるような気がします。
初学者の備忘録的にまとめてみました。現在ゲームAIについて勉強していて概念的なところ以外も記事にできたらなぁ(願望)と思っています。その時にまた読んでいただければ幸いです。

それではここまで読んでいただきありがとうございました。

5183VSLAoaL._SX350_BO1,204,203,200_.jpg
51XL7t+DJ8L._SX258_BO1,204,203,200_.jpg
banner.jpg
https___qiita-image-store.s3.ap-northeas
e1d96f072ec75375.jpg
e581d5a9b820d6b0a5c8ce0083cc1b77.jpg
https___qiita-image-store.s3.ap-northeas
ai_game_eye1-810x456.png
ai_game_image1-810x456.jpg
ai_game_eye2-810x456.png
ai_game_eye.jpg
190821_new03-5d5ccc837ac95.jpg
190819_02 (1).jpg
190819_01.jpg
019.jpg
https___qiita-image-store.s3.ap-northeas
954c69173192b6292e57e880ec66b4d3.jpg
020.jpg

With Technologies Like

AI

Digital Medicine

Neurofeedback

Biotech

Biofeedback

Sleep Tech

Networks & Sensors

AR/VR

Behavioral Change

Digital Manufacturing

Healthy Spaces Tech

Robotics

We are a global community of entrepreneurs, innovators, and investors building tech for mental wellness, emotional wellbeing, and human flourishing. We sit at the intersection of neuroscience, psychology, tech, entrepreneurship, and innovation. We leverage exponential technologies like AI, AR/VR/XR, networks and sensors, biotech, neurofeedback, robotics and more to build tech to enable human wellbeing at scale.

We start with this premise – the Future of Work, Society, and Tech DEPENDS on the State of the Human Mind. This question – How do we enable every human to develop their full potential? And this belief -- together, we can create an unprecedented era of human flourishing.

We can take the tech that has taxed our thinking and relationships and use it instead to transform our hearts and minds. We can have greater clarity, joy and connection -- and ultimately more possibility for all of humanity.

We must have flourishing because we cannot solve our other problems without having healthy human minds. Psychological wellbeing was once considered a luxury – something you get at the end of a stressful and fear-filled life. But now we need flourishing – to work, to live, to thrive. This is why we need to build the tech that we really, actually, need. The tech that helps us know ourselves better than algorithms, that helps us connect to ourselves and one another. The tech that supports our hearts and minds. Remember: We can design tech to serve us, to prioritize human contact and connection.

人は経験でしか変わらない AIがゲーム、VRと合体し、人類を進化させる未来

カリフォルニア大学のAdam Gazzaley博士はシリコンバレーで開催されたTransTech Conferenceに登壇、ゲームやVRを使って精神疾患を治療したり、高齢者の認知能力を向上させる「デジタル療法(digital medison)」の現状と今後の見通しについて講演した。同博士によると、デジタル療法は、AIが実現する最大の価値の一つ。治療だけではなく学習にも効果を発揮し、この仕組みを通じて「今後AIがHI(人間の知性)を進化させることになる」と言う。「ゲームしていないで勉強しなさい!」と怒られていた子供たちが「勉強より先にゲームしなさい!」と怒られるようになる!?

デジタル療法とは、薬を使わずにゲームなどのデジタルコンテンツを使って脳の特定の回路を刺激し精神疾患などを治療する方法で、最近注目を集める研究分野の1つ。同博士は、高齢者がプレイすることで注意力と記憶力を高めることのできるゲーム「Neuroracer」を開発。3年間の実験結果を基に、2013年9月に学術誌Natureに論文を発表し、高く評価されるている。

 

「もちろんそれはうれしいことだが、本当のゴールはこの技術を人々の生活の中に浸透させること」。そう考えた同博士は、その後、ゲームクリエイターたちと新会社Akili Interactive社を設立し、より楽しく、より没頭できるような洗練されたゲームを複数開発。「来年以降、これらのゲームが社会に大きな影響を与えるのではないかと期待している」と語っている。日本ではシオノギ製薬がAkili社のライセンスを取得し、ADHDを対象としたゲームアプリや、自閉スペクトラム症を対象としたゲームアプリを導入していくと発表している。

 

 

▼スマホゲームで脳トレ。大事なのはclosed loop

デジタル療法にとって大事なのはクローズド・ループだ、と同博士は強調する。クローズド・ループとは、環境に介入すると同時にその影響を計測し、それを基に介入を微調整する仕組みのこと。簡単な例で言うと、エアコンが、クローズド・ループ・システムの1つだ。希望する室温を例えば23度に設定しておけば、室温が22度のときは暖房の温風を出し、23度になればスイッチがオフになる。逆に室温が25度に上がれば、冷房に切り替わり冷風を出す。介入と同時に計測し、介入を微調整し続けているわけだ。

ゲームでは、プレイ中のスマホやタブレットの傾き具合や、タップの頻度などを計測し、プレイヤーの習熟度や熱中度を推測。習熟度に従って、ゲームの難易度を微調整し続けることで、難し過ぎず、簡単過ぎないゲーム展開を実現できる。熱中度に従って、ゲーム内で提供する報酬(ゲットできるポイントや、ステージ)を微調整し続けることで、プレイヤーのゲームへの没入度合いを深めるという。

同博士によると、没入感には脳の可塑性を高める可能性があるという。可塑性とは、脳の回路を組み換えることができる状態のこと。子供のころに形成された性格や考え方の癖は、大人になるとなかなか変えられないとみられてきたが、最近の神経科学では脳には可塑性があることが分かってきた。つまり脳の回路は、大人になっても組み替えることが可能だということだ。

ゲームに没入すると、プレーヤーの脳に負荷がかかる。集中や記憶、決定、言語、身体動作、認識など、トレーニングしたい脳の特定の回路に負荷をかけることで、脳の回路を組み換えることができるというわけだ。

「人類は、(デジタル療法で)脳の回路のスイッチを意図的に入れたり切ったりできるようになった」「遠い将来には、人類は脳のどの回路を使うのかを、自分で完全にコントロールできるようになるだろう」と同博士は予言する。

 

▼VR +αの体験が脳の回路を組み替える

「あくまでも仮説だが」と断った上で同博士は、「没入感が高けれ高いほど、脳の可塑性が高まる、という仮説がある」と話す。没入感は、スマートフォンのゲームより、VRゲームのほうが高いはず。そこで同博士は、VRを始め、没入感を高めるための技術や仕組みをいろいろ取り入れ、これまでに目的がそれぞれ異なる6種類のゲームを開発している。

 

例えばBady-Brain Trainerというゲームでは、ゲームのプレイ中に身体も動かさないといけないので、認識をつかさどる脳の部位と身体動作をつかさどる脳の部位の両方を刺激。ゲームのパフォーマンスと同時に心拍数も計測し、心拍数に従ってゲームの内容を変化させる、心拍数を一定の範囲内にとどめるようにしている。「ある程度まで心拍数を上げたほうが認識能力が上がるという仮説がある。それを検証している」という。

また、VRメガネを装着しプレーする際に、脳に微弱の電気刺激を与えるゲームもある。このゲームを通じた実験で、電気刺激を与えることで、ゲームの習得度を加速させることが分かった。では電気刺激が習熟度を上げることができるのか、効果が持続するのか、などを引き続き実験しているという。

 

同博士は、こうしたデジタル療法を、精神疾患の治療や高齢者のボケ防止だけではなく、教育分野にも応用し、若者の学習効果の向上に努めていきたいとしている。

同博士は、最近ではこうした取り組みをデジタル療法と呼ばず、「体験療法(Experiential Medicin)」と呼ぶようにしているという。なぜなら「大事なのはデジタルテクノロジーを使うことではなく、体験を通じて脳の回路を組み替えること」だからで、同博士は「脳の回路を組み替えることができるのは、体験のみ。薬も電気刺激も可塑性を高めることはできても、組み替えることはできない」と、その理由を説明している。

 

▼HI(人間の知能)のためのAI。これこそ究極のAI活用法

同博士は、この6種類のゲームで学んだことをベースに、将来は統合した1つの体験療法を開発したいという。その体験療法の仕組みを通じて、当然ながら数多くの種類のデータが生み出されるだろう。その膨大なデータを使って、クローズド・ループの仕組みを回すには、人工知能が必要になってくる。人工知能以外に、ここまでの膨大なデータを解析できる仕組みはない。同博士は「体験的メディスンは、機械学習、特に強化学習を活かす最高の機会だと思う」と指摘する。

つまり人工知能が、体験療法の仕組みを動かすことによって、人間の知能の精度が向上する。「HI(人間の知能)のためのAI。これこそが、AIの究極の使い方だ」と同博士は言う。

医療の現場においても、教育の現場においても、人間の認知能力を高めるということが、世界的な大きな課題の1つである。同博士はそう力説する。環境問題、貧困問題、経済問題、国際政治問題など、地球上には多くの課題がある。しかし「われわれがこうした課題に意識を集中し続け、クリエイティブで賢明な解決方法を見つけ出すには、われわれ自身の認知能力を高める以外にない。環境問題を取ってみても分かるように、情報がどれだけそろっていても問題は解決しない」と指摘。人間の認知能力を高めることこそが、根本的な問題解決の方法であると強調している。

https___qiita-image-store.s3.ap-northeas
ishida_game-ai-type.png
deda1cf117141541f8982cecb9f1631d.jpg
ai_game_eye2-810x456.png
005.jpg
006.jpg
003.jpg
004.jpg
008.jpg
007.jpg
1_nOlkiRvRhhkG8RZqK_uDFg.jpeg
1_Lj-cE0MixQLcleOUZN2SMw.png
1_kVSgstiEUotMRClm-SQznw.jpeg
764bae250987aa5a.jpg
1_fbIVv3jpib3QFuy7L3semQ.png
1_eEHkffTyYjn2Bd4bqp_I2Q.jpeg
1_aTnhRykykUbGurtPU9Fr_Q.jpeg
https___qiita-image-store.s3.ap-northeas
0_pv04qqCQh5sMyQg6.png
bottom of page