アットウィキロゴ
bbc_mc @ moddingメモ
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

bbc_mc @ moddingメモ

EntityAIBase

最終更新:

bbc_mc

- view
管理者のみ編集可

編集


目次


EntityAIBase ってなに?

EntityAIBase は、これから作成する AI のベースとなる、抽象クラスである。

既に作成されている AI を探してソースを読むと、このクラスを継承していくつかの関数を Override していることが分かる。
今後自作の AI を作成する場合は、このクラスを継承したクラスを作成していく事になるので、
このクラスにどんな変数や関数があるか、その機能はどんなものかを理解しておく事が重要になる。

一覧

mutexBits

この値は、複数の AI 間で同時に実行できるかどうかを示すために使用する。
この値をうまく利用する事で、作成した AI の行動が他の AI によって邪魔される事を防ぐ事ができる。

例えば、「右へ行け!」という指示をあなたの AI が出していたとする。
この時に、mutexBits が適切に設定されていないと、「左へ行け!」という他の AI の指示が上書きされてしまうかもしれない。

詳細は 別ページ に記載する。

shouldExecute

「今の状況で、この AI を実行し 始める べきか」を返す関数。
EntityAITasks という、複数の AI を管理しているクラスから呼び出される。

continueExecuting

「今の状況で、この AI を実行し 続ける べきか」を返す関数。
EntityAITasks という、複数の AI を管理しているクラスから呼び出される。

isInterruptible()

「より priority の小さい(優先されるべき)AI を実行しようとする場合に、この AI を途中で中止できるか」を返す関数。
true を返すと、priority の差にかかわらずこの AI の動作が完了するかこの AI 自ら停止するまで、他の AI に邪魔される事がない。

startExecuting()

AI の動作を行う(1つ目)
後述の updateTask() の前に実行されるようになっているため、AI の本格的動作前の初期化処理や、簡単ですぐ終わる処理が記載される。

特に理由がなければ、主な処理は updateTask() に書けばよいはず。

resetTask()

AI の動作の後処理を行う。

updateTask()

メインの処理を記載する。

setMutexBits() / getMutexBits()

MutexBit の getter / setter。 詳細は 別ページ に記載する。

編集


記事メニュー
最近更新されたスレッド
ウィキ募集バナー