アダルトゲームブランドKISSが販売するゲームソフト「カスタムオーダーメイド3D2」の改造wikiです

BlenderでMODを作ったので記録を残すことにしました

ゴール

MODを作ってゲームに読み込ませる

準備

下記をダウンロード、Windowsにインストールする
  • Blender3.x系列(必須。4.x系列はNG)
  • gimp 2.x https://www.gimp.org/ (似たようなことができる他の画像編集ツールでも可)

下記をダウンロード、Blender 3.x系列にインストールする
下記をダウンロード、ゲームにインストールする
  • liveLink 1.1.2 https://github.com/luvoid/COM3D2.LiveLink (BepInExが必要、デバッグのために必要なだけなのでSkip可)
  • NPRShader何処かから見つけてください (Sybarisが必要、NPRシェーダーを適用しないならSkip可)

これ以外にツールは「不要」です

作りたいものを見つける




リンク先:gucci

上記を作る。

名前と名目規則を決める

英語だとevening bagやclutch bagというらしい。今回はclutchBag1とする。命名規則はcamelCaseにする。

モデルを作る

最初に下記を念頭にモデルを作成する。
・頂点数は65536未満にする。これは後述するConverterでmodel出力ができなくなるため。
・テクスチャは1024x1024の大きさでマテリアル1つに対して1つの「単一画像」として作成する。ゲームだとリピート画像は設定できない?ため

モデル画像から大きさを図り、四角形の大きさを指定する。今回は横20x高さ7x幅2



ミラーモディファイアを使って左右対称にしながら、ベベル機能を使って四角形を押したり引いたりして形を作る。鎖は動画を見て作る

【blender2.9】チェーン(鎖)の作り方!配列とカーブで自由自在

小物を取り付けたり、面にマテリアルをつけたりして形は完成


最後にモディファイヤやスケールを適用して形を確定させ、全オブジェクトを統合して1つのオブジェクトの状態にしておく。

ボーンを取り付ける


ボーンや取り付け方は近しいMODから取ってくるのが良い。今回は下記を元にさせていただいた。

ショルダー&ハンドバッグ https://x.com/skfc43/status/1130036614258839552

インポートするとモデルと一緒にボーンがいるのがわかる。


作ったオブジェクトを読み込んだ参考モデルのアーマチュアの下に持ってくる



名前はclutchBag1に変える



この時、画面上に見えているオレンジのボーン(「ポーズ」の下の「clutchBag1.armature」)以外にもオブジェクト側にもカスタムプロパティとしてボーン情報がある。これはmodel出力時にオレンジのボーンから生成できるので不要ではあるが一応コピーしておく。参照モデルを選択した状態でオブジェクトプロパティからクリップボードにコピーを押す。



この状態で作成したオブジェクトのオブジェクトプロパティを開くと貼り付けられるようになっているので貼り付けておく。

頂点グループの設定


作成したオブジェクトのモディファイアプロパティを開き、アーマチュアモディファイアを設定する。オブジェクトには参考モデルから持ってきたボーンオブジェクトがあるのでそれを設定する。ただし今回は小物作成なので効果はない。



次に作成したオブジェクトのデータプロパティを開き、頂点グループがないことを確認する。ここからShiftキーを押して参考モデルのオブジェクトを追加選択する。クイックウェイト転送のポップアップが開くがそのままOKして良い。



頂点グループが追加されたことを確認する。この頂点グループはオブジェクトの頂点集合がどのゲーム内のボーンの支配下に置かれるか決定する。支配下にどのくらい置かれるかはウェイトという値で決定される。オブジェクトを選択した状態で左上からウェイトペイントを選択すると視覚的に確認できる。



今は真っ赤なので、全頂点が支配下に置かれている事がわかる。他にGeometry Nodesで数値的に確認することもできる。



注意点として、いかなるボーンの支配下にも置かれていない頂点、すなわち上記の表の横軸がすべて0の頂点が存在する場合、もしくは4つ以上の頂点グループに所属している場合はluv版Converterはモデルを出力できない。

ここまでできたら参考オブジェクトは削除して良い。以降は作成したオブジェクトを単にオブジェクトと呼称する。

マテリアルをゲーム用に変換する

オブジェクトのマテリアルプロパティを開き、対象とするマテリアルを選択する。CM3D2セクションにある「COM3D2ように変更」ボタンを押す。ポップアップが出るので「トゥーン輪郭線」が選ばれていることを確認し、「基本的にtexファイルを探す」のチェックは外してOKを押す。同様にして全マテリアルを変換する。



ここまででmodelが出力できるようになったはずなので、オブジェクトを選択した状態で、メニューからCM3D2モデルエクスポートを選択し、名前と拡張子を含めないファイル名が同じく「clutchBag1」になっていることを確認してエクスポートする。



この時、標準ではボーン情報を「アーマチュア内プロパティ」から読み込むようになっているが、上の方で参考オブジェクトからカスタムプロパティをコピーしてない場合はアーマチュアを選択する。ローカルボーンが〜というwarnが出るが気にしなくて良い。

テクスチャを変換する


オブジェクトのマテリアルプロパティのCM3D2セクションに戻り、_MainTexの詳細を開く。名前は揃えておく。下記は例
・マテリアル名:clutchBag1Gold.00x
・テクスチャ名:clutchBag1Gold.00x
・テクスチャパス:Assets/texture/texture/clutchBag1Gold.png (読み込み元がjpegでも最後はpngでよい)
・実ファイルパス:xxxxx/clutchBag1Gold.png (テクスチャの名前をあらかじめ変えて読み込む)



「texで保存」を押すと実ファイルパスと同ディレクトリに同ファイル名.texが出力される。

_shadowTexも同様に設定する。ただしもし後でNPRShaderを適用する場合は同じテクスチャを指定して構わない。最後に_RimColorを黒にしておく。3Dビューのシェーディングモードにしてテクスチャが表示されるようになったことを確認したら、他のすべてのマテリアルについても同様に対応する。

mateファイルを出力する


texを設定し終えたら、そのまま同じセクションにあるmateボタンを押す。



他のすべてのマテリアルについても同様に対応する。

アイコンを作る


オブジェクトを選択した状態でレンダープロパティを開く。「CM3D2メニュー用のアイコンをレンダリング」ボタンを押す。ポップアップが出てくるのでそのままOKを押す。画像が作成されているので左上の「画像」から「texファイルを保存」を押す。ファイル名はデフォルト自動でxxx_iになり、命名規則と合わないので変更する。


menuを作る


オブジェクトを選択し、オブジェクトプロパティからCM3D2メニューセクションを開く。1からも作れるが参考にしたMODのメニューを変更したほうが早い。「CM3D2メニューファイルのインポート」ボタンを押して既存のmenuファイルを読み込む。



主にパス名を中心に変更する。気をつけるパス名は下記の通り
・Icon(Small):アイコンを作るで保存したtexファイル名に変更
・Add Item:テスト出力したmodelファイル名に変更
・Material Change:出力したmateファイル名に変更

オブジェクトのアタッチ位置もmenuで指定する。今回は手につけるので下記を手動で設定する


他にもテキストなどを変更した後、「CM3D2メニューファイルのエクスポート」ボタンを押してmenuファイルを出力する。

NPRシェーダー(任意)


マテリアルをNPRシェーダーで描画したい場合は下記の設定を行う必要がある。

NPRシェーダー用のmateを読み込む


ConverterではNPRシェーダー用の項目をUI上から追加できないため、他MODのNPR対応mateファイルを読み込んで加工するのが良い。今回は下記を元にさせていただいた。

Fetish-Shoes-Collection-No.1-Overkness-Boots_RE https://ux.getuploader.com/Saltedfish233/download/...

オブジェクトのマテリアルプロパティを開き、空のマテリアルを作る。「mateから」ボタンを押して上記の参考MODのmateを読み込む




_MainTexを設定する


元にする設定と同じで良い。

_MetacapMapを設定する


テカリをローコストで再現するためのテクスチャ。いろいろな人が公開してくれているので使わせていただく。今回は下記を使った。

【無料・再配布/加工OK】歴代matcap詰め合わせ https://booth.pm/ja/items/3610927



texへの変換やマテリアルへの設定方法は同じなため省略する

_MetacapMaskを設定する


今回は使わないのでxを押して削除する

_NormalMapを設定する


表面の凹凸表現をローコストで再現するためのテクスチャ。実際にモデルが凹凸になるわけではないが適用するとそのように見える。ハイポリの表現をローポリで再現する場合によく使われる。
無料で自由に使えるものがなかったので今回は自作する。gimpを開き、1024x1024の画像を作成する。背景を白、色を黒にして適当なブラシでざっと塗りつぶす。

(ブラシは何でも良い。)


(黒多めで塗りつぶす)


下記のサイトのHightMapに作成した画像を設定して、NormalMapに変換してダウンロードする。
https://cpetry.github.io/NormalMap-Online/



texへの変換やマテリアルへの設定方法は同じなため省略する

NPR用mateファイルの出力


元のマテリアルと同じように「mateへ」ボタンを押して出力するが、ファイル名を本のファイル名+「_NPRMAT_NPRToon_OutlineTex_」にする。この追加する名前はシェーダ名なので他のNPR MODを参考にした場合は別の名前になるかもしれない。またファイル名にはサフィックスをつけるが、出力ダイアログの「名前1」、「名前2」には付与は不要である。

menuファイルの加工と出力


menuのMaterial Changeで指定したmateファイルを今回作ったmateファイル名に変更してmenuファイルを再出力する

modelを出力する


テスト出力した方法と同じ方法で再度エクスポートする。modelファイルの中にはマテリアル情報も含まれるので、マテリアルやテクスチャ名に関して変更をした場合は必ずmateと共に再出力をする必要がある。

ゲームで確認する


ここまでで下記のファイルが揃ったはずなので、同じフォルダにすべて入れてそのフォルダをゲームのMODフォルダに置き、ゲームを起動して使えるか確認する。(このあとBlenderをまだ使うので閉じないでください)
・menuファイル
・modelファイル
・アイコンファイル
・テクスチャファイル
・mateファイル
・NPR用mateファイル(任意)


位置を調整する(Livelinkプラグイン必須)


Blenderに戻りLayout画面でNを押してCOM3D2タブのStart LiveLinkボタンを押す。
ゲームに戻り、キャラクタエディット画面でCtrl+Lを押すとツールが起動する。うまくBlenderとつながるとConnected LiveLinkとポップアップが出る。もしツールを先に起動してBlenderをあとから起動した場合は再度Ctrl+Lを押すことで接続できる。Target slotを元のMODのスロットに合わせる。
再度Blenderに戻り、オブジェクトを修正する。COM3D2タブのSend Modelを押すとゲーム側に反映される。

以上

このページへのコメント

素晴らしい。
記事更新ありがとうございます。

0
Posted by おっ 2024年09月03日(火) 14:50:08 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

どなたでも編集できます