- []
- [以前のリビジョン]
吉里吉里プラグインのコンパイル
プラグインについて
吉里吉里/KAGにはプラグインというものが2種類あります。
KAGプラグイン
(主に)ノベルゲーム製作に便利な機能を集約して、配布しやすいように、また入手した人にとって利用しやすいようにしたものをKAGプラグインといいます。これは、KAGシステムと一緒に使われることが前提であり、TJSスクリプトとKAGシナリオによって記述されています。
syoukaiプロジェクトでも使われたsnowプラグインや、systembuttomプラグイン、zoomプラグインなどが /kag3/kag3plugin/ に収められています。右クリックサブルーチンもKAGプラグインの形式をとっています。
吉里吉里プラグイン
それに対して吉里吉里本体、つまり krkr.eXe にない機能を追加するときに用いるのが吉里吉里プラグイン(単にプラグイン)です。既存のクラスやメソッドでは実現できなかったり、(レイヤにおける画像処理など)できても処理速度の面からTJSに不向きな物事を行うことができます。通常 *.dll の形式となり、OggVorbis形式の音声ファイルの再生や拡張トランジションなどを行うときに必要となります。
この形式のプラグインを作るには、C++で記述し、コンパイルすることが必要となってきます。このページではこの形式のプラグインのコンパイルについて記述します。
注意書き
なお、筆者はC/C++は読めないことはないよ。というくらいで、特に次項で扱うTurbo C++のような開発環境を利用したことが皆無です。
無事コンパイルできたので記事を書きました。というレベルで、いかに最適化を行えばいいのかなどはわかりません。ご了承ください。
それでも誰かの助けとなれば……。
Turbo C++ Explorer
コンパイルするために今回は、Borlandの流れを汲み、現在CodeGearという会社からリリースされている無償(要ライセンス登録)のTurbo C++ Explorerを利用してみます。中身としてはC++ Builder 2006にあたる模様。
ライセンス登録やインストールなどは「Turbo C++」で検索したら詳細が載っていることでしょう。
ソースを取得しよう
公式で配布されるプラグインのソースはSubversion上で管理されています。また、配布されない開発段階のものなども多く存在します。興味があれば各 readme.txt や manual.txt などをながめてみましょう。
ソースの取得は、Subversionクライアント(TortoiseSVNなど)を用いてチェックアウトする方がいいのですが、ここではテスト用なので特にSubversionクライアントの導入については触れません。ウェブブラウザ上から行ってください。ソースを表示させたらページ末端にOriginal Formatでダウンロードできるようリンクされているかと思います。
まず、tp_stub.cpp と tp_stub.h をダウンロードします。これはプラグインをコンパイルするとき必ず必要なファイルとなります。
次に、basetest ディレクトリから Main.cpp をダウンロードします。ここでは3つのファイルを同じフォルダに格納しておいてください。
コンパイルしてみよう
- Turbo C++を起動させる
- [ファイル] -> [新規作成] -> [その他] -> [ダイナミックリンクライブラリ] と選択
- ソースはC++、右側はVCLオフ、マルチスレッドオフ、VC++スタイルオンを選択
- デフォルトで作成される Unit1.cpp を削除
- いったん保存(basetest.bdsproj など)
- Main.cpp と tp_stub.cpp をプロジェクトに追加
- とりあえずもう一回保存
- [プロジェクト] -> [すべてのプロジェクトをビルド]
- よくわかんないうちに basetest.dll のできあがり
プラグイン作成について
basetest/Main.cpp に詳しくコメントされています。何はなくともまずは読みましょう。そのほか、nativeclasstest/ や exceptiontest/ などもプラグイン作成者用のテストプラグインです。
レイヤ関係は layerEx/ と layerExImage/ の関係などを見るとよいでしょう。
xp3アーカイブの暗号化は xp3filter/ にあります。
その他のコンパイル情報
上述したとおり、basetest/Main.cpp は目を通しておきましょう。

