質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

DirectX

DirectX(ダイレクトエックス)は、 マイクロソフトが開発したゲーム・マルチメディア処理用のAPIの集合です。

Q&A

2回答

7453閲覧

敵のAIについて

FUNETORI

総合スコア8

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

DirectX

DirectX(ダイレクトエックス)は、 マイクロソフトが開発したゲーム・マルチメディア処理用のAPIの集合です。

0グッド

0クリップ

投稿2017/01/21 09:25

現在DirectXとC言語を使いゲームを制作しています。
内容はよくあるホラーゲームで追いかけてくる敵から逃げながら脱出するといったものです。

プログラミングの経験は1年未満で2Dのゲームは一つだけ作ったことがあります。
3Dは今回が初ということもありかなり苦戦中です。中でも敵のAIで詰まっています。
敵を出現させてプレイヤーを発見したら追いかけるところまではできたのですが、その後の敵がMAPの道をしっかり通って追いかけてくるといった処理がどうしたらいいかわかりません。
なので今敵は壁やオブジェクトは貫通して追いかけてきます。

最初は敵からレイを飛ばして壁やオブジェクトに当たったら~と考えたのですが、それだと壁は貫通しなくなりますがその後プレイヤーに向かわせる方法が思いつきません。

壁を貫通して追いかけてきては唯々理不尽なだけで、ストレスにしかならないと思います。
なにかいい解決方法はないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

すでに @nakasho_dev さんが書かれていますが、経路探索がキーワードですね。
自分も最近AIにはとても興味があって、以下の本を2冊読みました。

経路探索だけではなく、いわゆるゲームAIの思考ロジックもカバーしてくれているのでAI作成方法についてとても理解が深まりました。おすすめです。

ちなみに過去、「ダイクストラ法」なる経路探索については記事を書きました。
[アルゴリズム] ダイクストラ法をやってみる

基本的には、なにがしかの方法を用いて「ノード」と呼ばれる、AIが通れるポイントを検索し、ノードグラフと呼ばれるノード同士が接続した図を完成させます。
(つまり、経路を探索するアルゴリズムとは別の、セットアップのフェーズです)

その後に、生成済みのノードグラフを使って、様々ある「経路探索アルゴリズム」を使って最短距離などを計算し、あとは求まった経路にそってキャラクターを動かす、というのが基本的な考え方だと思います。
(自分もそこまでがっつり作ったことがないのであくまで個人的な意見ですが・・)

投稿2017/01/21 13:06

edo_m18

総合スコア2283

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

「経路探索アルゴリズム」をキーワードにWebで検索すると色々と知見が得られると思います。
さらに「経路探索アルゴリズム NPC」などとするとゲーム関連の情報に絞れそうです。
こんな記事が見つかりました。

投稿2017/01/21 09:56

nakasho_dev

総合スコア2655

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問