2012-01-05 9 views
-4

私はゲームを扱うためのAIコードを書いていますが、最初のステップで取り残されています。DirectXアプリケーションで画面上のオブジェクトを特定していますか?

これはDirectXゲームです。

実行中のDXアプリケーション(およびどの言語?)を照会してオブジェクトや場所を取得する方法はありますか、またはある種のテクスチャ認識アルゴリズムを使用する必要がありますか?もしそうなら、どのようなテクスチャ認識アルゴリズムを使うことができますか?

答えて

2

Direct3Dは "オブジェクト"に対して動作しません。頂点バッファ、インデックスバッファ、テクスチャ、シェーダ(頂点/ピクセル/ジオメトリ)、ターゲットまたはサーフェスのレンダリングを行います。画面上のオブジェクトに直接対応していません。 「オブジェクト」や「場所」はありません。フレームバッファに変換、クリップ、ペイントされたポリゴンのみです。

「テクスチャ認識」アルゴリズムはSFです。それらはAI研究プログラムに存在しますが、画面上のデータを3Dシーンに変換するのに役立つものはありません。

AIプログラムを使用してサードパーティのゲームを制御するには、ゲームをリバースエンジニアリングする必要があります(これはおそらくEULAに違反します)、シーングラフに実際のオブジェクトを格納するために使用する構造を特定し、シーングラフからゲーム世界のオブジェクトに関する情報。あなたのスキルに応じて、これは非常に困難または不可能です。

もっと現実的なアプローチは、ソースコードに付属しているオープンソースのゲームを入手し、AIプログラムがゲームを制御できるようにそのソースコードを変更することです。

+0

シーン全体を再構成する必要はありません。私は、オブジェクトのサンプル画像が与えられたスクリーン上のある点にどのオブジェクトが存在するかを教えることができるオブジェクト認識アルゴリズムが必要です。 – Zyerah

+0

また、私はオープンソースのゲームを手に入れることもできません。これはスタークラフトIIであり、スタークラフトIIのみです。 – Zyerah

+0

@ user1131435:「特定のポイントにどのオブジェクトが存在するかを知ることができる認識アルゴリズム」+「スタークラフトII」 - あなたはそれを忘れてしまいます - アフリカのAI開発者たちは数十年前からこの問題に取り組んでいましたが、特殊な状況であり、完全ではありません。スタークラフトIIはそのような状況の1つではありません。あなたは、シーングラフにアクセスするためにゲームをリバースエンジニアリングすることで成功のチャンスがはるかに大きいでしょう。 – SigTerm

関連する問題