« 小悪魔を作ってみた | トップページ | Poserとの互換性について(その2) »

Poserとの互換性について

Jcmcr2fic00

DAZ Studioは基本無料で使えるPoser互換ソフトという位置づけで、お金をかけずに誰でも3DCGを楽しむことのできる、とてもいいソフトだと思います。でも細かいところでPoserと違う動作をする部分があり、DAZにはこのあたりの互換性の問題を解決してほしいところです。
この互換性の部分について、私なりの解決方法を紹介したいと思います。


今日はまず、最も目に付くCR2ファイルの記述について。Poserではちゃんとポーズに追従するのに、DAZ Studioだと服が破けてしまうという現象があります。これをPoserとD|Sのどちらでも動くようにするには服のCR2ファイルを少し修正してあげる必要があります。

この画像では、思いっきり胸が服から飛び出してしまっています。これは服のJCM(Joint Controlled Morph)が動作していないためです。Poserフィギュアというのは関節の曲がりに応じてモーフを動作させる、JCMという仕組みを使って人間に近い変形をするようにできています。このAiko3は腕を持ち上げてますが、Aiko3では肩の関節を持ち上げるとJCMの効果で胸もいっしょに持ち上がります。

実は服にもこのJCMが仕込んであって、フィギュア本体の肩に連動する形でJCMが動作することで、服の破れを防いでいます。このように、何かのパラメータに連動する形でモーフを動作させる仕組みのことをERC(Enhanced Remote Control)といいます。

Jcmcr2fic01

ではこの服のCR2ファイル修正してみます。服のCR2をエディタで開き、"valueOpDeltaAdd"という文字列を検索してみます。このvalueOpDeltaAddがERCの設定部分です。

valueOpDeltaAddのすぐ下の3行に着目します。"Figure 1" "BODY:1" "PBMVoluptuous" とあります。これは「1番目のフィギュアの、BODYに存在する、PBMVoluptuousというパラメータに連動してこのモーフを動作させよ」という意味です。

DAZ Studioでは、このフィギュア番号の管理のし方がPoserと違っています。つまり、このように番号を直接記述されると、うまく動作しないことが多いのです。解決方法として、この番号を削ってしまいます。他のvalueOpDeltaAddの部分でも同じような修正を施します。

※服によっては"Figure 1"ではなく、服の名前(BikiniTopなど)が記述されていることがあります。名前で記述されるとD|Sでは判断できませんので、もしそのような記述がしてあった場合は"Figure"に直しておく必要があります。

Blbunnylcollar1

これで服のJCMが動作するようになったと思います。肩を持ち上げたときに胸が露出しないようになれば正常に動作しています。しかし、服によっては逆に肩を下げたときに服が破れるようになるものがあります。次はこの場合の対処について。

Aiko3の場合、肩の稼動範囲は-15度~+50度までに設定されています。このうち、JCMが動作する範囲は0~50度に限定されています。つまり、肩を50度持ち上げたときにJCMのモーフが100%となるように設定されているわけです。したがって、肩を下げたときに服が破れるのは、この-15~0度の角度でもJCMが動作してしまっている可能性があります。

Jcmcr2fic02

この服のCR2を開いて、"JCM"で検索をかけてみます。"forceLimits"の下の"min"と"max"が、このモーフの適用範囲です。minが0、maxが100000ということは、「0~10000000%の範囲でモーフ変形させよ」という意味です。10000000%はいくらなんでも大きすぎます、ありえません。(;´Д`)

D|Sはこのように大きすぎる数字が設定されていた場合、稼動範囲を無視するようです。JCMのモーフは0~100%と決まっていますから、maxに設定する値は1でいいはずです。なのでここには1に直してしまいます。JCMはCR2の中に複数存在しますので、他のJCMの部分も同じように修正します。

ここまでの修正で、Poserと同じように服が変形してくれるようになります。

最後にもうひとつ。DAZ Studioはフィギュアを選択した状態で服をロードすると、自動的にそのフィギュアに着用(Fit)させてくれるという、とても親切な設計になっています。ところが、服によっては自動的に着用してくれないものがあります。

理由は簡単で、その服が服としてではなく、ベースフィギュアとして記述されているからです。これも修正してみましょう。

Conforminggix01

CR2をエディタで開き、"conforming"で検索します。ファイルの下のほうに1箇所だけ見つかるはずです。このconformingの数字が0だとベースフィギュア、1だと服であると判定されます。自動的に着用させたいときは、ここを1にしてしまいます。


以上、今回は少し真面目に解説してみました。(;´∀`)
古い服でも、このように簡単な修正でD|Sでも使えるようになります。

Matsfixposer00

マテリアルの互換性のこともすこし書こうと画像は準備していたのですが、それはまた次回ということで・・・。

|

« 小悪魔を作ってみた | トップページ | Poserとの互換性について(その2) »

DAZ Studio Tips」カテゴリの記事

コメント

JCMについては気づいてないだけで、正常に動作していないケースが多そうですね。発見するのが難しそうです。
conformingについては私も一発ロードスクリプトを作った時に気づきました。Poserでは気にしなくていい分、0になっている服は多いですよね。
私もモーフのクロストークが働かないケースを調べたりしているんですが、DSはPoserよりもCR2などの記述に関して厳しいなと感じます。

投稿: Kotozone | 2010年4月28日 (水) 00時21分

Kotozoneさんコメントありがとうございます。
さすがにDAZで販売してる服だと大丈夫なことが多いですが、レンダロで買ったものやフリー配布の服などはJCMが動作しないことが多いですよね。
こういう互換性の問題が解決されればもう少しメジャーになるんでしょうけども・・・Poserよりずっと軽快に動作しますし。(;´∀`)

投稿: とうふ | 2010年4月28日 (水) 00時39分

コメントを書く



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




« 小悪魔を作ってみた | トップページ | Poserとの互換性について(その2) »