ReEnvプラグイン

今回、MMDモデルを数個作るにあたり

個人的に活躍したプラグインを公開しますよ~

 

題して「ReEnv」プラグイン

 

どういうものかというと

エンベ完了後に

腕の長さを間違えたとか、T字だけど逆Y字にしたかったとか

MMDのモデルの初期形状に合わせ忘れたとか言う時に

骨の長さや位置を修正した物を、リファレンスポーズにしちゃうってなプラグインです

実は標準であるかも知れないけど、ちょっと見当たらなかったので作りました

 

例えば、T字で作ってしまったモデルさん

 

ReEnv(1).jpg

 

あぁ~逆Y字にしたい!ってな事で

骨を移動させてみるけど

 

ReEnv(2).jpg

 

リファレンスポーズを設定すると

 

ReEnv(3).jpg

 

あらま、メッシュは元の形に・・・

 

ここで登場するのがReEnv

リファレンスポーズを設定するデフォーマーのルートを選択し

 

ReEnv(4).jpg

 

Animation→デフォーム→エンベロープ→ReEnv

を実行!

 

ReEnv(5).jpg

 

ちょいと待つと

骨の長さやら位置やらに影響を受けた形状と

それに伴うリファレンスポーズが設定されたデフォーマーが出来上がりますよ~

 

動作としては

ただ単純に、ウェイトのプリセットを保存し、フリーズ後最適用ってな流れです

1Meshの場合は楽ですが、複数Meshとなる場合

上記手順が面倒なので、自動化しました

 

表示されているメッシュ全てに適用されます

(Visibilityパラメーター判断のため、孤立ではダメみたいです)

 

注意点としては

新しく出来たEnvクラスタは確実にEnvelope_Cls下のEnvelop_Weightsと言う名前になります

空のポイントクラスタは削除されます

Envelope_Clsにシェイプアニメーションが入っている場合リネームされます

フリーズされます

 

ってな所でしょうか

クローンとか使っている場合は注意です

 

フリーズは省けるかもしれない・・・

 

コメント

  1. 武者小路ミゲル より:

    キャラモデリングで便利そう!とおもい、つかってみましたがエラーが出て出来ませんでした。・゚・(ノ∀`)・゚・。
    2011のSP1とSP2をつかってますが
    ‘ ERROR : 2424 – XSI は.NET プラグインのロードに失敗しました。このエラーは、プラグインが別のバージョンの XSI でコンパイルされたことが原因かもしれません。この問題を解決するには、お使いの XSI のバージョンでプラグインを再コンパイルしてください。


    という感じでした(´TωT`)ショボボボーン

  2. LAG より:

    >>武者小路ミゲルさん
    おぉぅ・・・!
    2011のSP1とSP2の対応プラグインが入ってませんでしたね・・・
    とりあえず、SP2は現時点でDLLがあるので
    SP2用のプラグインを作成しましたので
    ご確認ください!
    http://lurgee.xii.jp/files/ReEnv2011sp2.zip
    報告ありがとうございます

  3. 武者小路ミゲル より:

    対応ありがとうございます(`・ω・´) シャキーン
    休み明けにテストしてみます(`・ω・´) シャキーン

  4. LAG より:

    >>武者小路ミゲルさん
    いえいえ~報告どうもです!
    ん?キャシャーン!!

  5. 武者小路ミゲル より:

    無事2011SP2で動作することを確認しました(`・ω・´) シャキーン
    キャラのバランス変更とかサイズ変更とかで時々こまっていたので
    とても助かりました。ありがとうございました。(`・ω・´) シャキーン

  6. LAG より:

    >>武者小路ミゲルさん
    報告ありがとうございます!チャリーン
    無事動いてよかったです。カラサワトシアキ

  7. tab より:

    こんにちは。
    win7x64上でのmodool7.5(ビルドバージョ 7.5.203.0)
    ですがエラーで使えませんでした。
    時間のある時にでも対応して戴ければ。

    Script Editorのログは、読み込み済みプラグイン再ロードの
    WARNING がズラーと出ます。

    # WARNING : 3260 – このプラグインは既にロードされています:
    #
    #
    #
    # WARNING : 3260 – このプラグインは既にロードされています:
    #
    #
    Application.ReEnv()

  8. アバター画像 LAG より:

    >>tabさん
    報告ありがとうございます

    ReEnvの動作は
    ウェイトのプリセットを保存した後
    XSIがプリセットを専有してしまって
    身動きが取れなくなってしまうため
    一度、プラグインの再ロードをかけて
    プリセットの専有状態を解いています

    WARNINGが出るのは
    プラグインがロードされてるのに
    再ロードをかけている為で
    ↑の理由からReEnvでは避けられない感じです

    逆に、WARNINGが出るってことは
    プリセット出力まで動いているということなので
    プリセット読み込み時のメッシュの確保らへんで
    ミスが出てる可能性があります

    もしよろしければ、該当メッシュまでのルートからの構造
    デフォーマーのルートからの構造
    を教えてくれませんか?

  9. tab より:

    書き込み確認できなかったんで向こうにポストしてしまった。^^;

    ヌルボーンモデル、プリミティブのXSI男性や小さな人でも
    動作しなかったんで円柱に2ボーンでエンベロープ付けた
    ものでも試しましたがいずれも赤文字エラー(XSI画面最下行)
    が出ます。
    ヌルボーンモデルは、
    MODELの中にボディーとhipをルートとした簡単な構造です。
     

  10. アバター画像 LAG より:

    tabさん
    報告ありがとうございます
    原因が判明しました
    現在のところ、うちのプラグイン全てで
    SceneRoot以外のMODEL以下に対象オブジェクトがあると
    動かないみたいです
    ちょいと修正方法を考えて
    修正できたらやってみますので、しばしお待ち下さい

  11. tab より:

    こっちだけ見てて更新されてるの気付きませんでした。すみません。

    早速キャラモデルに使ってみましたら、エラーが。
    円柱2つ骨2本の構成で確認しましたら、後に作った円柱のウェイトが
    無くなってしまいました。
    最初のメッシュ以外のウェイトが無くなるようです。

    ご確認いただければ。

  12. アバター画像 LAG より:

    >>tabさん
    ご報告ありがとうございます
    エラーが出るシーンは具体的にどんな感じでしょうか?
    http://lurgee.xii.jp/wp/images/2016/04/00-19.jpg
    ↑の画像で
    1や2の場合は問題なく動いてますが
    3の場合は
    プラグインの根本から変更しなくては対応できそうにないので
    すぐ対応ってのは難しいです

  13. tab より:

    LAGさん
    確認ありがとうございます。
    構成は画像1です。画像2,3のようなMODELをまたぐ構成
    ではありません。(円柱でのテスト、キャラモデル共に)

    うちでは毎回ワーニングとエラーは必ず出るものの、何も
    起こらないか、ソートなし表示で一番上のメッシュ意外の
    Envelope Operatorが消えるという状況です。

  14. アバター画像 LAG より:

    >>tabさん
    報告ありがとうございます
    画像1の状態で、エラーを再現することが
    うちの環境だと不可能なので
    一応、ログを吐き出すタイプのプラグインに差し替えましたので
    お手数ですが、もう一度ダウンロードして試してみてください

    プラグインのリロードがかかるので
    読みにくいですが、どの辺で止まってるか
    教えていただけると幸いです

    ログは
    // INFO : 開始
    // INFO : ルートはnullです。
    // INFO : プリセットを保存
    // INFO : (オブジェクト名)の作業開始
    // INFO : デフォーマー情報を収得
    // INFO : プリセットの保存
    // INFO : 完了
    // INFO : プラグインのリロード
    で一旦、WARNING、ERRORの羅列になり
    // INFO : リファレンスポーズの再設定
    // INFO : プリセットを読み込み
    // INFO : (オブジェクト名)の作業開始
    // INFO : デフォーマーの設定
    // INFO : プリセットの読み込み
    // INFO : 完了
    // INFO : プラグインのリロード
    で、また羅列され
    // INFO : 正常に終了
    で終わる流れになってます

  15. tab より:

    LAGさんお忙しいとこ申し訳ないです。
    ログは以下のように。

    処理された場合。
    // INFO : 開始
    // INFO : ルートはModel.nullです。
    // INFO : プリセットを保存
    // INFO : Model.cylinderの作業開始
    // INFO : デフォーマー情報を収得
    // INFO : プリセットの保存
    // INFO : 完了
    // INFO : Model.cylinder1の作業開始
    // INFO : デフォーマー情報を収得
    // INFO : プリセットの保存
    // INFO : 完了
    // INFO : プラグインのリロード
    //
    // INFO : リファレンスポーズの再設定
    // INFO : プリセットを読み込み
    // INFO : Model.cylinderの作業開始
    // INFO : デフォーマーの設定
    // INFO : プリセットの読み込み
    // ERROR : error
    // INFO : プラグインのリロード
    //
    Application.ReEnv()

    何も起こらない場合。
    // INFO : 開始
    // INFO : ルートはModel_1.nullです。
    // INFO : プリセットを保存
    // INFO : Model_1.cylinderの作業開始
    // INFO : デフォーマー情報を収得
    // ERROR : error
    // INFO : プラグインのリロード
    //
    Application.ReEnv()

    何も起こらない場合はMODEL名をModel_1とかリネーム
    すると処理されるようです(前バージョンでも)が一度
    使ったネームではXSIを再起動するまで処理されません。

    TempReEnvフォルダに保存されるPresetはXSI終了する
    まで0バイトでアクセス不能です。

  16. アバター画像 LAG より:

    >>tabさん
    報告ありがとうございます
    Model_1の状態でもエラーは再現できなかったです・・・
    最初のエラーと最後のアクセス不能って事を考えると
    ModToolではプラグインをリロードしても
    専有が解除されない場合があるってのが濃厚かもしれません
    上記の場合、解決方法はとっさに思い浮かびませんが
    とりあえず、後ほどModToolをインストールして試してみます
    ModToolのインストーラーを探すところから始めるので
    少しお待ち下さい

  17. tab より:

    ご面倒おかけします。
    formの方にリンク張っておきます。

  18. アバター画像 LAG より:

    >>tabさん
    報告+ModToolのリンクまでありがとうございます
    試してみたところ
    やはりModToolではプラグインのリロードで
    ファイルの専有が解かれないのが問題みたいです
    リロードではなく
    一度ReEnvをアンロードすると、専有が解かれるので
    7.x以降でガラリとXSIが変わった時に
    プラグイン周りも少しの変更があったのかもしれません・・・

    即時解決するには
    保存用と読み込み用のプラグインを作る以外
    解決方法が今のところ思い浮かばないので
    少しお待ち下さい

  19. アバター画像 LAG より:

    >>tabさん
    とりあえずの解決策として
    保存とロード用のプラグインを作りました
    http://lurgee.xii.jp/files/ReEnv_mod.zip
    面倒ですが、ルート選択してReEnv_saveで保存し
    またルートを選択してReEnv_loadで読み込みを行ってみてください

    プラグインマネージャーで
    ReEnv_SavePluginを右クリックし
    キャッシュ済みのチェックを外してください
    これにより、プラグインの動作が終了すると
    専有が解除されるようになります

  20. tab より:

    LAGさん更新ありがとうございます。

    ReEnvできたといえばできたのですが、モデル2体表示
    されていますと、非選択MODELの方もReEnvされました。

    SelectObj “A_Model.null”
    ‘ INFO : 開始
    ‘ INFO : ルートはA_Model.nullです。
    ‘ INFO : プリセットを保存
    ‘ INFO : A_Model.cylinderの作業開始
    ‘ INFO : デフォーマー情報を収得
    ‘ INFO : プリセットの保存
    ‘ INFO : 完了
    ‘ INFO : A_Model.cylinder1の作業開始
    ‘ INFO : デフォーマー情報を収得
    ‘ INFO : プリセットの保存
    ‘ INFO : 完了
    ‘ INFO : B_Model.cylinderの作業開始
    ‘ INFO : デフォーマー情報を収得
    ‘ INFO : プリセットの保存
    ‘ INFO : 完了
    ‘ INFO : B_Model.cylinder1の作業開始
    ‘ INFO : デフォーマー情報を収得
    ‘ INFO : プリセットの保存
    ‘ INFO : 完了
    ‘ INFO : リファレンスポーズの再設定
    ‘ INFO : エンベ設定
    ‘ INFO : A_Model.cylinderの作業開始
    ‘ INFO : デフォーマーの設定
    ‘ INFO : A_Model.cylinder1の作業開始
    ‘ INFO : デフォーマーの設定
    ‘ INFO : B_Model.cylinderの作業開始
    ‘ INFO : デフォーマーの設定
    ‘ INFO : B_Model.cylinder1の作業開始
    ‘ INFO : デフォーマーの設定
    ‘ INFO : 正常に終了
    ReEnv_Save

    ReEnv_saveだけで再設定もされました。
    非選択モデルの問題は非表示で回避。

    ただ、アンロード?が上手くいっていないのかReEnv
    できるのは1度だけでやり直しができません。
    キャッシュ済みのチェックが外れている場合MODEL名を
    リネームしてもだめで、チェック入ってればリネームで
    正常にReEnvが働きます。

    少々問題ありますが、MODToolの制限でウェイト(preset)
    の書き出しができない現状なんで、このPLUGINはとても
    ありがたくLAGさんには只々感謝です。

  21. アバター画像 LAG より:

    >>tabさん
    報告ありがとうございます
    ReEnvに関しては、対象オブジェクトの判断は
    選択、非選択ではなく
    表示、非表示で判断してるので、その動作でOKです

    Saveの再設定も
    一応、名前は一緒ですが別のプラグインのため
    判断するための材料をLoadの方へ渡せないため
    リファレンスの設定と、エンベロープの適用までSaveでやります
    Loadでプリセットの読み込みまでやります

    専有の問題は色々と解決できなさそうですね
    一番の方法は
    一度終わったら、プラグインマネージャーで
    アンロードするってな方法でしょうか・・・

  22. tab より:

    占有の件はXSIが離さないようです。
    でもこのプラグインが無かったら、ポーズ修正>フリーズ>エンベロープコピー用
    モデルからエンベロープコピーというのをメッシュの数だけやらなきゃならんという
    かやっていたんで大助かりです。
    本当にありがとうございました。

タイトルとURLをコピーしました