プラグインとは†
プラグインとは、BakinのツールおよびエンジンをC#によるプログラムで機能拡張できる機能です。
プラグインには大きく分けて下記の2種類があります。
・ツールプラグイン(.dll形式)
・エンジンプラグイン(.cs形式)
2024年8月時点で作成環境が公開されているのはエンジンプラグインのみとなります。
プラグインの種別†
- エンジンプラグインはBakinエンジンの動作を拡張するためのものです。
エンジンプラグインには現在下記の2種類の機能があります。
- イベントスクリプト イベントにC#プログラムを割り当てることで、イベントの機能を拡張する
- バトルプラグイン BakinのバトルシステムをC#プログラムで差し替える
プラグインの使い方†
エンジンプラグイン†
エンジンプラグインは、編集中のプロジェクトフォルダの直下に下記の説明で指定するフォルダを作成し、プラグインを格納してください。
- イベントスクリプト
まずscript フォルダを作成し、その中に .cs ファイルを追加してください。
Bakinを起動後、イベントシートの左下にある「C#プログラムの割り当て」欄にて矢印をクリック。
開いたリストから割り当てるスクリプトを選択してください。
- 複数のメソッドが存在するプラグインは、イベントパネルを使用することで適用するメソッドを指定することができます。
「C#プログラムの呼び出し」パネルについては制御をご覧ください。
- 注意
.csファイルはサブフォルダに格納することも出来ます。
.dllファイルはscript直下に置かなくてはならないことに注意してください。
- バトルプラグイン
battlescript フォルダを作成し、その中に .cs ファイル一式を追加してください。
プロジェクトを起動すれば自動的に適用され、ツール上の操作は必要ありません。
プラグインの削除†
- イベントスクリプトの場合、 scriptフォルダ から 削除したい.cs ファイルを削除してください。
- バトルプラグインの場合、 battlescript フォルダごと削除してください。
マップエディター上部メニュー>機能>拡張機能にある「バトル関連ソースをゲームファイルから削除」をお使いいただくこともできます。
プラグインの作り方†
(!)Bakinのアップデートに伴い、作成したプラグインの動作に影響が出る可能性があります。アップデート発生時は都度差分を確認するといったご対応をお願いいたします。
- イベントスクリプト
Bakinを起動後、イベントシートの左下にある「C#プログラムの割り当て」欄にて矢印をクリック。
上部にある「新規作成」ボタンを押すとエディタ(.csと関連付けられているエディタ)が起動します。
※Visual Studio(Community版で可)を、C#開発できる状態でインストールしておくことをお勧めします。
※Bakinを経由せず、他のエディターを使って.csファイルを作成し、scriptフォルダに入れる方法でも構いません。
- バトルプラグイン
マップエディター上部メニュー>機能>拡張機能にある「バトル関連ソースをゲームファイルにコピー」を実行します。
この機能についてはマップエディター概要をご覧ください。
実行すると現在編集中のプロジェクトフォルダ内にbattlescript フォルダが作成され、その中にバトルプラグインの雛形(デフォルトのバトル処理と同じもの)が作成されます。
作成されたファイルをお使いのエディターで編集してください。
- メタデータの設定
- イベントスクリプトにはメタデータはありません
- バトルプラグインは BattlePluginDef.cs 冒頭の // @@version xx.xx.xx.xx を対応するBakinバージョンに書き換えてください。
- プラグインのヘルプ
プラグインを配布するにあたって、内容についての説明が必要な場合は、readme.txtを作成し同梱してください。
- プラグインの設定
プラグインの環境設定をする機能は現時点ではありません。
プラグイン作成時のポイント†
- 任意のDLLをリンクする
C#プログラムの先頭に下記の記述を行うことで、scriptフォルダに入った任意のDLLファイルをリンクして使用することが出来るようになります。
プラグインサンプルにある「ゲームにSteamの「実績」を導入する」を参考にしてください。
// @@link xxx.dll
- 別のcsファイルを取り込む
下記の記述を行うことで別のcsファイルを取り込むことができます。
// @@include xxx.cs
大規模な処理を複数のcsファイルに分けた際にご利用ください。
「バトルプラグインサンプル」のバトルプラグインを参考にしてください。
BattlePluginDef.cs に上記の記述を各所に差し込み枝葉の処理を取り込むことで、すべてのバトル処理をビルド対象とする形にしています。
- プラグインからのみ参照しているリソースについて
プラグインからのみ参照しているリソースがある場合は、そのリソースを書き出し対象として設定する必要があります。
設定するためには「リソース」メニューの各項目のツリーで書き出したいリソースを右クリックした上で「必ず公開作品出力に含める」を選んでください。
プラグインの配布†
- イベントスクリプトの場合 作成した cs ファイルを任意の方法で配布してください。
- バトルプラグインの場合 battlescript フォルダ全体を圧縮して任意の方法で配布してください。
.csrbrファイルでの配布†
イベントスクリプト.csファイルと関連ファイルをZipファイルに圧縮し、拡張子を.csrbrに書き換えることで、配布やBakinへのインポートが楽になります。
- Steam Workshopを通じて配布することができるようになります。
- イベントシート「C#プログラムの割り当て」にて追加ボタンを押すと、.csrbrファイルを選択することができます。
追加すると.csrbrファイルは自動的に解凍・展開がなされます。
- バトルプラグインについては.csrbr形式での配布はできません。
プラグインリファレンス†
現在参照できるクラスのリファレンスは下記のURLから参照できます。
RPG Developer Bakin プラグインリファレンス:https://rpgbakin.com/csreference/
2023年9月時点では、イベントスクリプト、バトルプラグインの作成で使用するクラスについて公開しています。
プラグインサンプル†
プラグインのサンプルコードについてはプラグインサンプルをご覧ください。
Steam Workshop上に公開しているサンプルコードの解説を掲載しています。