FC2ブログ
TOP > ぱろぱろ観察日記
 ← 一から始めるAI講座~第1回:デフォルトのAIを読み解こう・1~ | TOP | つ(ryの ホム を てにいれたぞ!

リストマーク スポンサーサイト 

【重要】新しいBlogに移転していますあるネットゲーマーの日常
--年--月--日 (--)
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[--.--.--(--) --:--] スポンサー広告 | Trackback(-) | Comment(-)
↑TOPへ


リストマーク ぱろぱろ観察日記 

【重要】新しいBlogに移転していますあるネットゲーマーの日常
似たようなタイトルの4コマ漫画がありますが、
知っている人はまずいないでしょう^^;
かわいい猫の話なんですが・・・

さて、昨日からホムンクルスを育て始めたわけですが・・・
ぱろぱろ
・・・ここまで育ちました
すでにくちばしピアースムーンライトは完成したので、
次はフリットムーブかなと

ただ・・・問題はこの鳥、勝手に敵を叩きに行ってしまうんですよね
おかげで操作がものすごく面倒で・・・




そこで、AIのマニュアルをダウンロードし、
書き換えることにしたわけですが・・・

(以下、ちょっと難しいお話なので、興味ある人だけ)

まず、ざっとマニュアルに目を通すことをお奨めします
ちょっとでもプログラムをかじったことがある人なら、
だいたい意味はわかるはずです

続いて、「AI.lua」を開いてみると、
かなり良くできた骨組みであることがわかります

mainにあたる関数はコマンドの受理と振り分けを担当し、
各状態とコマンドの実行は各関数に分けられています

つまり、特定の状態・コマンドの行動を修正したいときは、
その関数部分だけいじれば事足りることになります


さて、今回のお題である、
「鳥を非先攻型に変える」ことですが、非常に簡単にできます
(逆に、幼女を先攻型に変えるのも簡単です)

AI.luaの620行目付近に、
「GetMyEnemy (myid)」という関数がありますが、
ここが索敵の定義をしているところです

ホムのタイプを取得し、それに応じて、
GetMyEnemyA (myid)とGetMyEnemyB (myid)に処理を分けています

マニュアルを見ると、前者が非先攻型、
後者が先攻型であることがわかりますので、
鳥=FILIRはGetMyEnemyB (myid)の処理を行っていることになります

そこで・・・

    if (type == LIF or type == LIF_H or type == AMISTR or type == AMISTR_H or type == LIF2 or type == LIF_H2 or type == AMISTR2 or type == AMISTR_H2 or type == FILIR or type == FILIR_H or type == FILIR2 or type == FILIR_H2) then
        result = GetMyEnemyA (myid)
    elseif (type == VANILMIRTH or type == VANILMIRTH_H or type == VANILMIRTH2 or type == VANILMIRTH_H2) then
        result = GetMyEnemyB (myid)
    end

・・・こうすれば鳥も非先攻型になりますね
逆をやれば、他のホムを先攻型にすることも可能です

とりあえず、今回はこれくらいで
また何か思いついたら書きます
[2006.03.15(Wed) 09:17] 日記Trackback(0) | Comments(0)
↑TOPへ


 ← 一から始めるAI講座~第1回:デフォルトのAIを読み解こう・1~ | TOP | つ(ryの ホム を てにいれたぞ!

COMMENT

COMMENT POST











管理者にだけ表示

Trackback

この記事のURL:
http://parrot.blog21.fc2.com/tb.php/228-b318aeb4
 ← 一から始めるAI講座~第1回:デフォルトのAIを読み解こう・1~ | TOP | つ(ryの ホム を てにいれたぞ!

プロフィール

Categories

Recent Entries

Recent Comments

Archives

AdSense

Calander

ブログ内検索

RO Search

Links

Copylights

Amazon

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。