モーフを使ってキャラクターを作っていると、ときどき意図しないシワや凹みができてしまうことがあります。 そういった部分を修正するモーフを作りたいなと思ったんですが、Blender などのモデリングツールを使うのも面倒です。 なにかいい方法はないかなと思って考えたんですけど、やっぱり D-Form を使うのが簡単でいいんじゃないかと思いました。

そこで検索してみると、Pixiv でカオスさんが「D-Formerでキャラモーフを作る」というズバリの記事を公開してくれていたのでやってみました (R-18 なのでリンクは自主規制させていただきました)。

またこの方法で目周りを修正すると、まつ毛や眉毛のアタッチメントが追従せず、まぶたとまつ毛の間に隙間ができてしまうことがありますが、それを修正する方法も後ほど紹介します。

まずは下記のキャラの、頬から顎にかけての凹みを修正したいと思います。

修正前は頬が凹んでいます。修正後は頬が滑らかになっています。

おおまかな作業の流れ

  • キャラに D-Former を割り当てる
  • D-Former のフィールドにウェイトマップを追加する
  • フィールドのウェイトをいったん「0」にする
  • ウェイトを塗って変形させる
  • D-Form をモーフにする
  • モーフを保存する

工程が多そうに見えますが、慣れれば数分でできてしまうくらい簡単です。

キャラに D-Former を割り当てる

まずはキャラに D-Former を割り当てます。

D-Former を追加

Scene ペインでフィギアを選択しておいて、「Create → New D-Former」を選択します。 すると下記のようなウインドウが表示されるので、名前をつけて OK を押します。

D-Former に名前をつける

今回はそのまま「D-Former_1」という名前で進めていきます。 D-Former を作ると、シーンには D-Former の BaseField が追加されるので、 そのふたつを変形させたい部分に移動します。

Base と Field を移動する

今回は顔を修正したいので、Base と Field の中心が顔の位置にくるまで Y Translate で持ち上げました。

D-Former の Field にウェイトマップを追加する

デフォルトの D-Former の Field の Influence Mode は球体 ( Sphere ) になっています。 これを Weight Map に変更し、フィギアのウェイトマップを割り当てていきます。

Field にウェイトマップを追加する

Tool Setting ペインを開き ( Window → Panes ( Tabs ) → Tool Setting )、「Node Weight Map Brush」をアクティブにします。 そして Weight Maps の項目にある「Add Maps」をクリックします。 このままだとウェイトがすでに塗られてる状態なので、一度ウェイトをクリアします。

Vieport 上で右クリックし、表示されるメニューの「Geometry Selection → Select All」ですべての頂点を選択します。

フィギアの頂点をすべて選択する

選択したら、同じように右クリックから「Weight Editing → Fill Selected」を選択します。

頂点のウェイトを塗りつぶす

すると下記のようなウインドウが表示されるので、ウェイトを 0.0% で塗りつぶします。

Fill を 0.0% に設定

最後に、すべての頂点が選択されている状態なので、これを解除します。

頂点の選択を解除

右クリックから「Geometry Selection → Clear Selection」で選択解除します。

これで準備が整いましたので、次は Node Weight Map Brush を使ってウェイトを塗っていきます。

Node Weight Map Brush でウェイトを塗っていく

これからフィギアにウェイトを塗っていくのですが、メッシュの解像度が低い方がやりやすいと思うので、Parameters ペインから解像度を High Resolusiton から Base にしておきます。

メッシュの解像度をBaseにする

あわせて Smoothing Modifier が On になっている場合は Off にしておきます。

Smoothing Modifier を Off にする

また View Port の表示は Wire Texture Shaded などにして、メッシュの網目が表示されるものを選択しておきます。 それではウェイトを塗っていきます。

まず Scene ペインで D-Former_1_Base 内にある D-Former_1 を選択します。 次に変形させたいパラメータを調整します。 今回は凹みをなくしたい … つまり凹んでる部分を膨張させたいので、Parameters ペインで D-Former_1 の Scale を 110% などに設定します。 この値は後で調整できるのおおまかで構いません。

Paint ブラシでウェイトを塗っていく

Tool Setting ペイン内の Node Weight Map Brush の General では、Use Symmetry にチェックを入れ、ミラー変形 ( 左右対称 ) になるようにしておきます。 また、必要に応じてブラシの感度 ( Sensitivity ) やサイズを変更します。

Paint Brush を選択して、フィギアの修正したい箇所をドラッグしてウェイトを塗っていきます。 塗りすぎた場合は Alt キー + ドラッグでウェイトを減らすことができます。

Smooth Brush も併用して滑らかになるように仕上げます。

Smooth Brush も併用して仕上げる

塗り終わったらメッシュの解像度を High Resolution に戻し、Smoothing Modifier を On に戻して仕上がりを確認します。

仕上がりを確認する

これで修正自体は完了ですが、次に D-Former での変形をモーフに変更します。

D-Form をモーフに変更する

D-Former での変形をモーフにしていきます。 DFrom ペイン ( Window → DFrom ) を開き、「Delete Applied D-Former(s)」と「Apply Spawned Morph」にチェックを入れておきます。

Dfromペインからモーフを作成する

「Delete Applied D-Former(s)」にチェックを入れると、モーフに変換したときにシーン内の D-Former を自動的に削除してくれます。 「Apply Spawned Morph」はモーフ変換時に、モーフを有効にしてくれます。 チェックを入れたら「Spawn Morph」を押して D-Form をモーフに変換します。

下記のようなウインドウが表示されるので、モーフに名前をつけます。 今回は頬を調整したので「Cheeks Adjust」という名前にしてみました。

モーフに名前をつける

OK ボタンを押すと下記のように D-Former を削除するか聞いてくるので、「Yes to All」をクリックします。

D-Former を削除する

今回は「D-Former_1」ひとつしか使っていませんが、複数の D-Former を使った場合はその分だけ上記のようなウインドウが表示されるので、「Yes to All」をクリックして D-Former を削除します。 すると Scene ペインからは D-Former は削除され、Parameters ペイン内に Morphs という項目が追加されてモーフが有効になります。

モーフが有効になりました

次に追加されたモーフの右側にある歯車ボタンをクリックして、モーフのリミッターやパスの設定をしておきます。

モーフのリミッターやパスを設定する

Use Limit」にチェックを入れて、Min を「0」にしておきます。 モーフのパスはデフォルトでは Morphs になっているので、変更したい場合は Path の部分を修正します ( Actor/Head/Face/Cheeks and Jaw など ) 。 今回はそのまま Morphs で進めていきます。

最後にこのモーフを保存して、他のシーンでも使えるようにしておきます。 「File → Save As → Support Assets → Morph Asset(s)」を選択します。

モーフを保存する

セーブオプションウインドウが開くので、今回作成したモーフにチェックを入れて「Accept」を押せば OK です。

保存したいモーフにチェックを入れる

これで D-Form からのモーフ作成は終了です。

まつ毛などのアタッチメントがずれる場合

D-Former で目周りをいじった場合、モーフ化してもまつ毛や眉毛などのアタッチメントが追従しないため、隙間ができてしまう場合があります。 下記は目元を変形させた例で、まつげが追従せず隙間ができてしまっています。

まぶたとまつ毛の間に隙間ができている

この隙間を修正していきたいと思います。 D-Former で作ったモーフではアタッチメントが追従しませんが、Morph Loader Pro で作成したモーフには追従するので、面倒ですが Morph Loader Pro で作り直します。

まずはフィギアをオブジェクトとしてエクスポートします。 シーンにフィギア以外のオブジェクトがある場合は削除しておき、まつ毛も非表示にしておきます。 Parameters ペインからメッシュの解像度を Base にし、Smoothing Modifier を Off にします。 そしてフィギアのシェイプを一回リセットして、D-Former で作ったモーフだけを 100% に設定します。

この状態で Scene ペインでフィギアを選択しておき、「File → Export」でフィギアをエクスポートします。

フィギアをエクスポートする

エクスポートオプションでは「DAZ Studio (1 unit = 1cm)」を選択して Accept を押します。

DAZStudioを選択

これでエクスポートは完了です。 続いてエクスポートしたフィギアを、Morph Loader Pro で読み込みます。 Scene ペインでフィギアが選択されている状態で、「Edit → Figure → Morph Loader Pro」を選択します。

Morph Loader Pro を選択

下記のようなウインドウが表示されるので、「Choose Morph Files」からエクスポートしたフィギアを選択します。

Choose Morph Files でエクスポートしたフィギアを選択

Accept を押して読み込みが成功すると、下記のようなウインドウが表示されます。 これでモーフの作成は完了です。

モーフの読み込み成功

ここで失敗する場合は、エクスポートする際にフィギアの解像度が Base になっていない、フィギア以外のオブジェクトも一緒にエクスポートしている … などが考えられます。

D-Former で作ったモーフをオフにして、Morph Loader Pro で作ったモーフを有効にすると、下記のようにまつ毛も追従してくれるようになり、隙間も解消されました。

まつ毛の隙間が修正されました

参考にさせていただいたページ

  • とうふさんの Pixiv | D-Formerでキャラモーフを作る (R-18 なのでリンクは自主規制させていただきました)