BlenderでGenesisのモーフを作る
天川和香さんのブログで、Blenderを使ってGenesisのモーフを作る方法がうまくいかないとのことでしたので、今回はその方法について検証してみました。
どうやらデフォルトオプションのままでBlenderからOBJのインポート/エクスポートをすると頂点の順番が変わってしまうようで、そのままDAZ Studioでモーフとして読み込むとポリゴンが爆発してしまうようです。そこで、頂点オーダーを維持したままOBJでやりとりする方法について書いてみたいと思います。DAZ Studioのバージョンは4.6.0.18、Blenderは2.67bを使用しています。
DAZ Studioを起動し、Genesisをロードします。これをOBJにエクスポートし、Blender側に持っていってスカルプト機能でモーフを作成てみることにします。
エクスポートする前に、Genesisのメッシュ解像度をBaseに変更します。こうしておかないと、細かく再分割されたポリゴンがOBJとして出力されてしまうので、モーフを作る場合にはエクスポート前に必ずBase解像度に設定しておきましょう。
メニューからOBJエクスポートを選択すると、このようなダイアログが出てきます。ここで大きさや座標軸などを設定するのですが、ここではBlender用ではなくModo用の設定を指定します。
Blenderを起動し、メニューからImport→Wavefront(.obj)を選択します。
ファイル選択画面の左下のほうに、インポートするための設定をする箇所があります。ここで大事なのが「Keep Vert Order」です。これはインポートする際に頂点の順番を維持するという設定ですので、これを必ずを選択しておきましょう。また、DAZからのOBJファイルには頂点グループも必要ですので、Poly Groupsにチェックをいれておきます。(
チェックしないとメッシュがグループ別に分割されてしまい、後でモーフとして読めなくなります。必ずしもチェックを入れる必要はありません。)
無事にインポートできると、画面上にGenesisが現れます。
今回の例では、スカルプトモードで適当に形状を変更しました。おなかのあたりをぽっこりと盛り上がらせています。(この絵では形状がわかりやすいようにプレビュー設定を変更しています。)
この状態でOBJにエクスポートします。メニューからExport→Wavefront(.obj)を選択しましょう。
再びファイル選択画面になります。今回は「Onaka.obj」という名前で保存することにしました。画面の左下に出力のための設定項目が並んでいます。ここでも頂点の順番を維持するため、必ず「Keep Vertex Order」をチェックしておきます。
DAZ Studioに戻り、Genesisを選択した状態でMorph Loader Proを起動します。
Morph Loaderのプリセットは、OBJにエクスポートする際に使ったものと同一のものを選択します。今回はModo用でエクスポートしましたので、ここでもModoを選択しています。
読み込みが成功すると、Parametersタブの中にOnakaというモーフスライダーができていると思います。これを動かして、モーフが正しく動作するかどうか確認してみましょう。
無事におなかぽっこりモーフが作成されていました。(笑)
Blenderに限らず、外部モデラーでモーフを作成する場合は、頂点の順番が変化しないように気をつけましょう。
| 固定リンク
「DAZ Studio Tips」カテゴリの記事
- Rigid Follow Nodeを使う(2013.11.10)
- V4用ビキニのウェイト調整(3)(2013.09.04)
- V4用ビキニのウェイト調整(2)(2013.09.03)
- V4用ビキニのウェイト調整(1)(2013.09.02)
- Genesis服とボタンの歪み(3)(2013.08.26)
この記事へのコメントは終了しました。
コメント
obj exportの blenderのオプションが
昔のversion用なのかdazの設定だとz-up
とかスケールがずれててうまくいかないですよね。
私もこの設定は失敗を繰り返したのでかなり、イラッときたのをおぼえていますっ^^;
で、sculptモードでモーフ作成の時、multiresolution使いますよね。
高解像度でsculptして満足しても、元のレベルに戻す時どうもがたついて気になるんで、reshapeしてから、export で
モーフで読み込むと、全体的にvertexが
微妙に動いてしまうので、みなさんどうされてるのか伺いたいです。顔だけモーフの時とか
困るんですよね、、
reshapeしないで、レベルだけおとして、
手動で1頂点ずつなおすんでしょうか?
(私はモーフの時はhexagonのほうがまだやりやすいです^^; )
投稿: gonzou | 2013年8月16日 (金) 15時51分
上の質問は、Reshapeじゃなく、Apply Baseの間違いです><)
投稿: gonzou | 2013年8月16日 (金) 15時54分
gonzouさん、コメントありがとうございます。
実は昨年末にZBrushを購入しまして、モーフ作成は主にそちらでやっています。そのためBlenderのスカルプトはほどんど使っていないのです。(;´▽`A``
ただ、DS4.6でGoZプラグインに深刻なバグがありまして、かなり面倒な手順を踏まないとモーフが作成できない事態に直面しております。これはベータ版では修正されているようですので、リリースが待ち遠しいです。
高解像度でスカルプトしてから低解像度に戻すとメッシュが動いてしまう問題はZBrushでも発生します。どうやらMulti Resolutionにはつきものの問題のようです。ZBrushではモーフターゲット機能(ややこしいですがZBrushの機能です)でベースメッシュ形状を維持することができるので、おそらくBlenderでも同じような機能がありそうな気がします。調べてみないとなんともいえないですが・・・。・゚・(ノ∀`)・゚・。
投稿: とうふ | 2013年8月16日 (金) 17時02分
ベンダーさんのが時たま、bodyのメッシュもhead morphなのに動く理由がわかった気が
^^;
blenderの場合はapply base の調整を使わないでそのまま送る分には問題ないんですけど、、
たぶんblenderの場合、shape keyを使って
首から下のメッシュだけ元に戻せると思うんで試してみます。(結構面倒^^;)
投稿: gonzou | 2013年8月16日 (金) 17時39分
gonzouさん、コメントありがとうございます。
シェイプキーならいけそうな気がしますね。あと、変更したくない部分にマスクをかけるとか、Blenderならいろいろと技が使えそうです。(´∀`*)
投稿: とうふ | 2013年8月16日 (金) 19時49分
P7から始めてやっと豆腐さんの書いてある事がぼちぼち理解できるようになってきたので、綺麗なJCMを作りたく(poserのモーフツールだけだとしわができたり限界感じてます)、外部ツールで編集できるmorphloader proを使ってみました。
最終的に慣れたPOSERで使いたく、メタセコでモーフ作成→D|SでJCM読み込みまではうまくいったのですが、D|Sのライブラリに登録できず(ウエイトマップ形式が違うからダメみたいなメッセージが)、保存ができませんです…。
仕方ないのでモーフだけ抜いてPOSER上で読ませようと思ったのですが爆発してしまいました。。。
D|Sから書き出した時に頂点順序が変わってしまうのが原因の様なのですが、どう頑張っても回避策は無いでしょうか?
惜しいとこまで行ったのですが最後にでかい落とし穴がw
もしよい知恵があればお助け下さいませんでしょうか。
投稿: にょろ | 2013年8月19日 (月) 08時31分
にょろさん、コメントありがとうございます。
Poserで使用することを前提としている場合は、モデラーで書き出したOBJをPoser側で直接モーフとしてインポートしたほうが早いような気がします。(ただしこれはV4のようなレガシーフィギュアの場合です。Genesis系はD|S側でMorph Assetとして保存する必要があります。)
Poserのメニューからは、Figure→Load Fill Body MorphでOBJを指定するだけでモーフとして読み込んでくれますので、D|Sを経由するより簡単だと思いますよ。(´∀`*)
投稿: とうふ | 2013年8月19日 (月) 19時05分
早速のご回答ありがとうございます。
言葉足らずですみません、zerofigureの状態で例えば巨乳モーフを作る等であればその方法でやるのですが、例えばですが開脚状態で腰周りを書き出し、外部モデラーで整えてPOSERに読み込ませると、関節を動かして書き出した情報がやり取りされないので、とんでもない事になってしまいますw
D|SだとMorphloaderProを使って読み込めばその問題がクリアできるので、これなら外部ツールで綺麗なJCMが作れると踏んだのですが、頂点順序の問題でつまづいたという訳です。
頂点順序さえ変わらなければいけると思ったのですが、D|Sでposerフィギュアを読んだ時点で順序が変わってしまっている様でした。
中々うまくいかないですねCGの世界は…。
もう少し勉強します。ありがとうございました。
投稿: にょろ | 2013年8月19日 (月) 19時49分
なるほど、関節を曲げた状態でのモーフ作成ならMorph Loader Proだとできますね。(;´▽`A``
現状D|S4.6のMorph Loaderはバグがあって、レガシーフィギュアのモーフ作成ができなくなっています。もしD|S3をお持ちなら、そちらで作成後にInj/Rem Exportというスクリプトで直接インジェクションポーズを作ってしまえば、Poserでも問題なく適用できます。(D|S4での動作は未確認です。)
最終手段として、その方法も試されてみてはいかがでしょうか。(;´▽`A``
投稿: とうふ | 2013年8月19日 (月) 20時12分
あら残念、3は持っておりませんです…。
元はといえばPOSERでこのくらいの機能をとっくの昔に実装してくれていてもおかしくないんですよね…。
モーフパテツールはイマイチ挙動がおかしいですし、モーフのミラー機能もきちんと動いてくれませんし、自分でフィギュア作るとなるととてつもなく大変です。
最初の頃は何のことやらさっぱりでしたが、とうふさんの記事が結構理解できる様になったので、これからも記事を参考にD|SとBlenderいじってみようと思います。
ありがとうございました。
投稿: にょろ | 2013年8月19日 (月) 20時54分
あらら、了解です。(;´▽`A``
Poserでは外部モデラーとの連携に関する記事が少ないですよね。いざ自分で調べようとしても、なかなか思うようにいかないのが難点です。
最終的にPoserで作業するにしても、必要に応じてD|Sの機能を利用するというのも外部ツール利用テクニックのひとつかも知れませんね。うまくいくことを願っています。(´∀`*)
投稿: とうふ | 2013年8月19日 (月) 21時26分
初めまして。いつも参考にさせて頂いてます。
ちょうど、blenderでのモーフ修正に四苦八苦していたので、今回の記事は本当に助かりました。ありがとうございます!
記事本文で少し気になった部分があるのですが、objインポート時の設定の部分で、
「(チェックしないとメッシュがグループ別に分割されてしまい、後でモーフとして読めなくなります。)」
とあるのですが、ここに書かれているメッシュの分割とはどのようなものなのでしょうか?
blender上でみた限りだとメッシュが分割されているようには見えなかったのですが、これはエクスポートするときやdaz側に読み込むときに分割されて扱われるということですか?
分かりにくい質問ですみません。
投稿: mc | 2013年8月27日 (火) 09時42分
mcさん、コメントありがとうございます。
インポート時のPolyGroupの記述に関してですが、ご指摘のとおりメッシュが分割されるわけではないようです。(私の勘違いでした。ごめんなさい。)
DAZ Studioにモーフとして持ち込む場合、PolyGroupが存在する必要はないため、この部分はチェックしなくとも問題ありません。
投稿: とうふ | 2013年8月27日 (火) 19時27分
確かにモーフを作ってやりとりするだけなら必須ではないのですが、ds上でのface groupを
vertez groupとして持ち込んでくれるので、ありがたいです。
選択するときに便利ですよね。
時たまチェック忘れて、動揺しますので
^^;
(ぜひ、推奨したいチェックではありますっ)
投稿: gonzou | 2013年8月29日 (木) 13時20分
gonzouさん、グループが残っていると、いろいろ便利ですよね。不要な部分を非表示にしたりとか、いろいろ応用がききますし。(´∀`*)
投稿: とうふ | 2013年8月30日 (金) 00時32分