17.プラグイン

MikuMikuMovingのプラグイン

開発に必要なソフトウェア

    • Microsoft Visual C# 2010 Express もしくはこれに準じるソフトウェア

必要環境

    • Windows XP以降

    • .NET Framework 2.0

    • DirectX 9.0c Runtime 2010 Feb以降 (SDKは必要ありません)

現在MikuMikuMovingで用意されているプラグインは下の2種類です。

また上記プラグインに、以下のような特定の機能を追加することができます。

これらのプラグインでは、モデル、アクセサリ、エフェクト、カメラやライトに対して、キーフレーム操作やモーション操作等が可能です。

MMM内部のオブジェクトには、Scene オブジェクトを使用してアクセスします。

Sceneオブジェクト

Sceneオブジェクトを使って、MMM内部の様々なオブジェクトにアクセスすることができます。

Sceneオブジェクトは下記のような構造を持っています。

各要素に対して可能な操作については、クラスライブラリを参照してください。

Scene

+ モデル

+ 材質

+ 表示枠

+ ボーン

+ レイヤ

+ キーフレーム

+ プロパティ

+ キーフレーム

+ アクセサリ

+ レイヤ

+ キーフレーム

+ エフェクト

+ キーフレーム

+ カメラ

+ レイヤ

+ キーフレーム

+ ライト

+ キーフレーム

+ 全体プロパティ

+ キーフレーム

+ 字幕

+ オーディオ

+ ブックマーク

+ スクリーンオブジェクト (後述)

コマンドプラグイン

コマンドプラグインでは、ICommandPlugin インターフェースを実装する必要があります。

Runメソッド内に、プラグインの処理を記述します。

なお、コマンドプラグインはRunメソッド内で処理を完結する必要があります。

Runメソッド内で、フォームなどの別メソッドを作成した処理は保証されません。

常駐型プラグイン

常駐型プラグインでは、IResidentPlugin インターフェースを実装する必要があります。

Initializeメソッドにて、初期化処理を、

Updateメソッドにて、毎フレーム実行される処理を記述します。

また、プラグインが有効化されたときの処理を Enabledメソッドに、無効化されたときの処理を記述します。

常駐型プラグインでは、Sceneオブジェクトから取得する情報はUpdate内で完結させる必要があります。

Updateが終わって次のUpdateが開始されるまでの間に、ユーザーによりモデルやキーフレームが追加/削除されることがあるからです。

MMM内部データについては、ローカルに保持しないようにしてください。

ScreenObject

ScreenObjectを使用すると、MMMのスクリーン上に、画像を配置し、マウスイベントを取得することができます。

画像は2D位置(スクリーン上)、3D位置(三次元空間内)に置くことができます。

説明

スクリーン上に画像を配置します。

三次元空間内に画像を配置します。

Initializeメソッド内でScreenObjectインスタンスを生成し、Scene.ScreenObject.Add メソッドで追加します。

作成したScreenObjectを破棄は、プラグイン内で行ってください。

プロジェクトへの保存

プラグインのデータをプロジェクトに保存するには、ICanSavePluginインターフェースを実装する必要があります。

OnSaveProjectで保存データをStreamとして返し、

OnLoadProjectでStreamから保存データを受け取ります。

なお、どちらのメソッドでもStreamはDisposeする必要はありません。

プロパティ/メソッド

void OnLoadProject(Stream)

Stream OnSaveProject()

説明

プロジェクトが読み込まれたときに呼ばれます。

StreamはDisposeする必要はありません。

プロジェクトが保存されるときに呼ばれます。

StreamはDisposeする必要はありません。

プラグインのユーザーコントロール

プラグインはユーザーコントロールを持つことができます。

IHaveUserControlインターフェースを実装する必要があります。

ユーザーコントロールは、CreateControlメソッドにて生成するようにしてください。

プロパティ/メソッド

UserControl CreateControl()

説明

プラグイン独自のユーザーコントロールをここで生成します。

作成されたユーザーコントロールは、MMM上でプラグイン画面に表示されます。

Microsoft Visual C# 2010 Express によるプラグイン作成手順(簡易)

1. "クラスライブラリ"テンプレートにて新規にプロジェクトを作成します。

2. 以下のアセンブリ参照を追加します。

- DxMath (MikuMikuMoving付属)

- MikuMikuPlugin (MikuMikuMoving付属)

- System.Drawing

- System.Windows.Forms

その他不要なアセンブリを削除し、必要に応じてアセンブリを追加します。

3. コマンドプラグインの場合はICommandPlugin、常駐型プラグインの場合はIResidentPluginインターフェースを持つクラスを作成します。

4. 必要なプロパティとメソッドを記述します。

5. ビルドして生成されたDLLファイルを、MikuMikuMovingのPluginsフォルダに置きます。