HDTに対応していないスカートを揺らす – その2

体型・装備

NieR:Automata by Dint999をHDT-SMPでヒラヒラさせてみました。

手順の一覧

SSE NIF OptimizerでメッシュをSE用に変換します。

SMCO64でテクスチャを最適化します。

各パーツのShapeDataをNifScopeで開き、skeleton.nifというノードを削除します。これが何なのかはよくわかりませんが、HDT-PEに必要なデータなのだと思います。これがあると装備が地面に落ちてしまうようです。

削除は右クリックしてRemove Branchです。

メニューからSpells、Optimize、Remove Unused Stringsを実行します。

メッシュを保存してNifScopeを終了します。

Outfit StudioでShape Dataを開きます。

「Convert: SK CBBE To SSE CBBE」を選んでSE用CBBE体型に変形させます。この時、大きめのパーツはスライダー設定を作るときにSearch Radiusを最大にして、No Target Limitにチェックを入れます。こうしないと、身体から遠い部分がスライダーに追従しないので、変形が不完全になってしまいます。(詳しい手順は防具をCBBE 3BBB化してみよう - 応用編(CBBE LE BodySlide防具)を参照)

ReferenceにCBBEあるいはCBBE 3BBBを読み込み、Weightをコピーしてスライダー設定を更新します。

ブーツはまだ太いので、若干へこました方がいいでしょう。あまりピッタリやるとすぐにクリッピングを起こすので程々にします。Meshesのプロパティで設定するヒールの高さは5.0くらいがちょうどいいです。(ヒールについてはHDTに対応していないスカートを揺らすを参照)

スカートはSimple Skirtの長い方(ミニではない方)からWeightをコピーします。スカートは腰回りまであるので、以下の手順でWeightをコピーしていきます。

  • スカートのShapeから既存のWeightを削除します。
  • CBBEまたはCBBE 3BBBのリファレンスでスライダーを更新します。
  • NPC Spine、NPC Spine1、NPC Spine2だけを選んでWeightをコピーします。この時Search Radiusを最大に、No Target Limitにチェックを入れてコピーします。これで腰回りのWeightを塗れます。
  • メニューのFile、Import、From NIFを選び、Simple SkirtのShapeDataを読み込みます。
  • Simple SkritのスカートをNier Automataのスカートに合うように位置を動かし変形させます。Transform toolをうまく使います。
  • Simple SkirtのスカートのShapeからDress ????? 2~5だけを選んでWeightをコピーします。同じくSearch Radiusを最大に、No Target Limitにチェックを入れてコピーします。これでスカートのWeightを塗れます。Dress ????? 1は選んではいけません。腰のWeightが上書きされて消えてしまいます。

うまくいくと、こうなります。

このように腰回りのWeightが残っていることが重要です。機械的にコピーさせると、既存のWeightから邪魔な部分が自動的に削除されるようなので、コピーの順番を間違えるとスカートの揺れに必要なWeightが消えてしまいます。ですので素体からが先、スカートからが後です。

ゲームの中で実際に着てみる

うまく出来たらこうなります。装備が足元に落っこちる場合は、NifScopeでskeleton.nifを削除できていませんので確認します。

後ろはこうです。

HDT-SMPの調整

Simple Skirtより少し丈が長いので、内側への可動範囲を大きくすると、よりヒラヒラします。

<angularLowerLimit x="-0.04" y="-0.2" z="-0.08" />
<angularUpperLimit x="0.04" y="0.3" z="0.08" />

スカートの途中で角度が付いて折れているような見た目になった場合、Weightのコピーが不完全になっています。Simple SkirtのWeightは上から順にDress 1~5と並んでいて、段階的に動くようになっています。スカートの丈を同じくらいにして、このあたりから揺れ始めるという高さにDress 2のWeightが塗られるようにします。

この装備のスカートのShapeは3つなので、コリジョンで衝突判定を持たせると震えてしまいます。そこでコリジョン同士で衝突判定をさせない設定を追加します。

<per-vertex-shape name="NA_Skirt1">
    <margin>0.1</margin>
    <tag>XingHair</tag>
    <no-collide-with-tag>XingHair</no-collide-with-tag>
</per-vertex-shape>

<per-vertex-shape name="NA_Skirt2">
    <margin>0.1</margin>
    <tag>XingHair</tag>
    <no-collide-with-tag>XingHair</no-collide-with-tag>
</per-vertex-shape>

<per-vertex-shape name="NA_Skirt_3">
    <margin>0.1</margin>
    <tag>XingHair</tag>
    <no-collide-with-tag>XingHair</no-collide-with-tag>
</per-vertex-shape>

クリッピングの修正

面積が多いのでクリッピングを起こしやすいです。衣装を盛り上げるより、素体を削ったほうがいいでしょう。

素体(リファレンス)のShapeを右クリックしてSet Referenceを選び、緑色から白色にかえます。

そうしたら消したい部分にマスクをかけていき、Separate VerticesでShapeを分割、新しく出来た方を削除です。

再び素体(リファレンス)のShapeを右クリックしてSet Referenceを選び、白色から緑色にかえます。

緑色のまま分割するとBodySlideでの表示がぐちゃぐちゃになっておかしなことになります。

とりあえず揺れるようにはなったけど

スカートの動きがぎごちないので調整を続けたのですが、おそらくボーンの数が足りないのだと思われます。複雑な形状をしているので、Simple Skirtの20個では足りないようなのです。Simpleというくらいなのでまっすぐな形のスカートでは足りるのでしょう。

その後、TwitterでSE用BodySlideデータを配布している方がいたので入手してみてみました。ボーンが50個ありました。Weightの塗り方の勉強になりました。

タイトルとURLをコピーしました