RecotteStudioのプラグインです。
- RecotteStudio v1.5.1.7
- RecotteStudio v1.4.8.0
- RecotteStudio v1.4.7.0
-
RecotteStudioをインストール
-
こちらから最新版をダウンロードして適当なところに展開してください。
-
RecottePlugin
フォルダをUserフォルダの中に配置します。 -
RecottePlugin\install.bat
をダブルクリックで実行し、RecotteStudioのインストールフォルダにd3d11.dll
がインストールされます。 -
レコスタを起動すると、
RecottePlugin
フォルダ内のプラグインが読み込まれます。
Cドライブ
└ Users
└ <ユーザー名>
└ RecottePlugin
├ README.md
├ install.bat
├ RecottePluginManager.dll
└ …
Userフォルダ内の RecottePlugin
フォルダを削除し、新しいZipからRecottePlugin
フォルダを配置して、install.bat
を実行してください。
C:\Program Files\RecotteStudio\d3d11.dll
のリンクファイルを削除してください。
PluginをロードするためのPluginです。
RecottePluginManager.dll
はinstall.bat
によってd3d11.dll
としてRecotteStudioのインストールフォルダにインストールされます。
シンボリックリンクの形としてインストールされるので元のファイルも削除しないでください。
(これはC:\Windows\System32\d3d11.dll
のProxyDLLとして動作します)
それに伴い、RecottePluginからは削除しました。
タイムラインの背景に画像を描画する機能です。
RecottePlugin
フォルダ内にskin.png
の名前で画像を入れておくことでタイムラインに召喚することができます。
デフォルトで私服のマキさんが描かれるようになっています。マキマキカワイイヤッター!
RecotteStudioが*.txt
ファイルを読み込む際に、本来であればshift-jis
でないと読み込めないところを他の文字コードでも読み込めるようにします。
ファイルの中身から自動判定をしている都合、ファイル内の文字数が1、2文字の場合はうまくいかないかもしれません。対応している文字コードはMLang
に準じます
RecotteShaderを読み込む機能です。 詳細はRecotteShader側のドキュメントを参照してください。
プレビュー画面を外部Windowに複製します。複製Windowの数に制限はありません。ただし、複製Window上でオブジェクトを動かすことはできません。
issuesまたは、@yukawallstudio までお問い合わせください。内容は以下のテンプレートを参考にしてください。
RecotteStudio本体のVersion: (例) v1.4.0.0
RecottePluginのVersion: (例) v0.1.3
OS: (例) Windows 10 Pro
PCの型番: GARAGARA-3000-BT
エラーメッセージ: (出来ればスクリーンショットで添付)
その他:
クラッシュダンプ: (ある場合は "C:\Users\<ユーザー名>\AppData\Local\CrashDumps" 内のDMPファイルを添付する)
- VisualStudio2019 16.11.3
RecottePluginManagerプロジェクトをスタートアッププロジェクトとして実行すると、環境変数RECOTTE_PLUGIN_DIR
にビルド先が設定された状態で、RecotteStudioが立ち上がります。
通常、d3d11.dll
(RecottePluginManager.dll
)は~\RecottePlugin
以下のPluginをロードしますが、環境変数RECOTTE_PLUGIN_DIR
が設定されている場合、そちらを見に行く仕組みになっています。
d3d11.dll
(RecottePluginManager.dll
)自体に変更を加えている場合、link_(Release|Debug).bat
を利用する必要があります。
Pluginの実装要件は、OnPluginStart
とOnPluginFinish
をエクスポートするDLLであることです。
~/RecottePlugin
以下に配置することで、本リポジトリ提供のプラグインと同じようにロードされます。
RecotteStudioは公式機能として公開されたAPIは存在しないので、システム関数のコールや、プログラムのロードされたメモリを書き換えることでフックポイントを作成して行く必要があります。前者にはRecottePluginManager::OverrideIATFunction
、後者にはRecottePluginManager::SearchAddress
, RecottePluginManager::MemoryCopyAvoidingProtection
などのユーティリティ関数を利用することで多少楽に実装できるかもしれません。