[PR] | 2025.04.19 20:35 |
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
category : |
カレンダー
プロフィール
最新記事
(10/15)
(06/17)
(01/09)
(12/14)
(06/20) カテゴリー
|
XOPS関連サイト「みかん箱」の運営や、OpenXOPSの開発などを行う[-_-;](みかん)のブログ。近状報告や独り言などを書きます。
| |||
PR
▲ あちらが撃ってきたんだ。俺は悪くない (意味不明 だいぶ出来が良くなってきました。 本当は既にアルファ版(試作品の試作品)として公開しても、それはそれで面白いのですが やはり初お披露目にしてはちょっと恥ずかしいので、もう少し作り込みます。 2D描画を頑張ってみました。 実は右下の装備武器がグルグル回る処理、DirectX的には意外と難しいです。 地味に難航してます。 まぁこんな表示は(武器名さえ出れば)なくても開発には影響ないので、後回しです。 当たり判定はしばらく置いといて、今度は2番目の山場「AI制御」を作り込みます。 既にちょっと作ってみたのですが、やはりその場で書ける物ではありませんでした。 感度が悪いし、見つかると瞬殺されるし、ソースがスパゲティ状態です。 よって中途半端なAI処理は全て捨てて、最初から計画を練って作り直します。 XOPSのAIは一般的な3DゲームのAIとしては単純に見えますが、実は裏ではかなり 複雑です。 各処理を言葉に良い表すと簡単ですが、計算量は意外と多いんです。 〜また長文です。宜しくお願いします。 AI制御には「モード分け」の概念を取り入れます。このモードはプレイヤー以外の 各人に割り当てます。 ・・分かり易く言うと、歩き移動モード、攻撃モード、って事です。 ざっと考えて以下のように割り振ります。 AI_DEAD 死亡している人 原則として、描画以外は計算に関与しない。 AI_ACTION 戦闘中の人 AI_CAUTION 警戒中の人 (周囲を激しく見回している) AI_WALK 移動パスによって歩いている人 AI_RUN 移動パスによって走っている人 AI_NORMAL パスによって待機している人 (周囲をほどほどに見回している) AI_WAIT パスによって動かない人 (一定方向を向き続ける) ・時間待ち ・パスが無い AI_TRACKING 特定の人を追尾する 分類分けすると、各モードは以下のように分けられます。 ただし、AI_DEAD(死亡)は特殊状態なので省きます。 ■通常状態 ・AI_WALK (歩き) ・AI_RUN (走り) ・AI_NORMAL (待機) ・AI_WAIT (停止) ・AI_TRACKING (追尾) ■興奮状態 (笑 ・AI_ACTION (戦闘) ・AI_CAUTION (警戒) 「通常状態」は特定の時間もしくは場所で必ず行います。 一方「興奮状態」はいつでも臨機応変に処理する必要があります。 各モードへの移動推移として・・ AI_ACTION(戦闘) ⇒ AI_DEAD(死亡) ↑ ↓ AI_CAUTION(警戒) ⇒ AI_DEAD(死亡) ↑ ↓ 通常状態 ⇒ AI_DEAD(死亡) 注意しなければならない点があります。 ・モードに関係なく、常にAI_DEADになる場合がある。 (いつ死亡してもおかしくないという当たり前のこと) ・突然、通常状態からAI_ACTIONになる事は無く、 必ず一度はAI_CAUTIONになる。 前者についてはそのままの()内の意味です。考えなくても分かります。 後者は、なぜ一度AI_ACTION(警戒)に入れる必要があるのでしょうか。 答えは単純です。 いきなりAI_ACTION(戦闘)に入ると、視界に入った瞬間に瞬殺されます。 瞬殺するAIもそれはそれで面白いですが、場合によってはゲームにならないので、 一度AI_ACTION(警戒)に入り様子をうかがう動作を入れます。 「うかがう」といっても0.2〜0.5秒ですが、それでも結構差が出ます。 通常状態中には必然的にAI_ACTION(警戒)への割り込み処理に近い処理が必要になります。 ・近くに弾が着弾した(敵の弾・味方の弾 区別せず) ・敵が近くで走っている ・敵の姿が見えた ・味方の死体を見つけた(時々) 通常状態中に上記の非常事態を検出したら、即座にAI_ACTION(警戒)になります。 自分の考えたAI動作は以上です。 こればっかりはXOPSの処理の中身は読めません。外から自分で予想するしかないのです。 逆を言えば、上記の処理はすべて独自設計です。 今回も、誰の得にならない、完全に自己満足の記事になりました。 なぜ、毎回こんな気持ち悪いことを書くのか? それは「何か 無駄に頑張ってるなぁ〜」っと見てもらうためです(笑 それで良いのです・・。
COMMENTS
【本文以外は任意項目です】
TRACKBACKS
URL:
※過去のブログ記事は 原則として編集・修正していません。 | ||||
△ TOP |