PMXEプラグインを作る【プロジェクト作成編①】

前回

orico17.hatenablog.com

目的

今回はプラグインの元となる「プロジェクト」を作成します。
プラグインは「~.dll」という形式ですが、1つのプロジェクトにつき1つのdllファイルが作成されます。

MMDで例えるならpmmファイルあたりが該当するでしょうか。

環境・前提

手順

PMXエディタ同梱テキストのプラグイン解説.txtを参考に進めていきます。
T0R0さんのブロマガであればPMDEプラグインの作り方 導入:T0R0のブロマガ - ブロマガが該当します。

○作り方(VC#2010の場合)

  1. クラスライブラリとしてプロジェクトを作成
  2. PMXエディタの"PEPlugin.dll"を参照設定へ追加
  3. 作成するライブラリクラスに"PEPlugin.IPEPlugin"を実装、
     または"PEPlugin.PEPluginClass"から派生し"Run(IPERunArgs args)"メソッド等をオーバーライド

  4. 必要な処理を記述しビルド

  5. 出来上がった"*.dll"ファイルをPMXエディタの"_plugin"フォルダ内へコピー(配布時はDLL単体で配布してください)

プロジェクトを作成する

1.クラスライブラリとしてプロジェクトを作成

Visual Studioを起動します。
Visual Studio 2019ならこんな画面です。
[新しいプロジェクトの作成]を選択します。 f:id:orico17:20210814182612p:plain

[新しいプロジェクトの作成]画面に遷移します。 f:id:orico17:20210814184049p:plain

[すべての言語]を[C#]にして絞り込みます。 f:id:orico17:20210814184023p:plain

[クラス ライブラリ(.NET Framework)]を選択後、[次へ]を選択します。
[クラス ライブラリ]ではなく[クラス ライブラリ(.NET Framework)]を選択します。 f:id:orico17:20210814190937p:plain

下記のように入力します。

[ソリューションとプロジェクトを同じディレクトリに配置する]はONでもよいのですが、個人的には下図のように[ソリューションとプロジェクトを同じディレクトリに配置する]をOFFにして、[ソリューション名]を付けることをおすすめします。

[作成]を選択します。

f:id:orico17:20210814190441p:plain

クラスライブラリのプロジェクトが作成されました。 f:id:orico17:20210814190609p:plain

フォルダ構成はこんな感じになります。

src
└─PmxePlugin
    │  PmxePlugin.sln
    └─TestPlugin
        │  Class1.cs
        │  TestPlugin.csproj
        ├─bin
        ├─obj
        └─Properties
                AssemblyInfo.cs

1つのプロジェクトにつき1つのdllファイルが作成されるので、今回であればTestPluginフォルダ配下の情報を詰め込んだTestPlugin.dllというファイルができます。
「ソリューション」は複数のプロジェクトをまとめるためのもので、プラグインの内容には直接影響しません。

2つめのプラグインを作成したい場合

1つめのプラグインを作成した時にできた「〇〇.sln」を起動します。
この記事通りに名前を設定した場合はPmxePlugin.slnです。
ファイルをクリックすると画面が起動します。 f:id:orico17:20210814190609p:plain

[ソリューションエクスプローラー]というウィンドウの中で、ソリューション(PmxePlugin)を選択します。
右クリック > [追加] > [新しいプロジェクト] を選択します。 f:id:orico17:20210815142511p:plain

[新しいプロジェクトの作成]画面が開かれるので、以降は同じです。 f:id:orico17:20210814184049p:plain

プロジェクトが追加されました。 f:id:orico17:20210815144310p:plain

フォルダ構成はこんな感じになります。

src
└─PmxePlugin
    │  PmxePlugin.sln
    ├─ClassLibrary1
    │  │  Class1.cs
    │  │  ClassLibrary1.csproj
    │  ├─bin
    │  ├─obj
    │  └─Properties
    │          AssemblyInfo.cs
    └─TestPlugin
        │  Class1.cs
        │  TestPlugin.csproj
        ├─bin
        ├─obj
        └─Properties
                AssemblyInfo.cs

この場合、TestPlugin.dllClassLibrary1.dllが作成されます。

プロジェクトにPEPlugin.dll、SlimDX.dllへの参照を設定する

2.PMXエディタの"PEPlugin.dll"を参照設定へ追加

ソリューションエクスプローラーでプロジェクト(TestPlugin)の [参照] を選択します。
右クリック > [参照の追加] を選択します。 f:id:orico17:20210815145437p:plain

[参照マネージャー] が開かれます。
[参照] を選択します。 f:id:orico17:20210815145704p:plain

f:id:orico17:20210815145958p:plain

PMXエディタのLibフォルダの中のPEPlugin.dllSlimDX.dllを選択してください。

Lib
├─PEPlugin
│  │  PEPlugin.dll ★
│  └─doc
├─PMX仕様
├─SlimDX
│  ├─x64
│  │      SlimDX.dll ★
│  └─x86
│          SlimDX.dll
└─System

[OK] を選択します。 f:id:orico17:20210815150325p:plain

[参照] の中に「PEPlugin」「SlimDX」が追加されました。 f:id:orico17:20210815150604p:plain

参照の「PEPlugin」「SlimDX」を選択し、それぞれ[プロパティウィンドウ]の[ローカルにコピー]を[False]にします。 f:id:orico17:20210815203121p:plain

備考

フレームワークで.NET Framework4.0を選んだ理由

PMXエディタ同梱テキストのreadme.txtにPMXエディタで使われているフレームワークが書かれています。
これに準じています。

●必須ランタイム
.NET Framework4.0 (3.5以下もインストール推奨)
DirectXランタイム
Visual C++ 2010 再頒布可能パッケージ
Visual Studio 2013 Visual C++ 再頒布可能パッケージ

ソリューションエクスプローラ

ソリューションを管理するためのウィンドウです。
詳細は以下を参照してください。

次回

作成中です。