はじめに
MMDPlugin を前提としたMMDプラグインの作り方を書いていこうと思います。
今日はそのための前提知識みたいなのを記載していこうと思います。
前提
あくまで推奨ですが、この記事では以下を前提として書き進めます。
- Git を導入していること
- Visual Studio などのC++用IDEをインストールしていること
MMDPlugin とは
MMDPlugin は 複数のMMDプラグインを併用するためのプラグイン、または開発のためのライブラリでもあります。
oigami さんが開発しているプラグインでMMEやMMPlusなどのプラグインと併用することができます。
MMDPlugin
開発用
MMDのプラグインの仕組み
どのようにしてdllでフックしているのか気になる方は以下の記事がオススメです。
開発環境
私の開発環境は以下の通りです。
- OS: Windows 11 23H2
- MMD: MikuMikuDance 9.32
- MMDPlugin: MMDPlugin 1.9.1
開発のための準備
テンプレ
ExamplePlugin というテンプレを用意しているでこれをクローンしてセットアップします。
1. mmdplugin-ExamplePlugin をクローン
任意の場所で私が用意したExamplePluginのリポジトリをクローンします。
git clone https://github.com/PTOM76/mmdplugin-ExamplePlugin.git
2. lib/MMDPlugin.lib の準備
ビルドするために MMDPlugin.lib
を入手して lib/
に入れます。
上記サイトから、mmdplugin_dev_ver0.41_x64.zip
をダウンロードし、解凍します。
解凍後のフォルダからMMDPlugin.lib
を取り出し、1でクローンしたリポジトリ(のフォルダ)のlib/
に配置します。
3. デバッグ用MMD の準備 (任意)
デバッグ用にMMDとMMDPluginを MikuMikuDance/
へ入れます。
- MikuMikuDance/
- Data/*
- UserFile/*
- MikuMikuDance.exe
- MMDPlugin.dll (MMDPluginに含む)
- d3d9.dll (MMDPluginに含む)
- d3dx9_43.dll (MMDPluginに含む)
- Plugin/
- MMDPlugin/* (MMDPluginに含む)
- ExamplePlugin/ (プラグイン名のフォルダを作成する)
新規作成 (テンプレを使わない場合)
- Visual Studio 2022 で 新規プロジェクトを作成する
- 開発者用MMDPluginを下記のリンクからダウンロードする
https://bowlroll.net/file/135503 - ダウンロードした
mmdplugin_dev_ver0.41_x64.zip
を解凍する - MMDPlugin.lib と mmd_plugin.h を プロジェクト内のlib/mmd_plugin.h にコピーする (libフォルダは作成しておく)
- プロジェクトのプロパティを開き、以下の設定を行う
- VC++ディレクトリ -> インクルードディレクトリに
lib
を追加 - VC++ディレクトリ -> ライブラリディレクトリに
lib
を追加 - リンカー -> 入力 -> 追加の依存ファイルに
mmd_plugin.lib
を追加
- VC++ディレクトリ -> インクルードディレクトリに
- デバッグ用のMMDを用意しておく (任意)
- デバッグ用のMMDにはMMDPluginを導入しておく
- デバッグボタンを押すとデバッグ用のMMDが起動するように設定しておくとよい
- vcxprojファイルを編集して以下のように設定する
<?xml version="1.0" encoding="utf-8" ?>
<Project ...>
[以下略...]
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(ProjectDIr)mmdplugin;$(IncludePath)</IncludePath>
<LibraryWPath>$(ProjectDIr)mmdplugin;$(LibraryWPath)</LibraryWPath>
<OutDir>MikuMikuDance\Plugin\ExamplePlugin\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(ProjectDIr)mmdplugin;$(IncludePath)</IncludePath>
<LibraryWPath>$(ProjectDIr)mmdplugin;$(LibraryWPath)</LibraryWPath>
<OutDir>MikuMikuDance\Plugin\ExamplePlugin\</OutDir>
</PropertyGroup>
[以下略...]
</Project>
さいごに
以上がMMDPluginを前提としたMMDプラグインの作り方の前提知識でした。
次回は実際にプラグインを作成していきます。
Visual Studio で開いてみる
名前などは各自で変更してください。