コイカツ MOD制作
MOD制作のお供。これさえあれば、Unity開発知識がなくても、わりかし簡単にMODを作成することができる魔法のフリーウエア。しかしながら制作者様は海外の方っぽく、英語IFかつ、微妙にコピーできたりできなかったり、操作方法も結構、癖がつよい。よく使い方が分からず、MOD制作を断念したビギナーも多いと思う。
かく言う筆者もかなり独学操作なので、実はこういう使い方があるという情報あれば、是非もなくアドバイスをもらいたい。
あと余談ではあるがSB3UはSexy Beach 3 Utilityの略で、セクビ3以後、後続のイリュゲーに対応し続けてきた歴史があったりする。
2023/08/04 @88escargot
今日のお話は、「ZIPMODやabdataフォルダ配下のファイルについて一通りわかる人」向けです。
SB3Uの最新版はGoogleで「SB3UGS latest」と検索、Giteaの作者様投稿より入手可能。本記事投稿時v23.1
STEP01 SB3Uでunity3dファイルを開く
STEP02 unity3dファイル間でのデータファイルのコピー/ペースト、データファイルのデリート/リネーム
閑話:Animatorデータのコピペについて
STEP03 画像・テキストデータのエクスポート/インポート
STEP04 ワークスペースを使ったAnimatorデータ間のコピペ
閑話:MonoBehavoirとオブジェクトパスについて
STEP05 Animatorデータ内のメッシュデータをblender用にエクスポート/インポート
わたしも専門的なところは不明瞭ですが、unity3dファイルはいわゆるコンテナファイルというもので中にいろんなデータが入っている理解をしています。SB3Uの左側のエリアでは、unity3dファイルの中に格納されている各データファイルをブラウジングすることができます。
データ種別ごとにブラウジングのタブが分かれていて、ざっとこんな理解です。
STEP1のブラウジングエリアでできることとして、コピペとデリート/リネームが可能です。これによって、unity3dファイル間のでコピペができます。ただし、Unityバージョンが異なるunity3dファイル間だとコピーできるものとできないものがあります。
端的には、SB3U上で、Animatorデータとシェーダーは「無印のunity3dファイル」と「サンシャインのunity3dファイル」間でコピーできません。このあたりがサンシャインデータで無印にも対応したMODを作るのが面倒な理由です。
それで、MODをつくったときに、unity3dファイル内に不要なデータは入れたくないですよね。適当に画像のみかリストのみのunity3dファイルを探して、いらないものを全部消してから、改造元になるAnimatorデータをコピペする。というのがMOD作りのスタートです。
閑話:Animatorデータのコピペについて
SB3Uでは一度開いたデータは太文字でブラウジングエリアに表示されます。Animatorデータをダブルクリックすると3DCGデータに関連付けられたマテリアル、シェーダー、各画像ファイルにMonoBehavoirも開くことになり、ブラウジングエリア上、太文字に変わります。
この事象から何が言いたいかというとAnimatorデータをコピーすると関連するマテリアル、シェーダー、各画像ファイルも一気にペーストできるということです。
このため、MOD作りの1stステップとしては、適当な画像かリストのみのunity3dファイルからいらないデータを抹消し、元ネタになる公式衣装のAnimatorをコピペすることをお勧めします。
注意点として、3DCGデータに関連付つかないMainTexture※とBodymask類は別途個別にコピーします。Animatorデータを開いた後、太文字になっていないこれらのテクスチャをピックアップしてコピペするのが楽です。
※MainTextureは、マテリアルに埋め込むこともできますが、埋め込まれていない衣装も多いですので、元ネタ衣装によって要注意。
閑話休題。画像とテキストファイルについては、ブラウジングエリアからエクスポートとインポートができます。それぞれちょっとしたテクニックがあるので少し補足します。
・画像…DXT形式なので.ddsという拡張子のファイルで書き出されます。GIMPのVer2.10.10以降ではデフォルトでdds読み込みプラグインが入っているようなのでGIMPで開いて、PNGなどにエクスポートするとPhotoshopなどでの編集が楽です。DXT形式ddsファイルに戻す方法ですが、GIMPでもできるかもですが、わたしはNvcompressFrontEndというフリーウエアを使っています。動作も軽く、きれいに変換できます。あと、DetialMaskとNormalMapについて、わたしはマテリアルエディタをプレビュー代わりにして、調整しているのですが、マテリアルエディタでエクスポートインポートした際のPNGと上記unity3dファイルからエクスポートしてGIMPでPNGにしたファイルとレベル中央値が異なります。具体的にはレベル中央値を0.44に補正する必要があります。このレベル中央値の違いについてずっと謎でしたが、ふと前回書いたNormalMapでのレベル中央値が変な問題と同じかもしれないことに気が付きました。
・テキスト…エクスポートする前にブラウジングエリアでダブルクリックして該当テキストをSB3U上で開いてください。おそらく、これしないとデコード前のバイナリデータとしてテキストがエクスポートされます。ZIPMODではCSVファイルのままリストが作れますが、ハードMODだとリストをunity3dファイルにインポートしなおす必要がありますので、たまに使います。ZIPMODでのCSVファイルもそうですが、文字コードがUTF-8のCSVファイルなのでわたしはCassavaというフリーウエアで編集しています。なお、このフリーウエアでファイルを読んだ後は必ず文字コード指定再読込でUTF-8を指定してあげてください。
Animatorデータをダブルクリックで開くと、ツリー上のデータ閲覧が可能です。Expand Allを押すと一気に全部ツリー展開されるので筆者はとりあえず、Animatorデータ開いたら、Expand All押しています。技術的な話はよく分かりませんが、衣装やアイテムなどの定義(MonoBehavoir)、ボーン構造、ポリゴンデータ(SlinedMeshRenderまたはMeshRender)、マテリアル定義、テクスチャデータが上から順にざっとある感じです。
ToolsにあるWorkspaceを押すと、ブラウジングエリアにワークスペースができます。Animatorツリー上にあるデータはこのワークスペースにドラックして、別のAnimatorデータへペーストすることができます。ただし、肝心のポリゴンデータだけはペーストできません。ワークスペースは直感的なので、初心者MODDERは、STEP2のコピペがよくわからず、「ワークスペース、これ使えるじゃん」と一喜し、「肝心のポリゴンはコピーできねえじゃん」と一憂するのです。
MOD作りが慣れてくると、正直、マテリアルとテクスチャはSTEP2のコピペのほうが楽です。また、ポリゴンの移植はSTEP5で話すエクスポート/インポートで代替できます。ワークスペースでしかできないこと、ワークスペースは、主にMonoBehavoirのコピー(移植)に使います。
閑話:MonoBehavoirとオブジェクトパスについて
本解説にたびたび出るMonoBehavoir。技術的なことはわかりませんが、いわゆる定義ファイルというものです。代表的なものは衣装定義のChaClothesComponentです。この衣装の色指定マップはどのメッシュ(ポリゴン)に対応しているかとか、色指定マップのデフォルト着色は何色かとか、オプションでONOFFするゲームオブジェクトはどれか、袖オプションで切り替えるゲームオブジェクトはどれかといったようなの定義がされています。アクセサリーやスタジオアイテムはまた別の定義書があります。また、スカートなどのダイナミックボーンの定義などもMonoBehavoirです。MODには追加のMonoBehavoirで定義するものもあり、nakay氏のblendshapeや肌色追従MODは独自のMonoBehavoirがあり、これを作っているMODのAnimatorデータに入れ込むことで発動します。
MonoBehavoirではポリゴンなどを指定する際にオブジェクトパスを求められます。なお、オブジェクトパスという用語は今、適当に書いている便宜上の用語で、技術的な正式名称は存じ上げません。このオブジェクトパスは対象のオブジェクトを選択してCTL+Pでlog欄に表示されます。この値をコピーしてMonoBehavoirにペーストしましょう。
では、今日の本題。ポリゴンメッシュデータのエクスポートとインポートです。エクスポート自体は簡単ですが、ちょっとポイントがあり、All Bonesを指定しておかないとblenderでウエイト設定するときに困ります。formatはFBX 2020.3.1で、Exportボタンを押すだけでblenderで読み込める形式に書き出せます。
blenderでの編集はまた別の機会に書けたら書きますが、ここでは、わかる人向けのポイントを書きます。blenderで読み込むときに100倍にして、書き出すときに100分の1(0.01倍)にすること。あと、原点をずらした場合は、SB3Uのメッシュデータの上のフォルダに対して、位置補正値を入れておくこと。公式衣装もまちまちですが、足元に原点がある場合とお腹に原点がある場合があって、1.1435m補正が入っています。なんか大幅にずれるときは+1.1435か-1.1435をY補正値として入れておくとよいです。
さて、blenderで思うがままに編集した後はblenderでFBX形式に書き出して、SB3UにD&Dします。そうするとワークスペースに似た感じでブラウジングエリアに読み込まれます。ここで重要なことはメッシュデータをインポートしたいフォルダ名とblenderから書き出したファイル名を一致(たぶん前一致でいいけど、筆者は完全一致にしています)させることです。これが、筆者が初期にインポート出来たり出来なかったりで悩みまくった仕様です。理屈は知りませんが、名前が一致していれば、経験上、確実にインポートできます。
インポートしたら、このボタン押してください。位置が微妙にずれているのを修正します。特に乳首まわりはボーンが特殊なのでこのボタン押さないと経験上、バグります。
あとはマテリアル情報が飛んでいる場合があるので、プルダウンでマテリアルを指定してください。マテリアルの詳細はAnimatorデータでマテリアルを選択して、編集できます。MaterialEditorとほぼ同じノリですが、選択できるシェーダーは該当のunity3dファイル内にあるものだけです。たぶん、MaterialEditorで選択可能なシェーダーはunityバージョンが一致していれば、移植可能だと思いますが、MODシェーダーを作ってくれている作者様への敬意をもって、MOD配布予定がある場合は、公式シェーダーのみにしましょう。
あと、materialEditorで使っている機能として、影のONOFF関連はこのボタン押すと設定できます。色々設定できますが、影以外の動作はよくわかりません。それと、メッシュのEnable状態がMaterialEditorでONOFFできるデフォルト値になります。
あとは、、、頑張ってみてください!
—————
更新履歴
2023/08/04 公開
2023/10/06 ステップ5 エクスポートオプションを修正
—————
今回のお話でわかったコイカツ機能はごく一部。
コイカツでできること。それはまだ・・・・混沌の中。
それが・・・・コイカツ沼!
当サイトの記事は「困ったを完全にサポートするものではなく」、「解決に導く」または「ヒントを与える」程度のものです。よって記事以上のサポートは一切行いませんのでご了承ください。
誤字脱字、内容の間違い等がございましたら各投稿者もしくは管理者のTwitterアカウントまでご連絡下さい。