#author("2024-09-05T20:32:47+09:00","default:admin","admin")
#author("2024-09-05T20:42:10+09:00","default:admin","admin")
*''プラグインとは'' [#edafef0d]
プラグインとは、BakinのツールおよびエンジンをC#によるプログラムで機能拡張できる機能です。
プラグインには大きく分けて下記の2種類があります。
''・ツールプラグイン(.dll形式)''
''・エンジンプラグイン(.cs形式)'' 

2024年4月時点で作成環境が公開されているのはエンジンプラグインのみとなります。
2024年8月時点で作成環境が公開されているのはエンジンプラグインのみとなります。
#Contents
----
**プラグインの種別 [#h9c1306d]
//ここは記載しない可能性があります。
//- ツールプラグインはBakinのエディタを拡張するためのものです。
//ツールプラグインはさらに細かく下記の3種類に分けられます。
//-- ・データ拡張 キャストやアイテムなどのデータに更に任意の設定項目を追加する
//-- ・クラス拡張 キャストやアイテムなどとは別の新しいデータタイプを追加する
//-- ・ツール拡張 エディタのメインメニューや編集メニューに新しいツールを追加する
//(本体同梱のスプライトツールがこの仕組みを利用しています)
//ここは記載しない可能性があります。

- エンジンプラグインはBakinエンジンの動作を拡張するためのものです。
エンジンプラグインには現在下記の2種類の機能があります。
--''イベントスクリプト'' イベントにC#プログラムを割り当てることで、イベントの機能を拡張する
--''バトルプラグイン'' BakinのバトルシステムをC#プログラムで差し替える

**プラグインの使い方 [#l6adc4c2]
***エンジンプラグイン [#qcd76c32]
エンジンプラグインは、編集中のプロジェクトフォルダの直下に下記の説明で指定するフォルダを作成し、プラグインを格納してください。
--''イベントスクリプト''
まずscript フォルダを作成し、その中に .cs ファイルを追加してください。
Bakinを起動後、イベントシートの左下にある「C#プログラムの割り当て」欄にて矢印をクリック。
開いたリストから割り当てるスクリプトを選択してください。
#ref(./イベントエディタ_プラグイン使用.png,50%)


---複数のメソッドが存在するプラグインは、イベントパネルを使用することで適用するメソッドを指定することができます。
「C#プログラムの呼び出し」パネルについては[[制御]]をご覧ください。

---''注意''
.csファイルはサブフォルダに格納することも出来ます。
.dllファイルはscript直下に置かなくてはならないことに注意してください。



-- ''バトルプラグイン''
battlescript フォルダを作成し、その中に .cs ファイル一式を追加してください。
プロジェクトを起動すれば自動的に適用され、ツール上の操作は必要ありません。

//ここは記載しない可能性があります。
//- ツールプラグイン(現在作成環境未公開)は、Bakinインストール先の plugins フォルダに DLL ファイルを追加します。
//すると、データベースもしくはメインメニューに新しい項目が追加されます。
//ここは記載しない可能性があります。


*** プラグインの削除 [#hcda1d31]
//ここは記載しません。
//- ・ツールプラグインの場合は、plugins フォルダから dll ファイルを削除してください
//ここは記載しません。

- イベントスクリプトの場合、 scriptフォルダ から 削除したい.cs ファイルを削除してください。
- バトルプラグインの場合、 battlescript フォルダごと削除してください。
マップエディター上部メニュー>機能>拡張機能にある「バトル関連ソースをゲームファイルから削除」をお使いいただくこともできます。

**プラグインの作り方 [#v2e3b2ae]
''&color(red){(!)Bakinのアップデートに伴い、作成したプラグインの動作に影響が出る可能性があります。アップデート発生時は都度差分を確認するといったご対応をお願いいたします。};''

- ''イベントスクリプト''
Bakinを起動後、イベントシートの左下にある「C#プログラムの割り当て」欄にて矢印をクリック。
上部にある「新規作成」ボタンを押すとエディタ(.csと関連付けられているエディタ)が起動します。

※Visual Studio(Community版で可)を、C#開発できる状態でインストールしておくことをお勧めします。
※Bakinを経由せず、他のエディターを使って.csファイルを作成し、scriptフォルダに入れる方法でも構いません。

#ref(./イベントエディタ_プラグイン.png,50%)


- ''バトルプラグイン''
マップエディター上部メニュー>機能>拡張機能にある「バトル関連ソースをゲームファイルにコピー」を実行します。
この機能については[[マップエディター概要]]をご覧ください。
実行すると現在編集中のプロジェクトフォルダ内にbattlescript フォルダが作成され、その中にバトルプラグインの雛形(デフォルトのバトル処理と同じもの)が作成されます。
作成されたファイルをお使いのエディターで編集してください。
     
//ここは記載しません。
//- ツールプラグイン
//Bakinインストール先の「SDK」フォルダに各種ツールプラグインの雛形(zipファイル)があります。
//Zipファイルを解凍してお使いのエディターで編集してください。
//.sln ファイルを Visual Studio 2019(C#デスクトップ開発をインストール)で開いてください。
//SharpKmyCore, Common, Yukar Editor, Yukar Engine, SBControl などの参照はパスが切れている状態になりますので、
//こちらは一旦削除して、Bakin インストール先フォルダから参照をつなぎ直してください。
//あとは x64 向けにビルドを行えば、ツールプラグイン(.dll)の完成です。
//ここは記載しません。
     
- ''メタデータの設定''
-- イベントスクリプトにはメタデータはありません
-- バトルプラグインは BattlePluginDef.cs 冒頭の // @@version xx.xx.xx.xx を対応するBakinバージョンに書き換えてください。
//ここは記載しません。
//-- ・ツールプラグインの場合、 PluginDef.cs を編集すると、エディタのバージョン情報に表示されるプラグイン名、アイコン、説明書きなどを変更できます。
//ここは記載しません。

- ''プラグインのヘルプ''
プラグインを配布するにあたって、内容についての説明が必要な場合は、readme.txtを作成し同梱してください。

- ''プラグインの設定''
プラグインの環境設定をする機能は現時点ではありません。

***プラグイン作成時のポイント [#tef59940]
- ''任意のDLLをリンクする''
C#プログラムの先頭に下記の記述を行うことで、scriptフォルダに入った任意のDLLファイルをリンクして使用することが出来るようになります。
[[プラグインサンプル]]にある「ゲームにSteamの「実績」を導入する」を参考にしてください。
 // @@link xxx.dll

- ''別のcsファイルを取り込む''
下記の記述を行うことで別のcsファイルを取り込むことができます。
 // @@include xxx.cs
大規模な処理を複数のcsファイルに分けた際にご利用ください。
「バトルプラグインサンプル」のバトルプラグインを参考にしてください。
BattlePluginDef.cs に上記の記述を各所に差し込み枝葉の処理を取り込むことで、すべてのバトル処理をビルド対象とする形にしています。

- ''プラグインからのみ参照しているリソースについて''
プラグインからのみ参照しているリソースがある場合は、そのリソースを書き出し対象として設定する必要があります。
設定するためには「リソース」メニューの各項目のツリーで書き出したいリソースを右クリックした上で「必ず公開作品出力に含める」を選んでください。

**プラグインの配布 [#wc07a955]
- イベントスクリプトの場合 作成した cs ファイルを任意の方法で配布してください。
- バトルプラグインの場合   battlescript フォルダ全体を圧縮して任意の方法で配布してください。

//ここは記載しません。
//-     ・ツールプラグインの場     dll ファイルを任意の方法で配布してください。
//ここは記載しません。

***.csrbrファイルでの配布 [#baf84ef4]
イベントスクリプト.csファイルと関連ファイルをZipファイルに圧縮し、拡張子を.csrbrに書き換えることで、配布やBakinへのインポートが楽になります。
-[[Steam Workshop]]を通じて配布することができるようになります。
-イベントシート「C#プログラムの割り当て」にて追加ボタンを押すと、.csrbrファイルを選択することができます。
追加すると.csrbrファイルは自動的に解凍・展開がなされます。

---バトルプラグインについては.csrbr形式での配布はできません。

**プラグインリファレンス [#v933133f]
現在参照できるクラスのリファレンスは下記のURLから参照できます。
RPG Developer Bakin プラグインリファレンス:https://rpgbakin.com/csreference/
2023年9月時点では、イベントスクリプト、バトルプラグインの作成で使用するクラスについて公開しています。

**プラグインサンプル [#lc5f7546]
プラグインのサンプルコードについては[[プラグインサンプル]]をご覧ください。
Steam Workshop上に公開しているサンプルコードの解説を掲載しています。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS