せっかくSubstance Designer買ったんだから何か作ろう。ノーマルマップについても少し。

せっかくSubstance PainterとDesigner買ったんで勉強するだけではなくなんか作ろうと思うんだけど大したアイデアも浮かばず。
とりあえずSubstance Designer作った素材をゲームでちゃんと再現できるかどうか確認しようと思いグラウンドのテクスチャを作ってみました。

ひとまず整理しておきたいのがDirectX用ノーマルとOpenGL用ノーマルの違いについて。
ノーマルマップは簡単に説明するとRGB各チャンネルにこの方向から光があたったらどのように変化するか、というのを描いています。そんで、そのやり方が統一されていなくてアプリケーション毎に違うという非常に迷惑な仕様になっています。
イリュージョン用のノーマルマップの作り方を検索するとやり方が出てきますが、あれはOpenGL用ノーマルを対象としています。Blenderでノーマルマップを作るとOpenGLと同じになるのですが、Substanceは最初の設定がDirectX用になっています。なのでDirectX用をOpenGL用に変換する必要があります。


DirectX用。緑色が凸に対して下側にきます。

OpenGL用。緑色が凸に対して上側にきます。

上の通り2つの違いはGチャンネル(緑色、Y軸)のみで、Gチャンネルの色調を反転させれば相互変換できます。

※これらの情報はネット上だとえらい錯綜してますよねぇ。Rチャンネルも反転させろって言う人もいるし、アプリケーションの仕様が変わったんでしょうか?少なくとも今現在はGチャンネルの色調を反転で問題ありません。

DirectX用ノーマルとOpenGL用ノーマルの違いが分かったのでこれでSubstance Designerでイリュージョンのゲーム用ノーマルを作れます。

最終的にノーマルを出力しているノードにこのようなノードををつなげるだけです。もちろんこれはSubstance Designerじゃなくて画像処理ソフトでもできます。ただ試行錯誤するとなるとノードでやったほうが早いですね。

さて、それではテクスチャを早速テクスチャを入れ替え……
グラウンドのテクスチャはKoikatu\abdata\map\scene\ground.unity3d内mm_koi_map02_yuka02です。
入れ替えて実行!と、ここで思わぬことが発生。

グラウンドのテクスチャはどうもテクスチャとノーマルマップを違う縮尺で設定しているようです。おそらく大きくぼやけたテクスチャでカメラが引いたときの見栄えを、細かいノーマルマップでカメラが近づいたときの見栄えを重要視しているのでしょう。負荷の軽減にもなるのでしょうか?

幸いSB3Uで設定を変えることができそうです。DetailAlbedoMapのScaleがノーマルに係数として利用されていました。おそらくx個並べろっていう意味だと思われます。

ノーマルマップが設定されている場所以外に同じ数を入れました。全部変える必要があるかどうか検証していませんがとりあえずこれで問題ありませんでした。


完成です!
グラウンドというか砂場って感じが強いですしアニメ調のコイカツにあってないような気しますがまあ今回は一連のワークフローが機能するか確かめるっていう意味のほうが強いのでこれで良しとします。

今回作ったグラウンドのテクスチャクリエイティブ・コモンズ・ライセンス
※あくまでテクスチャファイルのみ。自作なので他に使用してもOKです。

コメント

  1. DB-club より:

    はじめまして。
    今更またプレイクラブがやりたくなったのですが、
    当然今からでは必要なMODが全て揃わないため、足りない分は自分で作ろうと思います。

    イリュージョンの他のゲームから、いくつかの衣装を移植したいのですが、
    その方法を教えて頂けないでしょうか?
    調べてみても、具体的な方法が全く分かりません。
    慣れている方なら、どれも3分ぐらいで移植可能らしいのですが。

    あとの詳しい話は、メールでご連絡出来ますでしょうか?

    • stinger722 より:

      プレイクラブのMOD制作については検索するとこちらがすぐ出てきますね。これのここの項目が貴方がしたいことだと思います。慣れれば3分とは言いませんがメッシュとテクスチャがすでにあるわけですから比較的短い時間でできます。しかしながら見ていただいたら分かる通り工程は結構ありますので私が説明するのは骨が折れますし何より先に挙げたページの方が私の説明よりわかりやすいです。

  2. nick より:

    はじめまして
    ここで質問してもよいのか分からないのですが失礼を承知で書き込ませていただきます。
    私はマイクロビキニのMODを作成したいと考えております。
    SB3Uでとある方が作っているマイクロビキニのMODを見てみたところボディに沿った下着のベースのポリゴンがあってそれをアルファでマスクのような形で抜いているような作り方をしているように見えました。
    しかしSB3Uの項目を探してもアルファとなっているであろうイメージは見つかるもののどこに適用されているのかがわからず、試しにExportしてみるとBMPで出力されどのようにして水着や下着を作成しているのかが分からない状態です。
    必ず抜けるマイクロビキニMODを作りますので、下着MODの作り方をどうかご教授いただけないでしょうか?

    • stinger722 より:

      マイクロビキニMODがこれのことだとするとまずSB3Uでy004.unity3dを開いてanimatorタブのp_o_bra_mb01をクリック、それで出てきたテクスチャタブ内にテクスチャがねーじゃん、どれやねん?って話ですよね。テクスチャの指定はlistデータyl004.unity3d内に普通に書いてあります。co_bra_00内のMainTexという列です。
      あとlistデータを見なくてもだいたい察しはつきます。y004.unity3d内animatorタブのp_o_bra_mb01をクリックした後imgタブを見ましょう。するとp_o_bra_mb01で使われているテクスチャが太文字で表示されています。その近くに似たような名前で_tで終わるcf_under_mb01_top_tがありますのでそいつをダブルクリックするとテクスチャタブ内にcf_under_mb01_top_tが表示されるので後はエクスポートして改変してリプレイスすればいいというわけです。