Skip to content

wallstudio/RecottePlugin

Repository files navigation

RecottePlugin

MSBuild

RecotteStudioのプラグインです。

対応バージョン

  • RecotteStudio v1.5.1.7
  • RecotteStudio v1.4.8.0
  • RecotteStudio v1.4.7.0

インストール方法

  1. RecotteStudioをインストール

  2. こちらから最新版をダウンロードして適当なところに展開してください。

  3. RecottePluginフォルダをUserフォルダの中に配置します。

  4. RecottePlugin\install.batをダブルクリックで実行し、RecotteStudioのインストールフォルダにd3d11.dllがインストールされます。

  5. レコスタを起動すると、RecottePluginフォルダ内のプラグインが読み込まれます。

Cドライブ
  └ Users
    └ <ユーザー名>
      └ RecottePlugin
        ├ README.md
        ├ install.bat
        ├ RecottePluginManager.dll
        └ …

アップデート

Userフォルダ内の RecottePluginフォルダを削除し、新しいZipからRecottePluginフォルダを配置して、install.bat を実行してください。

アンインストール

C:\Program Files\RecotteStudio\d3d11.dll のリンクファイルを削除してください。

機能

RecottePluginManager

PluginをロードするためのPluginです。

RecottePluginManager.dllinstall.batによってd3d11.dllとしてRecotteStudioのインストールフォルダにインストールされます。 シンボリックリンクの形としてインストールされるので元のファイルも削除しないでください。

(これはC:\Windows\System32\d3d11.dllのProxyDLLとして動作します)

LayerFolding

公式で実装されました!🎉🎉🎉

それに伴い、RecottePluginからは削除しました。

CustomSkin

タイムラインの背景に画像を描画する機能です。

RecottePluginフォルダ内にskin.pngの名前で画像を入れておくことでタイムラインに召喚することができます。

デフォルトで私服のマキさんが描かれるようになっています。マキマキカワイイヤッター!

MultiEncodeTextReader

RecotteStudioが*.txtファイルを読み込む際に、本来であればshift-jisでないと読み込めないところを他の文字コードでも読み込めるようにします。

ファイルの中身から自動判定をしている都合、ファイル内の文字数が1、2文字の場合はうまくいかないかもしれません。対応している文字コードはMLangに準じます

RecotteShaderLoader

RecotteShaderを読み込む機能です。 詳細はRecotteShader側のドキュメントを参照してください。

ExternalPreviewView

プレビュー画面を外部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の開発方法

Pluginの実装要件は、OnPluginStartOnPluginFinishをエクスポートするDLLであることです。 ~/RecottePlugin以下に配置することで、本リポジトリ提供のプラグインと同じようにロードされます。

RecotteStudioは公式機能として公開されたAPIは存在しないので、システム関数のコールや、プログラムのロードされたメモリを書き換えることでフックポイントを作成して行く必要があります。前者にはRecottePluginManager::OverrideIATFunction、後者にはRecottePluginManager::SearchAddress, RecottePluginManager::MemoryCopyAvoidingProtectionなどのユーティリティ関数を利用することで多少楽に実装できるかもしれません。

メモ

作りとしてはWin32のWindowシステムベースだけど、GDI+で独自の描画をしている個所が多いのでUIいじる系は結構大変?