今回、MMDモデルを数個作るにあたり
個人的に活躍したプラグインを公開しますよ~
題して「ReEnv」プラグイン
どういうものかというと
エンベ完了後に
腕の長さを間違えたとか、T字だけど逆Y字にしたかったとか
MMDのモデルの初期形状に合わせ忘れたとか言う時に
骨の長さや位置を修正した物を、リファレンスポーズにしちゃうってなプラグインです
実は標準であるかも知れないけど、ちょっと見当たらなかったので作りました
例えば、T字で作ってしまったモデルさん
あぁ~逆Y字にしたい!ってな事で
骨を移動させてみるけど
リファレンスポーズを設定すると
あらま、メッシュは元の形に・・・
ここで登場するのがReEnv
リファレンスポーズを設定するデフォーマーのルートを選択し
Animation→デフォーム→エンベロープ→ReEnv
を実行!
ちょいと待つと
骨の長さやら位置やらに影響を受けた形状と
それに伴うリファレンスポーズが設定されたデフォーマーが出来上がりますよ~
動作としては
ただ単純に、ウェイトのプリセットを保存し、フリーズ後最適用ってな流れです
1Meshの場合は楽ですが、複数Meshとなる場合
上記手順が面倒なので、自動化しました
表示されているメッシュ全てに適用されます
(Visibilityパラメーター判断のため、孤立ではダメみたいです)
注意点としては
新しく出来たEnvクラスタは確実にEnvelope_Cls下のEnvelop_Weightsと言う名前になります
空のポイントクラスタは削除されます
Envelope_Clsにシェイプアニメーションが入っている場合リネームされます
フリーズされます
ってな所でしょうか
クローンとか使っている場合は注意です
フリーズは省けるかもしれない・・・
コメント
キャラモデリングで便利そう!とおもい、つかってみましたがエラーが出て出来ませんでした。・゚・(ノ∀`)・゚・。
2011のSP1とSP2をつかってますが
‘ ERROR : 2424 – XSI は.NET プラグインのロードに失敗しました。このエラーは、プラグインが別のバージョンの XSI でコンパイルされたことが原因かもしれません。この問題を解決するには、お使いの XSI のバージョンでプラグインを再コンパイルしてください。
‘
‘
という感じでした(´TωT`)ショボボボーン
>>武者小路ミゲルさん
おぉぅ・・・!
2011のSP1とSP2の対応プラグインが入ってませんでしたね・・・
とりあえず、SP2は現時点でDLLがあるので
SP2用のプラグインを作成しましたので
ご確認ください!
http://lurgee.xii.jp/files/ReEnv2011sp2.zip
報告ありがとうございます
対応ありがとうございます(`・ω・´) シャキーン
休み明けにテストしてみます(`・ω・´) シャキーン
>>武者小路ミゲルさん
いえいえ~報告どうもです!
ん?キャシャーン!!
無事2011SP2で動作することを確認しました(`・ω・´) シャキーン
キャラのバランス変更とかサイズ変更とかで時々こまっていたので
とても助かりました。ありがとうございました。(`・ω・´) シャキーン
>>武者小路ミゲルさん
報告ありがとうございます!チャリーン
無事動いてよかったです。カラサワトシアキ
こんにちは。
win7x64上でのmodool7.5(ビルドバージョ 7.5.203.0)
ですがエラーで使えませんでした。
時間のある時にでも対応して戴ければ。
Script Editorのログは、読み込み済みプラグイン再ロードの
WARNING がズラーと出ます。
# WARNING : 3260 – このプラグインは既にロードされています:
#
#
#
# WARNING : 3260 – このプラグインは既にロードされています:
#
#
Application.ReEnv()
>>tabさん
報告ありがとうございます
ReEnvの動作は
ウェイトのプリセットを保存した後
XSIがプリセットを専有してしまって
身動きが取れなくなってしまうため
一度、プラグインの再ロードをかけて
プリセットの専有状態を解いています
WARNINGが出るのは
プラグインがロードされてるのに
再ロードをかけている為で
↑の理由からReEnvでは避けられない感じです
逆に、WARNINGが出るってことは
プリセット出力まで動いているということなので
プリセット読み込み時のメッシュの確保らへんで
ミスが出てる可能性があります
もしよろしければ、該当メッシュまでのルートからの構造
デフォーマーのルートからの構造
を教えてくれませんか?
書き込み確認できなかったんで向こうにポストしてしまった。^^;
ヌルボーンモデル、プリミティブのXSI男性や小さな人でも
動作しなかったんで円柱に2ボーンでエンベロープ付けた
ものでも試しましたがいずれも赤文字エラー(XSI画面最下行)
が出ます。
ヌルボーンモデルは、
MODELの中にボディーとhipをルートとした簡単な構造です。
tabさん
報告ありがとうございます
原因が判明しました
現在のところ、うちのプラグイン全てで
SceneRoot以外のMODEL以下に対象オブジェクトがあると
動かないみたいです
ちょいと修正方法を考えて
修正できたらやってみますので、しばしお待ち下さい
こっちだけ見てて更新されてるの気付きませんでした。すみません。
早速キャラモデルに使ってみましたら、エラーが。
円柱2つ骨2本の構成で確認しましたら、後に作った円柱のウェイトが
無くなってしまいました。
最初のメッシュ以外のウェイトが無くなるようです。
ご確認いただければ。
>>tabさん
ご報告ありがとうございます
エラーが出るシーンは具体的にどんな感じでしょうか?
http://lurgee.xii.jp/wp/images/2016/04/00-19.jpg
↑の画像で
1や2の場合は問題なく動いてますが
3の場合は
プラグインの根本から変更しなくては対応できそうにないので
すぐ対応ってのは難しいです
LAGさん
確認ありがとうございます。
構成は画像1です。画像2,3のようなMODELをまたぐ構成
ではありません。(円柱でのテスト、キャラモデル共に)
うちでは毎回ワーニングとエラーは必ず出るものの、何も
起こらないか、ソートなし表示で一番上のメッシュ意外の
Envelope Operatorが消えるという状況です。
>>tabさん
報告ありがとうございます
画像1の状態で、エラーを再現することが
うちの環境だと不可能なので
一応、ログを吐き出すタイプのプラグインに差し替えましたので
お手数ですが、もう一度ダウンロードして試してみてください
プラグインのリロードがかかるので
読みにくいですが、どの辺で止まってるか
教えていただけると幸いです
ログは
// INFO : 開始
// INFO : ルートはnullです。
// INFO : プリセットを保存
// INFO : (オブジェクト名)の作業開始
// INFO : デフォーマー情報を収得
// INFO : プリセットの保存
// INFO : 完了
// INFO : プラグインのリロード
で一旦、WARNING、ERRORの羅列になり
// INFO : リファレンスポーズの再設定
// INFO : プリセットを読み込み
// INFO : (オブジェクト名)の作業開始
// INFO : デフォーマーの設定
// INFO : プリセットの読み込み
// INFO : 完了
// INFO : プラグインのリロード
で、また羅列され
// INFO : 正常に終了
で終わる流れになってます
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バイトでアクセス不能です。
>>tabさん
報告ありがとうございます
Model_1の状態でもエラーは再現できなかったです・・・
最初のエラーと最後のアクセス不能って事を考えると
ModToolではプラグインをリロードしても
専有が解除されない場合があるってのが濃厚かもしれません
上記の場合、解決方法はとっさに思い浮かびませんが
とりあえず、後ほどModToolをインストールして試してみます
ModToolのインストーラーを探すところから始めるので
少しお待ち下さい
ご面倒おかけします。
formの方にリンク張っておきます。
>>tabさん
報告+ModToolのリンクまでありがとうございます
試してみたところ
やはりModToolではプラグインのリロードで
ファイルの専有が解かれないのが問題みたいです
リロードではなく
一度ReEnvをアンロードすると、専有が解かれるので
7.x以降でガラリとXSIが変わった時に
プラグイン周りも少しの変更があったのかもしれません・・・
即時解決するには
保存用と読み込み用のプラグインを作る以外
解決方法が今のところ思い浮かばないので
少しお待ち下さい
>>tabさん
とりあえずの解決策として
保存とロード用のプラグインを作りました
http://lurgee.xii.jp/files/ReEnv_mod.zip
面倒ですが、ルート選択してReEnv_saveで保存し
またルートを選択してReEnv_loadで読み込みを行ってみてください
プラグインマネージャーで
ReEnv_SavePluginを右クリックし
キャッシュ済みのチェックを外してください
これにより、プラグインの動作が終了すると
専有が解除されるようになります
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さんには只々感謝です。
>>tabさん
報告ありがとうございます
ReEnvに関しては、対象オブジェクトの判断は
選択、非選択ではなく
表示、非表示で判断してるので、その動作でOKです
Saveの再設定も
一応、名前は一緒ですが別のプラグインのため
判断するための材料をLoadの方へ渡せないため
リファレンスの設定と、エンベロープの適用までSaveでやります
Loadでプリセットの読み込みまでやります
専有の問題は色々と解決できなさそうですね
一番の方法は
一度終わったら、プラグインマネージャーで
アンロードするってな方法でしょうか・・・
占有の件はXSIが離さないようです。
でもこのプラグインが無かったら、ポーズ修正>フリーズ>エンベロープコピー用
モデルからエンベロープコピーというのをメッシュの数だけやらなきゃならんという
かやっていたんで大助かりです。
本当にありがとうございました。