「ユーザーブロマガ」サービスの終了(10月7日を予定)にあたり、残したいユーザーブロマガ記事への投票を受け付けています

  • PMDEプラグインの作り方 導入

    2013-03-09 19:24

    PMDEプラグインの作り方

    この説明はVisualStudioExpress2010とPMXE0.2.1.6を前提に説明します。
    PMDEでも同様ですが細かい部分で差異があると思います。

    1.必要なもの
    開発環境として
    VisualStudioC#2010Express(Windows 7以上) or VisualStudioC#2012Express(Windows 8)
    が必要になります。

    必要なライブラリとして
    PMXE0.2.1.6 or PMDE 0.1.3.9
    がそれぞれ必要となります。

    2.インストール方法
    VisualStudioC#2010Expressのインストール方法
    http://homepage2.nifty.com/nonnon/Chinamini/20110001/20110308.html
    VisualStudioC#2012Expressのインストール方法
    http://homepage2.nifty.com/nonnon/Chinamini/20120001/20121201.html

    Windows7の人は2010を
    Windows8の人は2010もしくは2012を選択して下さい。

    PMDE/PMXEについてはインストール方法は問題ないと思います。
    インストールとプロダクトキー(無料)の登録が済みましたらプロジェクトの作成に進みます。

    3.プロジェクト作成方法
    ・VisualStudioC#2010Expressを起動するとこのような画面が出ます。


    ・左側にある「新しいプロジェクト」をクリックすると以下のような画面が出ますので
    「Visual C#」→「クラスライブラリ」を選択し名前にプラグイン名をつけて「OK」を押して下さい。
    名称が他のプラグインとかぶると正常に動作しないためなるべくかぶらない名称をつけてください。ここでは一旦「HelloWorld」とします。


    ・次に必要なライブラリの追加を行います。
    このような画面が開きますので右側にある「ソリューションエクスプローラー」窓にある「参照設定」を右クリックし「参照の追加」をクリックして下さい。



    ・ここでPMXE/PMDEからPEPlugin/SlimDXの追加をします。
    PMXE/PMDEフォルダ内のLibフォルダを開くと「PEPlugin」「SlimDX」フォルダがありますのでそれぞれから「PEPlugin.dll」と「SlimDX.dll」追加してください。
    また、メッセージウィンドウを表示するため「System.Windows.Forms」を「.Net」タブの中から追加してください。



    ・PMDEプラグインとして必要な設定を記述していきます。



    画面の上部のusingとたくさんかかれた行に以下のものを追加してください。
    //---------------------------------------------------------------------------------
    using System.Windows.Forms;
    using PEPlugin;
    using PEPlugin.Form;
    using PEPlugin.Pmd;
    using PEPlugin.Pmx;
    using PEPlugin.SDX;
    using PEPlugin.View;
    using PEPlugin.Vmd;
    using PEPlugin.Vme;
    //---------------------------------------------------------------------------------
    次に
    namespace HelloWorld
    {
    }
    で囲まれた中を削除し

    以下の文を差し込んでください。
    //-----------------------------------------------------------------------------------

    public class CSScriptClass : PEPluginClass
    {
    // コンストラクタ
    public CSScriptClass()
    : base()
    {
    // 起動オプション
    // boot時実行(true/false), プラグインメニューへの登録(true/false), メニュー登録名("")
    m_option = new PEPluginOption(false, true, "ここにプラグインのタイトル名称を入れる。");
    }
    // エントリポイント 
    public override void Run(IPERunArgs args)
    {
    try
    {
    //----------------------------ここから----------------------------------
    //ここから処理開始
    //----------------------------ここから----------------------------------
    MessageBox.Show("Hello PMDE Plugin World.");
    //----------------------------ここまで----------------------------------
    //処理ここまで
    //----------------------------ここまで----------------------------------
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
    }

    }
    //-----------------------------------------------------------------------------------

    ・プラグインを作成します。
    「ファイル」→「すべてを保存」をクリックし保存します。
    次に「デバッグ」→「ソリューションのビルド」をクリックしプラグインを作成します。
    「ドキュメント」→「Visual Studio 2010」→「Projects」→「HelloWorld」→「HelloWorld」→「bin」→「Release」内に「HelloWorld.dll」というファイルが出来ますのでそれをPMXE/PMDEの「_plugin」→「User」フォルダにコピーしてください。

    ・プラグイン実行
    PMDE/PMXEを開き「編集」→「プラグイン」→「USER」→「ここにプラグインのタイトル名称を入れる。」が出ていると思いますのでそれをクリックしてください。


    ・プラグインが正常に作成されていれば以下のようなウィンドウが表示されます。

    こちら(http://bowlroll.net/up/dl15304)にここで作成したサンプルプロジェクトをアップしたので参考にして下さい。

    また、以下が操作用のサンプルソースコードになります。
    ボーン操作サンプルソースコード
    https://bowlroll.net/file/15315

    モーフ操作サンプルソースコード
    https://bowlroll.net/file/15755

    PMXEフォーム入力操作サンプルコード
    https://bowlroll.net/file/74869

    剛体・Joint操作サンプルソースコード
    https://bowlroll.net/file/76044



  • 広告
  • PMDEごった煮プラグインにパンツプラグイン追加

    2013-02-22 20:50
    PMDEごった煮プラグインにパンツプラグイン追加しました。

    最初は冗談のつもりで作ったら思ったより使えそうなので配布します。

    注意
    材質の頂点に対してボーンと剛体を1対1で作成します。MMM/MMDでの仕様限界に簡単に当たりますので使用の際は十分に気をつけてください。

    お決まりの文言ですが、ボーン改造を行いますのでモデルのバックアップは必ず取ってください。

    DL URL:http://bowlroll.net/up/dl9765

    追加機能
    ・フォームで選択した材質の頂点に対して1対1でボーンと剛体を作成し面情報を元にJointでつなぎます。(別名パンツプラグイン)
    CreateBody4Bone.dll

    使用方法
    1.材質を選択します。




    2.ボーンを選択します。




    3.「[BODY] 選択した材質からボーン/剛体/Jointを作成する。」実行します。



    4.そのままですと剛体はボーン追従になっていますので剛体の調整をします。
    剛体を図の様に選択し剛体タイプ/非衝突グループを変更してください。

    ボーンの名称は
    日本語名が{左右}_{材質名}_{連番}
    英語名がVERTEX_{頂点番号}(こちらは変更しないでください。)となっています。
    剛体の名称は
    日本語名が{左右}_{材質名}_{連番}_BODY
    英語名がVERTEX_{頂点番号}(こちらは変更しないでください。)となっています。



    5.Jointの調整を行います。Jointの名称は
    日本語名がJOINT_{頂点番号}_{頂点番号}となっています。



    ボーン・剛体・Jointを簡単に増やせるため、ある程度の負荷に耐えられるPCでないとまず紙芝居になります。
    モデル3体のパンツにこれを適用すると
    ノート用とはいえCore(TM) i7-3630QMとGeForceGT650Mで紙芝居状態になりましたw

    以上です。

    この記事のコメント欄は以下の記事通り解放します
    http://ch.nicovideo.jp/t0r0/blomaga/ar760385

  • PMDEごった煮プラグインに2機能追加・3機能修正

    2013-02-21 16:56

    PMDEごった煮プラグインに2機能追加・3機能修正しました。

    DL URL:http://bowlroll.net/up/dl9765

    お決まりの文言ですが、ボーン改造を行いますのでモデルのバックアップは必ず取ってください。

    追加機能
    ・フォームで選択したボーンのウェイトの乗った頂点の選択(材質マスキング対応)
    SelectWeightBoneVertex.dll

    ・フォームで選択した材質の頂点に対して1対1でボーンを作成します。
    (鏡像位置にあるボーンは反転ペーストに対応するように名前を書き換えています。)
    MaterialVertex2Bone.dll



    修正機能
    材質マスキングに対応
    ・フォームで選択した頂点モーフで使用されている頂点をPMDView上で選択
    SelectedVertexFromMorph.dll

    材質マスキングに対応
    ・頂点モーフをボーンモーフに変換します。
    (使用方法http://ch.nicovideo.jp/t0r0/blomaga/ar120285
    VertexMorph2Bonemorph.dll

    材質指定部分の修正
    ・上唇/下唇/左口角/右口角ボーン作成プラグイン
    (使用方法:http://ch.nicovideo.jp/t0r0/blomaga/ar119503
    MouthPlus.dll

    注意事項
    大量にボーンを生成するプラグインの使い道はまだ試行錯誤中です。PMDEはボーン数をかなり増やしても平気ですがMMD/MMMはある一定以上ボーンを増やすと落ちます。今の所TransformViewで親ボーンで変形させた後に頂点単位で形状微調整しそれを頂点モーフの元モデルとするのに向いていることは確認しました。


    使い方
    ・SelectWeightBoneVertex.dll
    1.ウェイトの乗ったボーンをフォームで選択


    2.「[BONE] ウェイトの塗られた頂点の選択」を実行





    3.画像のように頂点が選択されます。(ここまでの機能はPMDE/PMXEの頂点/材質マスキングの「ウェイト関連ボーン/頂点モーフ」と酷似しています。)


    4.PMDViewで材質マスキングをしていれば画像のようにその対象頂点しか選択しません。(PMDE/PMXEにはこの機能はありません。)



    ・MaterialVertex2Bone.dll
    1.材質をフォームで選択。


    2.作成されるボーンの親ボーンになるボーンをフォームから選択。


    3.「[BONE] 材質頂点からボーンを生成」を実行する。


    4.画像のようにボーンが生成されます。


    以上です。

    この記事のコメント欄は以下の記事通り解放します
    http://ch.nicovideo.jp/t0r0/blomaga/ar760385