0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita全国学生対抗戦Advent Calendar 2024

Day 16

MMDPluginを用いたMMDのプラグイン開発のための環境構築 #0

Posted at

はじめに

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/ (プラグイン名のフォルダを作成する)

新規作成 (テンプレを使わない場合)

  1. Visual Studio 2022 で 新規プロジェクトを作成する
  2. 開発者用MMDPluginを下記のリンクからダウンロードする

    https://bowlroll.net/file/135503
  3. ダウンロードしたmmdplugin_dev_ver0.41_x64.zipを解凍する
  4. MMDPlugin.lib と mmd_plugin.h を プロジェクト内のlib/mmd_plugin.h にコピーする (libフォルダは作成しておく)
  5. プロジェクトのプロパティを開き、以下の設定を行う
    • VC++ディレクトリ -> インクルードディレクトリに lib を追加
    • VC++ディレクトリ -> ライブラリディレクトリに lib を追加
    • リンカー -> 入力 -> 追加の依存ファイルに mmd_plugin.lib を追加
  6. デバッグ用の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 で開いてみる

image.png

名前などは各自で変更してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?