概要
この記事ではBlenderやメタセコイアなど3Dモデリングソフトを使用しなくてもCOM3D2でNPRshaderプラグイン対応の衣装を作る方法を解説します。
NPRshaderプラグインは非写実的レンダリングをCOM3D2上で使用できるようになるプラグインです。物理ベースシェーディング(PBR)も使用できます。
主に表示上の質感の圧倒的向上が見込めますが、私は光沢衣装好きとして使用させていただいている面が多いので、この度は光沢衣装の作り方として解説を進めていきたいと思います。
まずは何も考えずmatcapファイルの適用を本稿では行います。
必要なプラグイン・ツール一式
最低限の知識としてMODの導入が可能である、menuファイルやmateファイルの編集が可能な状態であることを前提としています。下記に私が使用しているプラグインやツールをご紹介させていただきますが、こちらが意味不明な場合はもう少しゲームを遊んで理解を深めてからの方が良いでしょう。
・COM3D2.NPRShader.Plugin
今回の主役です。これが無いと何も始まりません。
・AlwaysColorChangeEx.Plugin
通称ACCEexプラグインです。こちらで公式衣装を差分としてコピーしエクスポートするために使用します。
・pngとtexの可逆変換ツール
編集して出力したpngファイルをtexファイルに変更する際に使用します。
後述するmenuとmateの編集ファイルもそうですが、適当ツールまとめに一式入っているかと思います。(私は別の方のも併用しています。)
・menuファイル+mateファイル編集ツール
.mate拡張子と.menu拡張子ファイルが編集できるものを用意してください。
・画像編集ツール
フリーウェアならGIMP、シェアウェアならPhotoshopが必要になります。私はAdobeCCのPhotoshop2020がありますので、そちらで今回は解説を進めます。
今回はテクスチャをいじったりノーマルマップは作らないので、無くても進行可能です。
作業1 NPR対応させたい衣装を選ぶ

本稿ではミニウェディングドレス黒をNPRshaderに対応させ、ツルテカ光沢仕様にしていきたいと思います。
衣装のエクスポート
衣装を選択し、着せた状態でF12を押下してACCexを開き、【ワンピース】 -> 【menuエクスポート】を選択します。

上記画像の①、②、③をそれぞれ編集します。
①は実際のファイル名、②でファイルパスの連動、③はゲーム内で表示させるアイテム名や説明文になります。なんで②をチェックするのかなどは深く考えずにそういうものだと思って進めましょう。

ファイル名の重複やエラーが無ければ保存を押下すると下記のダイアログが表示され保存が完了します。

保存場所はCOM3D2のインストールされているディレクトリの
“D:\COM3D2\Mod\ACC\npr_enameldress_black”
MODフォルダ内のACCディレクトリ以下に指定したファイル名のフォルダに格納されると思います。
これで衣装のエクスポートは完了です。
作業2 NPR用のファイル名に変更

ファイル名の末尾にNPRshaderプラグインで読み込むための文字列を追加します。
mateファイルの末尾
_NPRMAT_NPRToonV2_OutlineTex_
こちらも大体のものは不透過のアウトライン有りなので、上記の文字列を追記すればほぼほぼOKです。
その他透過やカットアウト、発光アニメーションは別の文字列を記述しなければいけませんが、こちらの選択はある程度触った事がある方でないと正確に選べないかと思います。
詳しくはNPRshaderプラグインに付属している下記のファイルを参照して適切なものを選んでください。
- 03_シェーダーについて.txt
- 03_シェーダーについて_正誤表.txt
- 04追加シェーダー_NPRToonV2_について.txt
menuファイルの末尾
作業3 menuファイルの中身のファイル名を修正する

上項で変更したmateファイル名に一致するようにmenuファイルの中身を変更します。
ここは通常のメニューだけでなく、リソース参照しているめくれ(mekure)めくれ後ろ(mekure_back)、ずらし(zurashi)のmenuファイルの中身も同様に変更を行います。
これをやらないと、夜伽や複数メイドでずらし状態になった際に参照ファイルが見つからずエラーを吐くようになります。
menuファイルはこれ以上いじることはありません。修正が必要な場合を除いて開くことはないので、編集ツールは閉じてしまってもOKです。
作業4 matcapファイルを用意する
ツルテカにする過程で一番簡単にそれっぽくできるのがmatcapです。
matcapファイルは球体に質感が描かれたような画像ファルになります。私は主にTiastiさんとなかさんのmatcapを使用させていただいております。
私のは許可を取って自己流に多少改変後、再配布を行っているものです。
ラバー風matcapご紹介

リネームとtex変換
matcapファイルを用意したら、png <-> tex ファイルの可逆変換ツールを使ってpngファイルからtexファイル形式に変換します。
ファイル名は自分がわかりやすければ何でも良いと思います。
MODを配布でもしない限りは何度も同じファイル名を指定することも多いので、管理しやすいようにしましょう。
今回は私が配布しているエナメルセーラーと同じmatcapを使用する予定ですので、私の画像上ではエナメルダブルボタンセーラーm.texとして書かせていただきます。
(実際は別の名前で管理していますが今回は便宜上。)
作業5 mateファイルの中身を修正する
ここが最大の難所になるかと思います。
エクスポートして末尾に文字列を追加したmateファイルの中身を書き換えていきます。

画像は夜勤D様のmateファイル編集ツールを使用させていただいている状態のものです。
ファイル名以外は何もいじっていない段階で開くとこのような感じになっているかと思います。NPRひな形をコピー+リネームしてこちらのファイルの中身を移植していく形でmateファイルを作っていきます。(プラグイン制作者様の説明ではひな形ファイルをリネームして使って下さいと表記があります。)
衣装の凸凹(部分ごとの光の反射具合)を設定するのにノーマルマップも用いますがそちらは後述するとして、下記のものをそれぞれの場所に追記します。
テクスチャ(tex)
_MatcapMap
matcapファイル名
Assets/texture/texture/(任意のファイルパス)
_NormalMap
normalmapファイル名
Assets/texture/texture/(任意のファイルパス)
ファイルパスはツール左下の【挿入】を押下して追加された状態でデフォルトで入っているものでも問題ありません。(今のところ)
(恐らくゲーム起動でMODをロードするときディレクトリの中身全部読んでるからだとは思いますが)
まだノーマルマップは作っていない段階なので、_NormalMapは一度無効(null)の状態にチェックをいれておきます。
カラー(col)
NPRshaderプラグインに同封されている_NPRMAT_NPRToonV2_OutlineTex_のひな形から全部引っ張ってくれば間違いないです。
それぞれのパラメータに関してはシェーダーについてのテキストに詳しく書いてありますのでそちらを参照してください。
とにかく最初は調整よりも先にNPRを適用させることが前提なので追加するだけしてそのままで大丈夫です。
数値(f)
こちらもCol同様NPRshaderプラグインに同封されている_NPRMAT_NPRToonV2_OutlineTex_のひな形から全部引っ張ってきても問題ありません。
自分は基準となる設定を下記のとおり定めていますので、参考にこちらの数値をそのまま挿入していただいても構いません。好みによってあとから修正を加えるだけですからね!
f
_ParallaxShaderToggle
0.0
f
_ParallaxLoopShaderToggle
0.0
f
_ParallaxValue
0.0
f
_FabricDiffuseValue
0.0
f
_OutlineWidth
0.0006
f
_ToonToDiffuseRateValue
1.0
f
_OcclusionValue
0.8
f
_SmoothnessValue
0.85
f
_NormalValue
1.0
f
_RimLightValue
0.02
f
_RimLightPower
1.6
f
_RimLightCustomBlend
1.0
f
_EmissionPower
0.0
f
_EmissionValue
0.0
f
_EmissionCustomBlend
0.0
f
_EmissionHDRExposure
0.0
f
_HighLightValue
1.0
f
_MetallicValue
0.0
f
_MatcapCustomBlend
0.0
f
_MatcapValue
1.0
この数値はゲーム内のNPRshaderプラグインのGUIからスライダーをいじることによってどのパラメータがどんな動きをしているのか直感的にわかるかと思います。
お好みの感じを見つけたらその通りに設定してみると良いでしょう。
また、晴天さんがNPRShaderプラグインのそれぞれのシェーダーについてもっと詳しく記事を作成、紹介してくれています。こちらも是非ご参考ください。
1つ目のmateファイルの記述が完了

全体を画像でみるとこのような感じになりました。色々書き込む項目が多かったですね。
こんな感じの作業を全てのmateファイルにそれぞれ行っていきます。
もちろんモデルデータに対応するマテリアル番号とmateファイルにあわせて、お好みの数値に変える事も必要になってきますがそれは後々。
今回選んだ衣装はレース部分の切り抜き(カットアウト)があるので、もう1つのmateファイルの方はそれ用に編集していきます。
(レースまでノーマルマップ適用してリアルにしたり、matcap使わなくても良いんだよなぁ…って人はそのままで大丈夫です。)
作業6 動作確認

1つ目のmateファイルを上項の通り設定して正常に動作していれば、上の画像のとおり表面だけとりあえずテッカテカになります。
レース部分にあたる2つ目のmateはバニラのままで一切いじっていません。
こだわらないならこのままでも一応使えますし、ノーマルマップまでは無理でも、ここまで成功していれば一歩前進したことには間違いありません。
ここから先程は無効にしておいたノーマルマップを追加して、よりリアルにしていきます。
しかしこれ以上いっぺんに書くと1ページの情報量が多くなりすぎてしまうので、Photoshopを使ったノーマルマップの作成は別記事にまとめようかと思います。
まとめ
今回はとにかくNPR対応の衣装の原型を用意する部分まで紹介しました。
Blender等モデリングソフトが扱えるMOD制作者様なら、ここまででわかればあとは余裕!という感じかと思います。
独学で誰からも教わらず、3D知識が一切無い状態の人間が書いたものですので、過信しすぎずあくまで”こういうやり方もある“程度でとどめていただければ幸いです。
私の配布しているエナメルセーラーもあるので、そちらをいじって各種パラメータの動きを見ていただいても良いかと思います。(せっかくだからぜひ着てSSも撮って欲しい!!)
素晴らしいプラグインやツールの制作者様方に改めてお礼申し上げます。
コメント