« CarraraでHDRI | トップページ | 肌シェーダーの比較 »

Morph Loader Proの活用

Brielle_a3

Carrara8はフィギュアにポーズをつけた状態でメッシュを変更可能という画期的な機能が搭載されたわけですが、この機能、けっこう重いですね。V4クラスのフィギュアになると頂点の移動もままならないぐらい・・・そろそろ64bitマシンの時代でしょうかね。(´・ω・`)

考えてみれば外部モデラーを使えばMorph Loader Proでも同様のことができたなーと思い出しました。今回はMorph Loader Proを使ってポーズをとらせた状態のフィギュアに直接モーフを仕込むやり方を紹介したいと思います。

普通モーフを作成する場合はゼロフィギュアして、ボーンによる変形が及ばない状態のメッシュから頂点を移動させてモーフを仕込むわけですが、このやり方だとポーズをとらせたときの球状影響範囲による変形がまったく予測できないため、関節の曲がり方を補正するようなモーフを作るのはとても難しかったりします。

関節を曲げた状態のOBJを編集したものをモーフとして適用できれば、関節の破綻を綺麗に補正するような用途には大変有効です。曲がったときのイメージを直接OBJで作ってあげればいいだけです。ヽ(´ー`)ノ

A3before

今回はAiko3の太ももで実験。このフィギュアは足を上げると太ももがつぶれます。とりあえずLimitをONにして、lThighを限界まで持ち上げてやります(-65度)。すると、こんな風に太ももの上部が平らになってしまいます。これを直してみることにします。

この形状をPose Presetとして適当な場所に保存しておきます。このポーズファイルは作成したモーフをMorph Loader Proで読み込むときに必要になります。

変形させたいのはlButtockだけですが、今回は比較のためにhipも一緒にOBJに書き出すことにしました。hip、lButtock以外のパーツを非表示にし、File->ExportでOBJに書き出します。


Objexport_poser

OBJに書き出すときの設定はこのようにします。To:のところではPoserを選びますが、Use Bone Weldにチェックを入れてしまうとOBJに出力したときに頂点の順番が変わってしまいますので、Use Bone Weldのチェックは必ずOFFにしておきます。


Hexagon_wk1

OBJができたら、メタセコやHexagonなどのお好みのモデラーで形状を修正します。これはモーフターゲットになりますので、ポリゴンの削除や追加や分割など頂点の順番が変わってしまうような操作は厳禁です。今回はHexagonでソフトセレクションとスカルプト機能を使ってテキトーに編集してみました。

D|Sで書き出したOBJをそのままHexagonに読み込むとかなりサイズが小さいため、HexagonでImportするときはScaleを10倍にしました。編集が終わってOBJを書き出すときにはScaleを0.1倍に指定して元の大きさに戻してやります。

Morphloaderpro_wk1

モーフターゲットの準備ができたら、D|Sに戻ってMorph Loader Proを起動します。FromのところにはPoserを指定。Choose Filesで先ほど作ったOBJを選択します。

赤枠で囲った部分がポーズをつけたままモーフを読み込む場合の指定です。Reverse Deformations(逆変形)をYesにし、Poseのところに先ほど作っておいたポーズファイルを指定します。さらに、Apply After Joint Bending(関節を曲げたあとで適用)をYesに設定。あとはApplyを押せば変形後の形状としてモーフが読み込まれます。


A3after

モーフが読み込めたら、また左足を限界まで持ち上げて、たった今作ったモーフを100%に設定してみます。モデラーでモデリングした形状と同じになっていれば成功です。意外と楽ですよね。ヽ(´ー`)ノ

この機能はJCMを作るときに威力を発揮しそうです。服の関節部分の変形を補正するのに便利かも知れません。

|

« CarraraでHDRI | トップページ | 肌シェーダーの比較 »

DAZ Studio Tips」カテゴリの記事

コメント

そういえばセットアップツールのチュートリアルビデオにありましたね。この記事を見て思い出しました。
Carraraのポリゴン編集は私の環境でも確かに重いです。せっかくの便利機能なので、軽くして欲しいところですね。

投稿: Kotozone | 2010年5月23日 (日) 13時44分

Kotozoneさんコメントありがとうございます。
うーん、Kotozoneさんの環境でもやはり重いですか・・・。外部モデラーに頼ることなくメッシュ変更ができるというのは画期的ですし、これはぜひ改良して欲しいですよね。

チュートリアルビデオのほうは口頭での説明だけなので、ちょっとわかりにくかったです。結局は試行錯誤してみることになってしまいますし。(;´Д`)
DAZのプラグイン全般に言えることですが、できればドキュメントを充実させて欲しいです。

投稿: とうふ | 2010年5月23日 (日) 17時55分

 どうもです。

 世間はとっくにLuxRenderDSがブームだというのに、自分はそんな空気を余所に相変わらず過去をほっくり返してばかりで、すみません。

 ただ、自分の中では関節の補正が納得いかないと、どうしても先に進めない心境でして。なかなかシーン構築してレンダリングにたどり着けない状況です。

 MorphLoaderProで作成したモーフをコピーやチャンネルの移動すると、例のごとく破綻してしまうんです。
 以前MTMirrorでのコメントの際、「PoserJointによる変形をモーフの先に適用するか後に適用するかの違い」とおっしゃってたのがどうも気になってまして。
 自分なりに色々試した結果、どうやらMorphLoaderProで読み込むときにApply After Joint Bindingが原因ではないかと。おそらくyesの時とnoの時でデルタが変わってしまうようです。で、チャンネルの位置が変わる(一番下以外に)と「後にモーフを適用する」が正しく認識されなくなる為、挙動がおかしくなるようです。多分MTMirrorも同じ原因かと思われます。
 なので、Reverse Deformationsはyes、Apply After Joint Bindingはnoで良いはずです。

 因みにこの綴り、Bendingでは無くBindingのようです。という事は「関節の結合後に適用」が正しいという事に・・・
 済みません。さっき気付きました。

投稿: ほぬほぬ | 2011年6月29日 (水) 11時42分

ほぬほぬさん、コメントありがとうございます。

D|Sではモーフ及び関節の球状影響範囲による変形は同じModifierとして同列に扱います。従って、同じモーフデルタであってもModifierとして挿入する位置が異なると、まったく違うデルタを持つことになります。

Apply after joint bindingはその位置を指定するもので、YesにするとPoser Jointによる変形後の形状に対するデルタをモーフとして作成します。うまくいかないのはそのあたりが原因なのでしょうね。そうなると、ほぬほぬさんの仰るとおり、Joint BindingをNoに設定するのが正しいと思います。混乱させてしまってごめんなさい。

MirrorMTはデルタ情報を単純に左右対称に変換するものですが、その結果は必ずPoser Jointによる変形の前に挿入されます。つまり挿入位置が変わってしまうので、これが片側だけおかしくなる原因だと思われます。(;´∀`)

投稿: とうふ | 2011年6月29日 (水) 21時18分

コメントを書く



(ウェブ上には掲載しません)




« CarraraでHDRI | トップページ | 肌シェーダーの比較 »