Cities: Skylines

Cities: Skylines

Not enough ratings
ModToolsを使ってのアセットの再編集ガイド
By stmSantana
ModToolsを使用すれば、既存のアセット(ゲーム標準の、またはユーザーが作成した)を再編集可能な状態に戻すことが出来ます。
How to reuse Game Models (existing/user assets) with ModTools.
   
Award
Favorite
Favorited
Unfavorite
更新機歴
ModToolsのUPDATE 12 (11/19/2016)に伴い、下記の内容は古くなっています。
(再編集中)
概要
  • ModToolsを使用すれば、既存のアセット(ゲーム標準の、またはユーザーが作成した)を再編集可能な状態に戻すことが出来ます。
  • アセットを3Dデータ(*.objファイル)と各種テクスチャ(*.png)に出力できます。
  • 3Dデータやテクスチャは、3Dソフトや画像編集ソフトで少し加工しないと正常に使えるようにならないかもしれません。
  • (私の乏しい知識では無加工のまま使えないだけかもしれません)
  • ここでは特にテクスチャ加工の手順について説明します。前提としてアセットの基本的な作成知識が必要です。
  • アセット作成の基本的な流れや各ファイルの説明は下記を御覧下さい(ガイド)
English ver.
必要なもの
手順
データの出力
  1. ModToolsをサブスクライブ
  2. ゲーム中に建設済みのビルや走ってる車などのアセットをクリック
  3. 表示されたパネル内にある「dump asset」ボタンをクリック

  4. 表示された確認ウインドウで[OK]ボタンをクリック
  5. ゲームのアセットインポートフォルダ(\Users\ユーザー名\AppData\Local\Colossal Order\Cities_Skylines\Addons\Import)に下記のファイルが出力される
    • YYY.ZZZ.obj
    • YYY.ZZZ_d.png
    • YYY.ZZZ_a.png
    • YYY.ZZZ_c.png
    • YYY.ZZZ_i.png
    • YYY.ZZZ_n.png
    • YYY.ZZZ_s.png
    • YYY.ZZZ_lod.obj
    • YYY.ZZZ_lod_d.png
    • YYY.ZZZ_lod_a.png
    • YYY.ZZZ_lod_c.png
    • YYY.ZZZ_lod_i.png
    • YYY.ZZZ_lod_n.png
    • YYY.ZZZ_lod_s.png
※YYYは数字、ZZZはアセット名

ファイルの説明
・ファイル名が途中でピリオドで区切られている場合、その前の部分(YYY)の数字はアセットのワークショップでの番号です。従って、ゲームに標準で入っている建物や車などをDumpしたものにはこの数字はありません。
・ファイル名の中間にlodと付いているのは、全て遠景用のLOD用ファイルです。
・objファイルは3Dモデルです。
・pngファイルはテクスチャファイルです。
・テクスチャファイル名の末尾(拡張子前)にアルファベットが1文字ありますが、それぞれ下記の意味があります。

メインテクスチャ (_d)
……YYY.ZZZ_d.pngをそのまま利用可能
アルファ (_a)
……(グレースケールだが透過する/しないの2値のみ、白黒しか使わない)
カラー (_c)
……(グレースケールだがカラー適用する/しないの2値のみ、白黒しか使わない)
イルミネーション (_i)
……車両の場合ライトにしたくない場所が50%グレー(127,127,127)。ヘッドライト・ブレーキランプは白、ウインカーは黒。
※建物の場合、光る部分、光らない部分、ランダム点灯窓、がある。光らせたくない場所は明るさを0~255のうちの192になるように明るさを調整する事。詳しくはWiki等。
ノーマルマップ (_n)
……RチャンネルとGチャンネルのグレー部分が(127,127,127)
スペキュラ (_s)
……グレースケール画像
3Dモデルの再編集
Dumpされたobjファイルを3DソフトにWavefront(.obj)としてインポートする。

↑BlenderでインポートしたらY軸が反転していた……失敗?
とりあえず、ソフト上で再反転させて問題は回避した。

後は通常の操作で編集可能。

車に新しいパーツを増やしたり、4階建てビルを40階建てにしたり、自由に編集できます。
ポリゴンをいじると、もちろんテクスチャがズレてくるので注意。
最後に、FBX形式でエクスポートする。
アセット作成
加工後の3DモデルデータとテクスチャをImportフォルダに入れる
ゲームのアセットエディタで新規アセットとして読み込み、編集し、保存する
現在の問題点
・アセットを再利用する時、元のデータとDump出力後のテクスチャが異なる
ゲーム中で既にノイズが出ていたりするので、ModToolsのエクスポート時ではなく、アセットをエディタでインポートする時にテクスチャが圧縮される為か?

圧縮?ブロックノイズ
  • ブロックノイズを引き起こし、細部が荒くなる。

明るさが変更される
  • また、MainTex以外のテクスチャはどれも明るさが変更されてしまっている。
    そのため、再利用する為には画像の明るさを修正する必要がある。
    ただし色は既にトーンジャンプして失われているので完全に戻すことはできない。

  • ↓元画像

  • ↓ModToolsでdumpしてカラーチャンネルから取り出したもの

  • ↓それを反転したもの
[/strike]

上のグレーグラデーションにもノイズが出ているのが見える。


  • ↓反転したものが、階調の順序は戻ったが元画像より暗い。つまり元に戻すには、
    反転後に明るくするか、暗くしておいてから反転するか、どちらかになる。
  • [/strike]
    どれくらい明るさを変えれば良いのか、トーンカーブは曲線か直線か、申し訳ないが私の分析力ではよく分からない。
    個人的には今のところ完全に再現するのは元々階調が跳んでるせいで無理なので諦めている。

    [/strike]

    • 建物の場合のイルミネーションマップ(*_i.png)注意点
      建物の場合、光らせたくない場所は192でなければならない。
      ModToolsで出力後のファイルは明るいので暗くしよう。

      また、車ならヘッドライトやブレーキランプが白でウインカーが黒、車体は127にする。

    • ↓光らせたくない場所なのに225になってしまっている。これをそのまま再利用してはいけない、建物全体が窓のようにランダム点灯してしまう。

      ↓192になるように明るさを下げた。

      ↓白い部分(ランダム点灯窓)まで暗くならないようにトーンカーブを使った。

      ※上画像のノイズと書かれた部分は後述。

    • 参考:建物のイルミネーションマップの値についてのガイド
      http://gtm.steamproxy.vip/sharedfiles/filedetails/?id=524027632


    ノイズについて
    圧縮ノイズ(?)はチャンネルごとに圧縮されるわけではなくRGBチャンネルを合成した1枚の画像ファイルとして圧縮されノイズが発生する為なのか、他のチャンネルの線からのノイズが表れることになる。
    つまり、_aci.pngの場合、c(カラーマスク)の線の影響で表れるノイズがi(イルミネーション)でもノイズとなって表れる事がありえる。

    (例)aciファイルの色境界に表れたノイズ
    • aci画像、色の境界を調べると……

    • 色の境目付近のカラーがわずかに変色している

    • そのため、Bチャンネル(イルミネーション)で不必要に暗くなった部分ができている

    • ただしこの画像では、この部分は建物に貼り付けられないUVメッシュ外の部分なので気にしなくても良い。

      モデルやテクスチャのUVの貼り方によって影響が出ることもあるだろうから、そのような場合はよく確認して不必要な変色部分は適切なカラーで塗りなおしておく事。
    テクスチャの加工(過去のModTools版)
    ・テクスチャファイルの抽出(過去のModTools版)

    【このセクションの内容は全て古いバージョンのModToolsのものです!現在は必要ありません!読み飛ばして下さい】

    ModToolsが出力するテクスチャファイルは3つあるが、MainTex以外は画像編集ソフトでカラーチャンネルを編集して抽出しなければいけない。
    *_aci.png……アルファ、カラー、イルミネーションを含む
    *_xyz.png……ノーマルマップ、スペキュラを含む


    メインテクスチャ(_d)
    YYY.ZZZ_Data_MainTex.pngをそのまま利用可能

    アルファ(_a)
    YYY.ZZZ_Data_aci.pngのRチャンネルをグレースケール画像として保存し、明るさを少し下げ、色反転する
    (グレースケールだが透過する/しないの2値のみ、白黒しか使わない)

    カラー(_c)
    YYY.ZZZ_Data_aci.pngのGチャンネルをグレースケール画像として保存し、明るさを少し下げ、色反転する
    (グレースケールだがカラー適用する/しないの2値のみ、白黒しか使わない)

    イルミネーション(_i)
    YYY.ZZZ_Data_aci.pngのBチャンネルをグレースケール画像として保存し、明るさを少し下げる
    ※明るさの編集…‥車両の場合ライトにしたくない場所が50%グレー(127,127,127)になるように明るさを下げる。ヘッドライト・ブレーキランプは白、ウインカーは黒。
    ※建物の場合、光る部分、光らない部分、ランダム点灯窓、がある。光らせたくない場所は明るさを0~255のうちの192になるように明るさを調整する事。詳しくはWiki等。

    ノーマルマップ(_n)
    YYY.ZZZ_Data_xyz.pngのRチャンネルとGチャンネルの明るさを少し下げ、Bチャンネルを真っ白にし、カラー画像として保存する
    ※明るさの編集……RチャンネルとGチャンネルのグレー部分が(127,127,127)になるまで明るさを変える。


    スペキュラ(_s)

    YYY.ZZZ_Data_xyz.pngのBチャンネルをグレースケール画像として保存し、明るさを少し下げ、色反転する


    ・加工まとめ


    Dumpで出力されたテクスチャのサンプル
    • メインテクスチャ

    • aciテクスチャ

    • aciのa=アルファ(Rチャンネル)

    • aciのc=カラー(Gチャンネル)

    • aciのi=イルミネーション(Bチャンネル)


    ・テクスチャの再編集
    加工が終わった画像を自由に編集する

    ノーマルマップがBチャンネル(Z軸)を使わない
    通常ノーマルマップはRGBに法線のXYZ軸を当てはめたものになっているが、Cities:SkylinesではZ軸にあたるBチャンネルは用意しても使われない(RGB揃ったノーマルマップをアセットインポーターに読み込んでもその段階でカットされてしまう)。