コイカツ! くぱぁとかアナル拡張とかできるようにボーンを追加する方法、ボディメッシュ改変方法

カスタムメイド3D2はMODでシェイプキーが使えるので比較的簡単に色々できるのですがイリュージョンのソフトはMODでそういうのは無いんで、じゃあどうすればいいのかっていうのをこれまでずっと考えてきました。
ひとつ案としてあったのがボーンを追加する方法なんですが、知識不足故今までどうやってもうまくいかず、お手上げ状態でした。
今回改めて試したところ成功しましたので記しておきます。

※今回MOD配布はありません。MOD製作者向けハウツーです。
※ボーン追加方法以外にもボディメッシュ改変にも使える内容だと思います。

今回使用しているのはSB3UGS v1.10.2です。現状最新版を使うと(SB3Uのせいか分かりませんが)何故かゲームがクラッシュするのでバージョンを戻しました。

始める前に
MODのベースはオリジナルファイルにした方が良いです。特に、後述のNML計算は法線が崩れたファイルからは直せないようなので気をつけましょう。

SB3U上でボーンを追加する
oo_base.unity3dのp_cf_body_00を開き、ボーン追加したい場所の親になるボーンを選択。
今回はcf_s_anaでやってみました。Createでボーンが追加されます。分かりやすいようにリネーム。
※Blenderでもできますが表示が見づらいのでSB3U上のほうが良いかと思います。
p_cf_body_boneとKoikatu\abdata\studio\base\00.unity3d内p_cf_body_boneも同様。これを忘れるとボーンが動きません。ゲームにはこちらのボーンが使用されます。

ボディメッシュを選んだあと先程追加ボーンを選択しAdd Bone to Selected。これでボーンの追加完了です。

SB3UでエクスポートしてBlenderでインポート

メッシュをエクスポート。

Blenderでインポート。インポート設定はこんな感じ。倍率は100倍。

前行程が成功していると※1のように追加したボーンが表示されます。
ただ、メッシュの頂点グループ(ウェイト設定のデータ格納場所)には追加されていませんので追加して同じ名称にします。大小文字区別あり。

あとはBlenderでの作業です。メッシュを編集したり……

ウェイトを調整したりします。

ボディメッシュの仕様

メッシュの編集時気をつけたいのがメッシュが分割されているという事。この境目をくっつけると乳首や陰毛のテクスチャにいらないものが表示されたり、法線が崩れたりします。

陰毛のUVの展開図です。黄色い丸で囲んだところにボディの全ての頂点が集約されています。なのでメッシュをくっつけるとUV展開図もつながってしまうため余計なものが表示されてしまいます。

編集したメッシュをBlenderでエクスポートしてSB3Uでインポート

アーマチュアの座標のZ軸を-1.1435へ。メッシュではなくアーマチュアの座標です。
画像のようにおへそあたりに原点がきます。

※追記 と、その前に。この後のずらす行程はBlender側でやればいい話でした。
1、ポーズモードで全選択
2、トランスフォームをクリア
3、cf_s_arm01_LをX軸0.000006、Z軸0.00062、cf_s_arm01_RをZ軸0.00059ずらす
(ボーンの位置を見るとわずかにずれているのがわかると思います。それを同じ位置にします)
4、メッシュを選択してアーマチュアモディファイアを適用して消す
5、ポーズモードで全選択して「デフォルトのポーズに適用」
6、再びメッシュを選択してアーマチュアモディファイアをやり直しして表示
この行程でSB3Uでの作業は不要になります。


エクスポートの設定はこんな感じ。

今回はアナルの中を別メッシュで作ってみました。
別メッシュを格納するためには画像のように格納場所を増やします。

開いたメッシュファイルをインポート。

インポートしたメッシュを選択してRest Pose。
Rest Poseで乳首のズレへの対策となります。

このまま終わって全身タイツを着ると腕の後ろがはみ出ますがそれは乳首のズレ対策でRest Poseを押したが故に腕がわずかに後ろにずれているからです。

それを修正するにはcf_s_arm01_L、cf_s_arm01_Rを後ろに下がる分一旦逆方向にずらします。
cf_s_arm01_LがX軸0.000006、Z軸-0.00062、cf_s_arm01_RがZ軸-0.000592です。その後メッシュを選択してRest Pose。
この操作で前にずらした状態が標準の状態になります。

その後、ずらした分を元の0,0,0に戻してApply Changes。
これで腕がずれていない状態になります。
このようにRest Poseは押すタイミングによってはメッシュに変化をもたらしてしまうので注意が必要です
※追記 よく考えたらこのずらす行程はBlender側でやればいい話でした。
1、ポーズモードで全選択
2、トランスフォームをクリア
3、cf_s_arm01_LをX軸0.000006、Z軸0.00062、cf_s_arm01_RをZ軸0.00059ずらす
(ボーンの位置を見るとわずかにずれているのがわかると思います。それを同じ位置にします)
4、メッシュを選択してアーマチュアモディファイアを適用して消す
5、ポーズモードで全選択して「デフォルトのポーズに適用」
6、再びメッシュを選択してアーマチュアモディファイアをやり直しして表示させておく
この行程でSB3Uでの作業は不要になります。

追加したボーンの調整
ここまでの行程が全て終わった時点で追加したボーンの調整を行います。

開いたり閉じたりを一つのボーンでやる場合、開いた状態で入れてないとちゃんと変形してくれません。なので、開いた状態のものをボーンを変化させて閉じた状態にします。
p_cf_body_boneとKoikatu\abdata\studio\base\00.unity3d内p_cf_body_boneも同様の値をいれます。

追加したメッシュにマテリアル設定

既存のマテリアルをコピーしたり、他のunity3dファイルから移植したりしてマテリアルを設定します。今回はテストなので舌のマテリアルをコピーしました。

マテリアルを設定。

胸の影が変になるのを解消するNML計算
※この行程はメッシュの頂点数をいじった場合のみ必要になります。

全てが終わったら保存してファイルを開き直し(大事)、p_cf_body_00を開きMonoB&Other内p_cf_body_00_Nmlを開いてNML計算します。そのあと保存。
oo_base.bak0.unit-y3dが計算元になるようなのでそれがオリジナルファイルでないといけません。要はいらないファイルを事前に消しておくということです。

これで完成!


う~ん、今作はいつみてもケツの造形が素晴らしいんだよなぁ。それはともかく。
GOL(使ってないんで未検証)やShortcutsKoiでオブジェクト表示して変化出来ますし、ABMで数値を入れて保存することも可能です。
造形はテストなんでイマイチですがこういうことが可能である事実のほうが大事なんで。
ゲームプレイも一通りやってみましたがフリーズすることもなく特別問題ないと思います。

最後に色々。
ここまで書いて、個人的にはウェイトペイントが一番鬼門でしょうか。メッシュが分割されているのでそのままだと上手く塗れず、コピーしたメッシュを重複頂点削除で結合したメッシュで塗って、それをオリジナルのメッシュにウェイトコピーする、という作業が必要になると思います。

あとは腹ボテなんかも出来ますが、追加したボーンは当然服には適応されないので服も個別に編集しないと変化しません。あと、マップ上のローポリも同じなのでそちらも編集が必要。
なので現実的には裸の時の変形用途ですね。


アウトラインを上手く表示させるにはこういう構造にしないといけないと思います。
カスタムメイド3D2のくぱぁボディが参考になるかと。

テストファイル(ちゃんと修正していない表示テストファイル。わかる人向け)