3DゲームのAI

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
史上最悪のデスペナ
記事: 521
登録日時: 13年前

3DゲームのAI

#1

投稿記事 by 史上最悪のデスペナ » 12年前

漠然とした質問ですが、3DゲームでAIのアルゴリズムの作り方や考え方が分かりません。

敵AI
普段は半径10m以内をうろうろしたり立ち止まったりする。

AIで↑のものだけが上手く出来ません。一応、「半径10m」部分は除いて形だけは出来るのですが、すごい違和感がある感じです。
やっていることは単純で
移動速度をランダムに設定して数秒間動き、ランダムに向きを0.何秒間か回転させてまた移動速度を(以下略)
としています。
MMORPGをやっている方はご存知だと思いますが、ノンアクティブMOBみたいなああいう動きをさせたいのです。


残りの

敵AI
半径5m以内に近づいたら攻撃を仕掛ける

味方AI
プレイヤーキャラと基本行動し、プレイヤーと同じ敵を倒したり、プレイヤーが戦っていない敵と交戦する。

は出来ました。

考え方だけでもいいので教えてください

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 3DゲームのAI

#2

投稿記事 by softya(ソフト屋) » 12年前

AIと言うより、移動パターンを自然にしたいと言うことですね。

>MMORPGをやっている方はご存知だと思いますが、ノンアクティブMOBみたいなああいう動きをさせたいのです。
すいません、具体的なイメージがわかりません。

普通のゲームの敵も、かなり適当な動きをしている気がしますが移動パターンを作ってしまえば良い気がします。
移動→停止→回転→移動って感じでしょうか。じわっと回転するより目的の方向に一気に向いたほうが良いでしょう。
移動 : 特定の範囲の時間でランダム。移動速度は2~3種類ぐらい(ランダム)。
停止 : 特定の範囲の時間でランダム。
回転 : 一瞬で向きを変える。元の角度とは違和感のない程度の角度に収める(30度~90度程度?)

出来れば移動と停止の間に減速期間があるとなお良い。
あと10mを超えそうになったら、強制的に120度~180度の角度で回れ右or左をする。って感じじゃダメでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

史上最悪のデスペナ
記事: 521
登録日時: 13年前

Re: 3DゲームのAI

#3

投稿記事 by 史上最悪のデスペナ » 12年前

遅くなって申し訳ありません。
なんとか試行錯誤してプログラミング中です。結果は申し訳ありませんがもう少しお待ちください。

アバター
GRAM
記事: 164
登録日時: 13年前
住所: 大阪

Re: 3DゲームのAI

#4

投稿記事 by GRAM » 12年前

①半径10m内のどこかに目標地点を定める。
②目標地点まで敵を移動させる
③目標地点に到達したら①へ戻る

という動作を繰り返すとかはどうですか?
①の目標地点の定め方を調整することである程度調整もできると思います

史上最悪のデスペナ
記事: 521
登録日時: 13年前

Re: 3DゲームのAI

#5

投稿記事 by 史上最悪のデスペナ » 12年前

GRAMさん・・・・・私の実力ではそんなこと出来ません・・・・・・orz
もう少しヒントをお願いします。
softya(ソフト屋) さん。一応半径10mうんぬんを除き、やってみましたがやっぱりなんか変な感じがします(歩くモーションはつけてませんが脳内補正有り)。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 3DゲームのAI

#6

投稿記事 by softya(ソフト屋) » 12年前

GRAMさんの方法も見方を変えただけで、さほど難しくないと思いますよ。
先に移動先を決めて、今の位置から移動距離と方向を求めるだけです。

>softya(ソフト屋) さん。一応半径10mうんぬんを除き、やってみましたがやっぱりなんか変な感じがします(歩くモーションはつけてませんが脳内補正有り)。

動画で見せてもらえるとどういう状況か分かるのですが出来ませんか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

史上最悪のデスペナ
記事: 521
登録日時: 13年前

Re: 3DゲームのAI

#7

投稿記事 by 史上最悪のデスペナ » 12年前

AVI形式です。
ついでに、かつてのトピック「不思議な波々を無くすには?」の見え方もついでに撮りました
1分40秒ほどありますが、お願いします。

そういえば
softya(ソフト屋) さんが書きました:出来れば移動と停止の間に減速期間があるとなお良い。
これはやってません。後で新・サンプルプログラミングの館を参考にする予定です。
添付ファイル
bandicam 2011-11-06 13-53-49-407.zip
(26.32 MiB) ダウンロード数: 118 回

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 3DゲームのAI

#8

投稿記事 by softya(ソフト屋) » 12年前

どうやら再生できないコーディックの様です。
一般的なコーディックに変換してもらえますか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

史上最悪のデスペナ
記事: 521
登録日時: 13年前

Re: 3DゲームのAI

#9

投稿記事 by 史上最悪のデスペナ » 12年前

すみません・・・・・やり方がわかりません。
申し訳ありませんが
http://www.google.co.jp/#hl=ja&q=MPC-Ho ... 66&bih=681
でMPC-HomeCinemaをダウンロードしていただいてもよろしいでしょうか?
一応こちらでも変換のを探して見ます。

史上最悪のデスペナ
記事: 521
登録日時: 13年前

Re: 3DゲームのAI

#10

投稿記事 by 史上最悪のデスペナ » 12年前

あ、出来そうです。
MP4かWMVかFLVでいけそうです。
大丈夫ですか?

アバター
GRAM
記事: 164
登録日時: 13年前
住所: 大阪

Re: 3DゲームのAI

#11

投稿記事 by GRAM » 12年前

コンパイルして実行できるようにまとめました。
よろしければどうぞ

► スポイラーを表示

史上最悪のデスペナ
記事: 521
登録日時: 13年前

Re: 3DゲームのAI

#12

投稿記事 by 史上最悪のデスペナ » 12年前

凄いですね。これを3次元空間で行えばいいのですね。問題はキャラの向き設定ですがそれは何とかなりそうです。
わざわざあんな長いソースを書いていただいて恐縮ですが
自分の知ってるMMORPGのMOBを当てはめて想像するとやはり無機物感が抜けませんね^^;(我儘言って申し訳ありません)。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 3DゲームのAI

#13

投稿記事 by softya(ソフト屋) » 12年前

史上最悪のデスペナ さんが書きました:あ、出来そうです。
MP4かWMVかFLVでいけそうです。
大丈夫ですか?
大丈夫です。
あと史上最悪のデスペナさん的にGJ!なMOBの動画もありましたらお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

史上最悪のデスペナ
記事: 521
登録日時: 13年前

Re: 3DゲームのAI

#14

投稿記事 by 史上最悪のデスペナ » 12年前

最近MMORPGをやってない上、空き領域が少なくなってきたので全部消してしまったので今インストーラーをダウンロードしてるとこですが1時間ほど経ってやっと2/3・・・・
ずっと残り4分のまま変わりません・・・・・・

史上最悪のデスペナ
記事: 521
登録日時: 13年前

Re: 3DゲームのAI

#15

投稿記事 by 史上最悪のデスペナ » 12年前

とりあえずMP4変換したものです。
添付ファイル
bandicam 2011-11-06 13-53-49-407.zip
(11.39 MiB) ダウンロード数: 121 回

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 3DゲームのAI

#16

投稿記事 by softya(ソフト屋) » 12年前

ざっと動画を見た感じでは、動き出しの加速と止まるときの減速が欲しいと思います。
あと止まったときに止まったとき専用のアニメーションをしていれば違和感は少ない気がします。
停止時間は、敵ごとに調整できるようにしたほうが良いでしょうね。

それとずっと動きづつけるキャラを作る場合はベジェ曲線などで補完してやるとなめらかに移動できます。
「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/s_01.html
「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/s_02.html
このベジェ曲線をつかって例にあるように速度の変化に応用することも出来ますよ。
角度も補完してやれば、なめらかに角度を変えることも可能です。

テントが壁抜けする現象はZ値だと思います。SetCameraNearFar()でZバッファの精度を調整してみてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

史上最悪のデスペナ
記事: 521
登録日時: 13年前

Re: 3DゲームのAI

#17

投稿記事 by 史上最悪のデスペナ » 12年前

なるほど。
史上最悪のデスペナ さんが書きました:後で新・サンプルプログラミングの館を参考にする予定です。

http://dixq.net/g/04_04.html
で考えてましたがそちらのほうがよさそうですね。

せっかくキャプチャしたのでUp
添付ファイル
bandicam 2011-11-06 16-03-20-667.zip
(43.89 MiB) ダウンロード数: 166 回

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 3DゲームのAI

#18

投稿記事 by softya(ソフト屋) » 12年前

MMORPGの動画見ました。
違いと言えば止まった時専用のアニメがある事と、180度ターン時に1コマ途中の角度のコマが補完されている様にみえます。
止まった時専用のアニメがある場合はアニメコマの再生が終わるまで移動を停止する仕組みが必要ですね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

史上最悪のデスペナ
記事: 521
登録日時: 13年前

Re: 3DゲームのAI

#19

投稿記事 by 史上最悪のデスペナ » 12年前

なるほど。さらに止まっている時間と進むスピードや距離とかでも印象が変わるでしょうね。
人間も歩き方で人の区別がある程度出来ますし(私だけですかね?)
運動工学とか人間工学、動物行動学を勉強したほうがいいかなぁ^^;

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 3DゲームのAI

#20

投稿記事 by softya(ソフト屋) » 12年前

史上最悪のデスペナ さんが書きました:なるほど。さらに止まっている時間と進むスピードや距離とかでも印象が変わるでしょうね。
変わりますね。これはモンスターごとに違う行動パターンを当てはめるべき問題です。
史上最悪のデスペナ さんが書きました:人間も歩き方で人の区別がある程度出来ますし(私だけですかね?)
大体の人は歩き方で知り合いかどうかを無意識に区別していると思います。
たぶん、本能によるものでしょう。
史上最悪のデスペナ さんが書きました:運動工学とか人間工学、動物行動学を勉強したほうがいいかなぁ^^;
やりすぎですが確実に有効なのは動物の行動はビデオをたくさん見て勉強してください。
これはゲーム業界・アニメ業界・映画業界にとっても未だに課題の奥の深い世界です。
リアリティを与えるには、観察がすべてだと思います。
そうですね。CGのピクサー社の人たちがファインディング・ニモの時などひたすら魚を観察したって言ってましたよ。

やり過ぎると、「人喰いの大鷲トリコ」の上田文人氏のこだわりのように何時までも完成しません。
「人喰いの大鷲トリコ | プレイステーション® オフィシャルサイト」
http://www.jp.playstation.com/scej/title/trico/

最近やったゲームの中ではwiiのゼノブレイドのフィールドの敵がなかなか良い感じでした。
[youtube][/youtube]
[youtube][/youtube]
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

史上最悪のデスペナ
記事: 521
登録日時: 13年前

Re: 3DゲームのAI

#21

投稿記事 by 史上最悪のデスペナ » 12年前

MMORPGのPVを集めて研究してるんですけどなかなかモンスターの歩いてるシーンとか無いんですよね
戦闘シーンはエフェクトでよく見えませんし^^;

Sculptrisで作るとまるでキメラみたいにいろんな動物の混ざったようなのが出来てしまいますが地球上の動物と似たような動きじゃないと凄い違和感を感じますね。
4本足を観察するならうちの庭をたまにうろつく野良猫でも見てようかな・・・・・

長々とお付き合いいただきありがとうございました。またよろしくお願いします。

閉鎖

“C言語何でも質問掲示板” へ戻る