
No.1ベストアンサー
- 回答日時:
AIについてですね。
やり方ということであれば方法はたくさんあります。
ゲームAIに特化した書籍も多く出版されていますので、そういった書籍を読んでみるとよいとおもいます。
コードレベルでどう書けばよいかわからないということは、どういう行動をさせたいかが具体的に見えていない状態であるとおもいます。
質問者さんが言っているようにパターンを持たせて特定の条件下に発動させるという方法もあります。
格闘ゲームであれば、できる行動というのは決まっている(限られている)はずです。
例えば、弱攻撃・強攻撃・ジャンプ・移動・ガードなど。
まず攻撃に関しては、パターンによる方法であれば、
複数ある攻撃をどうつなげたら有効かということからいくつかパターンをつくる。
そのパターンがどういう状況下で発動したら有効か(どういう条件で発動させたいか)を考える。
例えばPCとの距離が一定以内になった場合、一定確率で弱攻撃をだす。
弱攻撃がヒットした場合は、弱→弱→強など弱から続くパターンを再生させる。
2回目の攻撃があたらなかったらその場でやめ、ガード含めて一応あたったら続けるなど。
初めからパターンで定義されているものを行うようにするというのも方法のひとつでしょう。
質問者さんは、コードレベルでの実装方法で躓いているわけではなく、AI(COMキャラ)がどういう風に行動してほしいか、どう反応して欲しいかなど、どういう思考をさせたいかというところがまだ決まっていないようにおもいます。
自分ならどういう風に行動させる(操作する)かとか、どういうときにガードしたい(させたい)かなどAIの具体的な行動を考えてみてください、
そして、その行動が連続行動(弱→弱→強とか)など連続する行動であるなら、どういう条件なら続け、どういう条件になったら中断するかなどを考えてみてください。
そしてそれらの行動がどういう条件のときに発動したらよいのかを考えてみてください。
ウマくいけば無限ともいえるほど行動を思いつくかもしれません。
其の中から有効性が高いものを検討し、どれを実際に実装するかの取捨選択をし、どれを行うかとか発生確率などの優先順位をつけてみてください。
それらが具体的に決まれば、どのようにコードレベルで実装すればよいかはいろいろとアイデアが浮かぶとおもいます。
どのようにコードを書くかというのは、どのような行動をさせるか、どのように思考させるかが決まっていれば、ある程度は必然的にどのようにコードを書いたら実現できるかというふうに絞り込まれてきます。
ある程度経験をつめば、どのような仕組みで思考するようにコードを書いておけば汎用性が高いかというのが解るようになるでしょう。
> どういう思考をさせたいかというところがまだ決まっていないようにおもいます。
その通りです。。。
先にそちらを決めなければなりませんね・・・
早速考えてみたいと思います。
ありがとうございました。
No.2
- 回答日時:
参考になるかどうかわかりませんが
落ちものゲーム等のコンピュータのアルゴリズムを作った事があります。
(後将棋とかも。)
AIをとういう仕組みで実装するかはゲームに依るところが大きいと
思いますが、基本的に別スレッドで動かしていました。
相手の状態や自分の状態を数値化して表し、
落ちてくるブロックに対して制限時間内にパターン検索を始めます。
その中で最適な候補を何個かもたせ、更にその中から
ランダムで選びました。
コンシュマーやアーケード(例えばバーチャや鉄拳)などはフレーム単位
で処理していますが、PCの場合その部分が違うので実装の仕方も異なってきます。
似たようなアルゴリズムで走らせるなら
描画ルーチンとは別に60fpsで走るスレッドをつくりそこに処理する形になるのかな。
#1さんもいっておられますが、結局自分がコンピューターだったら
どうするか、から考えていくことになるでしょう。
コンピューターの場合、ガードなんかの反射能力は最強なので
その辺のバランスが難しそうです。
投げ間合いにはいった瞬間、投げ確定とか強すぎですからね・・・
とりあえず対戦できるもの作って、その後でAIを考えたので問題ないと思います。
もちろんコントロールの部分はちゃんと分けないと駄目です。
> 投げ間合いにはいった瞬間、投げ確定とか強すぎですからね・・・
これでは、強すぎですね^^;
そういったのも考えて作らないといけないとは
単純そうに見えて奥が深いです。
レスありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ゲーム) ゲーセンのゲームの、いわゆるアケコンの操作が苦手です。 2 2022/03/24 19:46
- その他(悩み相談・人生相談) スケボーってスポーツなの? 5 2022/12/03 08:51
- その他(ゲーム) スト2にドラゴンボールのキャラが出ているゲームってありますか? 1 2022/12/22 21:40
- カップル・彼氏・彼女 彼氏は格闘技ゲームに興味を持っています。 毎日彼氏と電話をするのですが、バコンバコンという操作音が気 2 2023/01/26 23:45
- 据え置き型ゲーム機 キン肉マンゲームで「順逆自在の術」は、すごく表現が難しかった? プログラミング 1 2023/03/23 16:53
- その他(暮らし・生活・行事) もしこんな日本になったらどう思いますか? 4 2022/09/08 18:25
- YouTube Youtubeの、違法ダウンロード関連についての質問 5 2022/05/01 14:54
- その他(ゲーム) PS4でできる、カメラ操作とかない、昔っぽいRPGソフトを教えてください。 なんかゲームはしたいんで 2 2023/06/22 11:29
- その他(悩み相談・人生相談) ゲームのキャラの顔が好きじゃないと言ったら 2 2023/03/05 17:03
- Windows 10 VirtualBoxで起動できないゲームがあります 2 2022/12/17 06:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
JavaScriptの定数名が取り消し...
-
1日に1人がこなせるプログラム...
-
sinカーブの表示のさせ方
-
オートフィルタで抽出結果に 罫...
-
JANコードとPOSコードは同じ?
-
access2003 クエリSQL文に...
-
access2021 VBA メソッドまたは...
-
Excelシート上で右クリックがで...
-
Excel VBAでOpenTextのFieldInf...
-
エクセルVBAのイベントについて...
-
エクセルに見えない文字(JISX0...
-
データバインドした値のコード...
-
Excell のフィルター機能をVBA...
-
COBOLの文法
-
PreviewKeyDownイベントが2回...
-
VBAでファイルオープン後にコー...
-
SQL
-
エクセル VBA 同じ内容のセル...
-
このコードをどう修正した良い...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
access2021 VBA メソッドまたは...
-
JANコードとPOSコードは同じ?
-
Exel VBA 別ブックから該当デ...
-
Nullの使い方が不正です。
-
access2003 クエリSQL文に...
-
JavaScriptの定数名が取り消し...
-
オートフィルタで抽出結果に 罫...
-
PreviewKeyDownイベントが2回...
-
エクセルに見えない文字(JISX0...
-
VBAでファイルオープン後にコー...
-
Excelシート上で右クリックがで...
-
変数名「cur」について
-
Excel VBA素人です。VBAで図形...
-
【VB6】実行ファイルとした後、...
-
VBA 現在のセル番地を記憶、復...
-
COBOLの文法
-
ASCIIコードを文字に変換したい
-
wechatアプリについての質問で...
おすすめ情報