Baldur's Gate II AI スクリプトコンパイル

BG2のAIスクリプトをコンパイルしてゲーム内で使用する方法を紹介します。
ここでは、"d:\bg2\"にインストールしたと仮定して説明しますので その部分を各人の環境に合わせて変更してください。


    まず、説明に使用するディレクトリ構造と概要を紹介します。
    d:\bg2---+--override ・・・・・・・・・・・・・ここにあるファイルはBG2本来のものより優先されます
             |
             +--scripts  ・・・・・・・・・・・・・ゲーム内で使用するスクリプトを置きます
             |
             +--script compiler--+--source     ・・スクリプトのソースファイルを置きます
                                 |
                                 +--compiled   ・・コンパイルされたスクリプトが出来ます
                                 |
                                 +--errors     ・・コンパイル時に発生したエラーファイルが出来ます
                                 |
                                 +--decompiled ・・使用しません
    
  1. 下準備
  2. スクリプトのコンパイルに入る前に環境を整えます。
    "d:\bg2\override\"内にある全ての、拡張子が".ids"もしくは".IDS"のファイルを "d:\bg2\script compiler\"にコピーします。
    同名のファイルがあると思いますが全て上書きしてください。
    この作業をしないと、ToBで追加された機能が記述されたスクリプトをコンパイルする際等に凄まじい量のエラーが出ます。
    SoAのみの環境の場合も一応行ってください。

  3. スクリプト作成
  4. 実際にスクリプトを書いてみましょう。
    例として、ノートパッド等で以下のような内容のファイルを作ってみてください。
    IF
    	HPPercentLT(Myself,70)
    THEN
    	RESPONSE #100
    		DisplayStringHead(Myself,3747)
    END
    
    出来たら、"d:\bg2\script compiler\source\"内にファイル名"sample.baf"でセーブしましょう。

  5. コンパイル
  6. 書いたスクリプトをコンパイルしてゲーム内で使用できるものにします。
    コマンドプロンプト(DOS窓)を開いてください。Win2000ならばスタートメニュー>プログラム>アクセサリ>コマンドプロンプトです。
    C:Documents and Settings\user name\>
    そして、カレントディレクトリを"d:\bg2\script compiler\"に移動します。
    C:Documents and Settings\user name\>d:
    D:\>cd "bg2\script compiler"
    D:\bg2\script compiler\>
    移動したら、いよいよコンパイルです。コンパイル専用のバッチファイルが用意されているのでそれを使用します。
    D:\bg2\script compiler\>Compile sample
    上記の例ならばほんの数秒で終了すると思います。
    "d:\bg2\script compiler\compiled\""sample.bs"という名前で完成したスクリプトが、
    "d:\bg2\script compiler\errors\""sample.err"という名前でコンパイル時に発生したエラーファイルが出来ているはずです。
    無事にコンパイルが終了していればエラーファイルのサイズは0byteです。

  7. 4.インストール
  8. 実際にゲーム内で選択できるようにスクリプトをインストールします。
    "d:\bg2\script compiler\compiled\"に出来た"sample.bs""d:\bg2\scripts\"へコピーします。
    D:\bg2\script compiler\>copy compiled\sample.bs ..\scripts\
    エクスプローラ等からマウスでコピーしても構いません。

  9. 5.使用
  10. ここまで正常に終わっていれば、あとはゲーム内でAIスクリプトリストの一番下辺りにSAMPLEというのがあるはずですのでそれを指定するだけです。
    上記の例で作成したスクリプトは、単純に自分のHP残量が7割を切ると"負傷した"と喋り続けるだけのものです。