MODの作り方をまとめているサイトがあまりないのでざっと書いておこうと思います。
今回は髪型をプレイクラブのMODから移植してみました。髪型の他にも応用できます。
※掲示板などで得た知識です。自分自身はそれほど詳しくないです。
必要なもの
SB3Utility(リンク先のページでenimaroahとい方が新しいのをリリースしています。)
メタセコイア
下準備 移植したいメッシュと近い形状のBoneが入ったメッシュを探す。
※テクスチャの変更、メッシュの大きさの変更だけの場合はこの工程はいりません。
骨組みとなるBoneは新たに外部から今のところ入れることが出来ないようです。なのでハニーセレクトに最初から入っているBoneを利用します。
今回は髪型を移植するのでcf_hair_b_00.unity3dのp_cf_hair_29_backを利用します。Boneはこんな感じ。
x
ご覧のように四角錐の骨組みがBoneです。このp_cf_hair_29_backは比較的様々なBoneが一緒になっているため今回移植に使う様々なパーツが一緒になった髪型の移植先として最適です。(もっと最適な移植先があるかもしれません)
逆に言うと、細かく分かれている髪型の場合はBoneがバラバラになったものが必要です。
例えば、移植したいツインテールの髪型があったとします。そのツインテールを今回使うp_cf_hair_29_backに移植するとツインテールが直立不動、という事態になりかねません。なので、その場合はハニーセレクトのツインテールに移植します。
①ベースとなるファイルをコピーする
髪型のMODを作りたい場合は髪型を、衣装を作りたい場合は衣装のデータをコピーします。
今回は下準備で探したcf_hair_b_00.unity3dをコピーしました。
後で作るlistファイルでフォルダを指定出来るので自分用のフォルダを作ると管理が楽です。
私はstinger722というハンドルネームなのでILLUSION\HoneySelect\abdata\charaにstinger722modというフォルダを作り、コピーしたcf_hair_b_00.unity3dをcf_hair_b_00ishoku.unity3dにリネームしてフォルダに入れました。ココのファイル名はなんでもOKです。法則性はありません。
あとはSB3UtilityでCABinetを変更して一旦file→save.unity3d
x
②ベースとなるファイルのlistをコピーする
ゲーム内で選択するにはlistで指定する必要があります。cf_hair_b_00.unity3dのlistはILLUSION\HoneySelect\abdata\list\characustom\00.unity3d内にありますので00.unity3dをコピーしてリネーム。①で作ったファイルと全然関係ない名前でも構いませんが後で分からなくなるので管理しやすい名前にしましょう。ここではstinger722mod_hair_ishoku.unity3dとします。
リネームしたファイルの要らない部分を削除しましょう。ここで使うのは後ろ髪リストであるcf_f_hairB_00だけです。それ以外はassets→attention!→removeで削除。次にcf_f_hairB_00を名前変更します。①で作ったファイルに合わせてcf_f_hairB_00ishokuとします。(名前は一緒で無くても動くはずですが後で分からなくなるので一緒にしました。)
cf_f_hairB_00ishokuをダブルクリックするとこのようなリストが出ます。
x
これで①でコピーして作ったファイルを指定するため書き換えます。ガーリーボブ以外を削除しましょう。(これは下準備で見つけたp_cf_hair_29_backを使用するからなので全て書き換えるのであればどれを残しても構いません。)
x
x
texstの編集はapplyを押さないと反映されませんので注意。
③ベースとなるファイルにマテリアルを追加する
ベースとなるファイルにはマテリアル(質感やテクスチャの指定)が入っていませんので追加します。cf_hair_b_00.unity3d内p_cf_hair_29_backのマテリアルはmat_cha_00.unity3d内_cf_M_hairback_29_00です。ダブルクリックすると使われているシェーダー(PBRsp_alphaとUnlit-Alpha)も太文字で表示されるのでそれら3つを選択してAssets→Mark for Copying。cf_hair_b_00ishoku.unity3d(移植先)を出してAssets→Paste All Marked。
x
これでマテリアルが設定できます。_cf_M_hairback_29_00を選択。
x
あとはshaderを設定したいのですがそのままでは設定できないので一旦保存して開き直しします。
x
shaderを設定とテクスチャの設定。
④移植したいメッシュの位置合わせ
※テクスチャの変更だけの場合はこの工程はいりません。
ハニーセレクト用に位置、大きさを合わせます。まず、位置合わせの基準にしたいメッシュをSB3Utilityで出力します。
x
今回は髪型なのでハニーセレクト内のボウズ髪なんかを基準にすると良いと思います。cf_hair_b_00.unity3dのp_cf_hair_bozu_backです。頭のメッシュではなく髪のメッシュで位置合わせするのは頭のメッシュだと位置が違うからです。
メタセコイアで位置合わせ。
位置合わせしたいファイルを読み込んだあとファイル→オブジェクト挿入で基準にするファイルを読み込みます。
範囲ツール、投げ縄ツールで位置合わせするメッシュを選択してから移動、拡大で編集します。
x
SB3Utilityで読み込む際サイズが合わない時がありますのでオブジェクト名の最後に(Scale=1000)[0]と追加しましょう。
x
位置合わせが終わったら基準にするオブジェクトを削除します。
x
移植先のBone用にメッシュを加工します。大きく2パターン。
1、移植先に合わせて複数個に分かれているオブジェクトを統一
例:前髪オブジェクト1+前髪オブジェクト2+前髪オブジェクト3→新前髪オブジェクト
2、移植先に合わせて1個のオブジェクトを複数個に分ける
例:髪オブジェクト→前髪オブジェクト+後髪オブジェクト
この工程が終わったらメッシュをSB3Utility用に変更します。
まず、メッシュを片面化し、面の向きを統一します。
x
この段階で1度保存。メッシュを反転し、名前を変え保存。
X
これで表裏別々のパーツになりました。そうしないとSB3UtilityでNormal(光の反射)の計算をちゃんと出来ないからです。表しかみえないメッシュであれば裏を用意する必要はありません。
⑤メッシュを移植
表パーツのmqoファイルを開いてcf_O_hairback_29_00ドロップ。
X
裏パーツはcf_O_hairback_29_00uへ。末尾のuが裏という意味なのでcf_O_hairback_29_00とcf_O_hairback_29_00uは同じBoneです。表裏のパーツは同じBoneを使っていないと物理演算で揺れるときズレます。
続いてNormalの計算。
x
OKを押す。