以前作ったロングヘアーにエクストラボーンを入れて、髪を自由に動かせるようにしてみました。 ところどころつまづいた部分もあったのですが、なんとか満足のいくものができました。 またいつか髪を作ることもあると思うので、備忘録として記事にしておきたいと思います。 大まかな作業の流れとしては下記のような感じです。

  • ボーンを入れる前の髪をバックアップしておく
  • Joint Editor でボーンを作る
  • ポリゴンにウェイトを塗る
  • 自動生成されるモーフの歪みを修正
  • Genesis 8 Female 用に設定して保存

ボーンを入れる前の髪をバックアップしておく

まずボーンを入れる前に、Transfer Utility でフィギアのウェイトを転送した状態の髪のバックアップを取っておきます。 なぜかというと、ボーンを入れたあとでポーズによってできてしまう歪みを解消するときに使いたいからです。

今回の髪はロングヘアーで、胸に髪がかかっている髪型です。 Pose Control で胸周りをいじるモーフ、Breasts FlattenBreasts Hang Forward を使うと、胸のモーフに連動して髪も動きます。

胸のモーフに連動して髪が動く

ボーンを入れる前は下記のように Transfer Utility で転送されたウェイトが残ってるのできれいに変形します。

髪にウェイトがきれいに塗られています

ウェイトをボーンに合わせて塗り直したときには自動生成モーフによって変形するため、下記のように歪んでしまいます。

髪がゆがんでいる状態

ボーン用のウェイトを塗ったあと、この自動生成モーフを修正するときにバックアップした髪を利用します。 もしボーン用のウェイトを塗る前から歪んでいる場合、Transfer Utility で転送する際に Projection Template を Hair → Shoulder Length Hair ではなく None を選択すると歪みが解消されると思います。

Transfer Utility

Joint Editor でボーンを作る

Head ボーンのチャイルドボーンとしてボーンを追加していきます。 Joint Editor を開き、Scene ペインで Head ボーンを選択します。 右クリックから Create → Create Child Bone を選択しチャイルドボーンを作成します。

Head ボーンにチャイルドボーンを作成する

下記のようなウインドウが開くので、Bone Name を設定します。

Create Child Bone

今回は縦方向にボーンを配置したいので、Rotation OrderYXZ にして Accept を押すと、下記のように縦向きでボーンが追加されます。

ボーンが追加されました

次にボーンの位置を調整しますが、ボーンの動かし方にクセがあるので慣れるまではちょっと厄介でした。 センターポイント ( 緑で表示されているポイント ) を普通に動かした場合は、下記のようにエンドポイントがずれてしまいます。

エンドポイントがズレています

右クリックから Align → Auto Align Node にチェックを入れておくと、下記のようにセンターポイントだけ動かせます。

Auto Align Node

位置を調整したら、さらにチャイルドボーンを作成していきます。 今回は SideLeft_1 から SideLeft_5 まで作ってみました。

左前側のボーンを作成

つながっているボーンのひとつを選択しセンターポイントを動かすと、親ボーンのエンドポイントがついてきてくれません。

親ボーンのエンドポイントがついてこない

そういう場合は右クリックから Snap → Auto Snap End Points にチェックを入れてから動かすと、親のエンドポイントがついてきます。

Auto Snap End Points

ただ Auto Snap End Points のチェックを入れっぱなしにすると、予期せぬ挙動になることが多い ( End Points と複数になっているので、意図しない部分の End Point も動くことがある ) ので、使いたいときだけチェックを入れる感じで、通常はチェックを外しておいた方がいいと思います

もしくはセンターポイントを動かしたあとで、右クリック → Snap → Snap End Point もしくは Snap Center Point で手動でスナップさせます。

また右クリック → Edit → Propagate Translations にチェックをいれておくと、ボーンを動かしたときに子以下のすべてのボーンが一緒に動いてくれますので、全体を動かしたいときに便利です。

Propagate Translations

とりあえず今回は下記のように、左前側の髪にボーンを入れてみました。

左前側のボーンを作成

他の部分のボーンも、Head ボーンの Child Bone として同じように作っていきます。 次はポリゴンにウェイトを塗っていきたいと思います。

ポリゴンにウェイトを塗る

ボーンを入れたので、それぞれのボーンのウェイトをポリゴンに塗っていきます。 ウェイトの塗り方についてはカオスさんの Pixiv の記事「R-18 – ボーンの入れ方について」のやり方を参考にさせていただきました。

(R-18 なのでリンクは自主規制させていただきました)

まず髪全体を Head ボーンのウェイト 100% で塗りつぶしておきます。 下記の画像は 100% で塗りつぶした状態なので、髪全体が赤くなっています。

Head ボーンのウェイトを100%に設定

Scene ペインで髪の Head ボーンを選択します。 Node Weight Map Brush ツールを開き、右クリックから Geomettry Selection → Select All を選択し、すべてのポリゴンを選択しておきます。 Node Weight Map Brush ツールでは General Weights を選択。 そして右クリックから Weight Editing → Fill Selected ( 上記画像 ) で塗りつぶします。 下記のようなウインドウが表示されるので、100% にして Accept します。

Fill Selected Faces

続いて先ほど作成したひとつひとつのボーンに対してのウェイトを塗っていきます。 今回は左前側の髪のポリゴンに対してウェイトを塗っていくので、その他のポリゴンを非表示にしておいたほうが作業がしやすいです。 Geometry Editor を開き、右クリック → Selection Mode → Marquee Selection にします。 そして下記のように左前側の髪の一部分だけをドラッグ & ドロップして選択します

髪の一部を選択

次に右クリック → Geometry Selection → Select Conected で、選択部分とつながっているポリゴンを選択します。

つながったポリゴンを選択

Select Conected では上記のように左前側のポリゴンだけを選択することができます。 あとは 右クリック → Geometry Visiblity → Hide Un-selected Polygon(s) で非選択部分を非表示にします。

非選択部分を非表示にする

隠したポリゴンを表示したいときは 右クリック → Geometry Visiblity → Show All Polygons を選択します。

それではウェイトを塗っていきます。 Scene ペインで先ほど追加したボーンのひとつを選択します。 そのまま Geometry Editor を使って、ボーンの範囲だけを選択します。

ウェイトを塗る部分を選択する

Node Weight Map ツールに切り替え、Head ボーンのウェイトを塗ったときと同様、100% で塗りつぶします ( 右ク リック → Weight Editing → Fill Selected )。

Fill Selected で塗りつぶす

同じように他のボーンのウェイトも塗りつぶしていきます。 Geometry Editor で選択し、Node Weight Map ツールで塗る … の繰り返しです。 ポリゴンを選択するとき、親ボーンと子ボーンの間に隙間ができないように注意します。 隙間ができてしまうと、そこには Head ボーンのウェイトが残ってしまうからです。

最後のボーンまでウェイトを塗ったら、左前側の髪全体にスムーズをかけます。 右クリック → Geometry Selection → Select All で全体を選択してから、右クリック → Weight Editing → Smooth Selected を選択します。

全部を選択してスムースをかける

すると下記のようなウインドウが開きます。

Smooth Selected Faces

“Enter a smooth factor for the operation” は効果の強さ、“Enter a number of iterations for the operation” は繰り返し回数のようです。

上記は 100% の強さで 10 回繰り返すといった感じです。 スムースをかけたあとは、ウェイトが下記のようになめらかなグラデェーションになります。

ウェイトのグラデーション

Posing ペインを開き、各ボーンを動かしてみます。

ボーンを動かす

滑らかさが足りないなと思ったら、再度スムースをかけて調整します。 これで左前側の髪は終了ですが、右側の髪、後ろ髪など、他の部分も同じようにボーンを入れてウェイトを塗っていきます。

自動生成されるモーフの歪みを修正

冒頭でも少し触れましたが、髪のウェイトをフィギアからボーンに変更したため、ポーズによってはモーフで髪が歪んでしまいます。 今回の髪は胸にかかるロングヘアーなので、Breasts Flatten や Breasts Hang Forward を使用するとゆがみます。

Breasts Flatten ポーズ

他にも胸を大きくしたり小さくしたりするシェイプを使うとゆがみますが、今回はポーズでの歪みを修正していきます。 歪む原因ですが、これは自動で生成される髪のモーフが歪んでいるからです。 Parameters ペインを右クリックして、Show Hidden Properties を選択してみます。

Show Hidden Properties

フィギアに胸のポーズを適用してから、Scene ペインで髪を選択してみると、Parameters ペイン内に Pose Controls という項目が追加されるのが確認できます。

Pose Conrols が追加されています

ここには以下の 4 つの自動生成モーフが表示されています。

  • pPBMrBreastsFlatten
  • pPBMlBreastsFlatten
  • pPBMrBreastsHangForward
  • pPBMlBreastsHangForward

それぞれ Breasts Flatten ポーズの左右、Breasts Hang Forward ポーズの左右用の髪のモーフです。 これらのモーフ自体が歪んでいるので、ポーズをとったときに歪んでしまうんですね。 なのでこれらのモーフを、冒頭でバックアップしておいた歪んでないもので上書きします。

まずは歪んていないものを開き、フィギアに Breasts Flatten Left ポーズだけをとらせます。 もしフィギアにシェイプを適用している場合は、リセットして Genesis 8 Female デフォルトの状態にしておきます。

Breasts Flatten Left

次に Scene ペインで髪を除くすべてのオブジェクトを非表示にします。

髪をエクスポートする

髪の Mesh Resolution が Base になっているのを確認してから、File → Export で .obj として書き出します。 下記のようなウインドウが開くので、DAZ Studio (1 unit = 1cm) を選択してから Accept を押します。

OBJ Export Options

同じように Breasts Flatten Right、Breasts Hang Forward Left、Breasts Hang Forward Right、それぞれのポーズを適用させたものを書き出します。 全部で 4 種類の髪を書き出すわけです。

次にボーンを入れた方のファイル ( 髪がゆがんでいる方のファイル ) を開きます。 こちらもフィギアのシェイプをゼロにして Genesis 8 Female デフォルトの状態にします。 その前にフィギアのシェイプをメモライズしておくと、あとで簡単にレストアできるので、Parameters ペインを右クリックして、Memorize → Memorize Figure Shape で保存しておきます。

Memorize

その後 Zero Figure Shape で下記のように Genesis 8 Female デフォルトの状態にします。

もとのキャラに戻すときは Restore → Restore Figure Shape を選択します。

Morph Loader Pro

準備ができたら Scene ペインで髪を選択した状態で Edit → Figure → Morph Loader Pro を選択します。 まずは Breasts Flatten Left から修正していきます。

Morph Loader Pro

Morph Loader Pro のウインドウでは、まず Convert To Daz Studio の From を DAZ Studio (1 unit = 1cm) にします。 Name は pPBMlBreastsFlatten に変更し、Property Group は Pose Controls/Torso に、Overwrite Existing を Deltas Only にします。 こうすると自動生成された pPBMlBreastsFlatten モーフを、先ほどエクスポートしたものに変更することができます。

下記は Breasts Flatten Left だけ修正した状態です。

髪の歪みが解消されました

Breasts Flatten ポーズを取らせると左側の歪みが修正されているのが確認できます。 あとは同じ要領で右側や Breasts Hang Forward を修正します。

Genesis 8 Female 用に設定して保存

最後に完成した髪を、Genesis 8 Female 用の Hair として保存します。 Scene ペインで髪を選択した状態で、Edit → Figure → Scene Identification を選択します。

Scene ID

下記のようなウインドウが開くので、Content Type を Follower > Hair に、Preferred Base を /Genesis 8/Female にします。

Scene ID

次に File → Save As → Support Asset → Figure/Prop Assets から保存すれば終了です。

髪をフィギアとして保存

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