2017年11月27日月曜日

【Cities:Skylines】日本風信号機MODとカスタム道路アセットの互換性について(for アセット作者様)

日本風信号機MODとカスタム道路アセットの互換性についてです。

①「信号機スタイル」をカスタム道路アセットに適応させるためには、対応した文字列のいずれかをアセット名に入れる必要があります。
赤文字はデフォルトの道路で使用されている物です。
これらの文字列を入れない場合、グローバルの設定が適応されます。
もしアセット名が長くなりすぎるなどありましたら、次回更新時にMOD側で対応出来る可能性がありますので、個別に連絡いただければと思います。TwitterのDMでOKです。

MOD設定画面での名前:
必要な文字列
Tiny Roads:
Gravel Road/PlainStreet2L/Two-Lane Alley/Two-Lane Oneway/One-Lane Oneway With/One-Lane Oneway
Small Roads(小さい道路):
Basic Road/BasicRoadPntMdn/BasicRoadMdn/Oneway Road/Asymmetrical Three Lane Road/One-Lane Oneway with/Small Busway/Harbor Road/Tram Depot Road/Small Road
Small Heavy Roads:
BasicRoadTL/AsymRoadL1R2/Oneway3L/Small Avenue/AsymRoadL1R3/Oneway4L/OneWay3L
Medium Roads(中くらいの道路):
Medium Road/Avenue Large With/Medium Avenue/FourDevidedLaneAvenue/AsymAvenueL2R4/AsymAvenueL2R3
Large Roads(広い道路):
Large Road/Large Oneway/Eight-Lane Avenue
Wide Roads:
WideAvenue
Highway(高速道路):
Highway
Pedestrian Roads:
Zonable Pedestrian
Promenade:
Zonable Promenade
Monorail(モノレール):
Monorail
Grass(芝生):
Grass(※Medium Roadが含まれる場合は無効)
Trees(街路樹):
Trees(※Medium Roadが含まれる場合は無効)

②信号機Propはデフォルトのものをそのまま使用する必要があります。
MOD付属の信号を直接使用・指定してしまうと、MOD側の更新に伴い信号が消えてしまう可能性があります。また、グローバル設定でもキャッチ出来なくなってしまいます。

③デフォルトの信号機Propを配置変更するだけなら恐らく可能です(未確認)
左側通行の場合は、デフォルトの信号機Propにそれぞれ
Traffic Light 02 Mirror:支柱(街灯)+車両信号+歩行者信号
Traffic Light 01 Mirror:支柱(街灯)+歩行者信号
Traffic Light Pedestrian:歩行者信号のみ
が適応されます。

2017年10月27日金曜日

【Cities:Skylines】Net(道路とか線路とか)のモデルを取り出す(Dumpする)

道路とか線路とかのモデルを取り出す方法です。

2018/04/08追記
もっと簡単な方法があったようです。
Discordにてtokachiさんに教えていただきました、ありがとうございます!
https://www.youtube.com/watch?v=hEidZ_LsTkA

必要なもの
ModTools
Advanced Buildings Editor

①アセットエディタで鉄道駅を新規作成する

この時、左下の「既存の部品・装飾をロード」のチェックは外しておいた方が良いと思います。
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFwTP19gIUi8peX29znq-IjNe-rD9LXfLb8bBV4X2OwfX8vT_hJBkhnHju3nX1flwMiVQKbSBv_LlLbN8zZJUAJXR7eoPTqqaOjpmNUj63tJHAqXaJDIQe1sexNzZXX_CetLpILiP1s6k/

②取り出したいNetを敷く

この時、平地版を取りたいなら平地、高架版を取りたいなら高架で敷くようにします。
ここでは「小さい道路(高架)」にしました。

③セグメントの番号を確認する
 F7でコンソールを開いた後、左上の「Make All Segments Editable」を押します。(1)
そうすると、コンソールに敷いた道路のセグメント番号と名前が出てきます。(2)
ここで出るセグメント番号を④で使います。
複数出てくることもありますが、Typeが同じならどちらでもOKです。


④シーンエクスプローラをたどる
Ctrl+Eでシーンエクスプローラを開き、NetManager>NetManager>m_segments>m_bufferを開きます。
次に、m_bufferの下のStart Indexに0が入っていると思いますので、そこに③で出てきたセグメント番号を入れます(画面右にも出てますが…)
その後、カーソルをEnd Indexに移すとm_buffer[**セグメント番号**]が入力したもの一つになると思いますので、それを開き、続けてInfoも開けます。


⑤シーンエクスプローラをたどる2

④から下にスクロールして、m_segmentsを開きます。
そうするといくつかm_segments[**]が出てきますが、これが道路エディタで表示されるセグメントです。(多分)
 モデル(.obj)はm_segmentMeshに、テクスチャ(.png)はm_segmentMaterialの中にそれぞれ入っていますので、Dumpを押せばImportフォルダに出力されます。


以上です。

2017年4月27日木曜日

【Cities:Skylines】MODを多用しつつ、アセットエディタも使う際に便利かもしれない方法

数週間試したのですが、他の手法を使うより圧倒的に簡単で素早いのでメモっておきます。

1.アセットエディタ使用時にも必要なMOD(※ETSTなど)をローカルのMODフォルダへコピーする
一度ワークショップで当該MODをサブスクライブした後、Steam\SteamApps\workshop\content\255710 でワークショップID※1を検索し、ヒットしたフォルダごと C:\Users\(ユーザー名)\AppData\Local\Colossal Order\Cities_Skylines\Addons\Mods にコピーします。

2.上記で移動したMODのサブスクライブを解除する
サブスクライブしたままだと二重になってしまうので解除します。

3.起動してコンテンツマネージャーで当該MODをオンにする

以上で、準備は終わりです。
アセットエディタを使用する時:起動オプションで-noWorkshopを指定※2してから起動
普通にプレイする時:起動オプションを外してから起動
と使い分けると、MODをオンオフしたのと同じ状態になります。
ローカルに移動したMODの更新を定期的に確認する必要がありますが、根本に関わるMODはそうそう更新がないので大丈夫でしょう。一応、非公開コレクションにまとめておくと確認も楽です。

追記(17/05/06):ワークショップにあるPropをアセットに置く時にも、同様にローカルにコピーしておいてそれを設置すれば-noWorkshopでも問題ないっぽい。

※1 Extra Train Station Tracksでいうとhttp://steamcommunity.com/sharedfiles/filedetails/?id=515489008 ←これです。
※2 Steam>ライブラリ>Cities:Skylinesを右クリックし「プロパティ」>「一般」タブの「起動オプションを設定」

2017年2月14日火曜日

【Cities:Skylines】Steam Workshopに投稿したアセット・MODを更新する方法

英語の手順はあるのですが、日本語ではなかったので。

手順
①更新したい自分のアセット/MODを、ワークショップでサブスクライブする。

②コンテンツマネージャーを開き、①でサブスクした更新したいアセット/MODを見つける。

③「アップデート」ボタンが増えているので、クリック。

④投稿時の画面が出るので、サムネイルの右下にあるフォルダアイコンを押してエクスプローラを開く。

⑤開いたフォルダ>Contentフォルダの中に(アセットの場合は).crp/(MODの場合は).dllがあるので、それを新しい物へ置き換える(=上書きする)。

⑥C:Sに戻り、「アップデート」ボタンをクリックして更新終了。

以上です。

おまけ:1つのワークショップアイテムとして、複数のアセットやPropを公開する。
上記⑤のContentフォルダに複数の.crpを入れておくと出来ます。Propのパックとして公開したり、ModからPropを呼び出す時などは同時に配布出来るのでとても便利です。

2017年1月8日日曜日

【メモ】MODO×Cities:Skylines(MODO 10以降)

いつも通り、間違ってる可能性もあります。ご注意を。
※これらはMODO 10以降での手順です。902以前に比べてワークフローが改善(手動でテクスチャ保存/メッシュを削除しなくても良くなった)されています。

*Cities:Skylinesへのモデルのインポート
上部レイアウトタブから、ゲームツールのレイアウトに移動する。
左側のタブ「出力」にて下記の通り設定する。
 出力ディレクトリ:C:\Users\(ユーザー名)\AppData\Local\Colossal Order\Cities_Skylines\Addons\Import
 出力ファイル:FBX 2013
 出力タイプ:選択を出力(こうすると、そのメッシュの名前でfbxが作成される)
 ↑から↓までのチェック:「ジオメトリに保存」だけ入れる
 サーフェイスリファイニング:「メッシュを三角形化」にしとくと無難?
 ポリゴンパートを保存:チェック?なしで試してない
 これ以降、デフォルトのまま
とりあえず、モデルはこれでインポート出来る。
テクスチャは後述の手順で別途出力する。

*テクスチャのベイクと出力
・ディフューズマップ/スペキュラマップ/*イルミネーションマップ/*アルファマップ/*カラーマップ
まず、シェーダーツリーにレンダー出力を追加する。位置はFinalColorOutput近く推奨。
ディフューズマップ:レイヤー追加>レンダー出力>マテリアル>Diffuse Color
 ※マテリアルのプロパティでの、ディフューズの色の事
 ※出力される画像をsRGBで出力する場合、このレンダー出力の出力カラースペースをsRGBにしておく
スペキュラマップ:レイヤー追加>レンダー出力>マテリアル>Specular Coefficient
 ※マテリアルのプロパティでの、スペキュラ量の事
  数値で直接指定した場合は、Subsurface Color等を使うのが吉?その場合はカラーマップをsRGBにしないといけないはず(未確認)

次に、上部レイアウトタブからゲームツールのレイアウトに移動する。
左側のタブ「ベイク」から「新規レンダー出力ベイクアイテム」を追加。
右下プロパティで、値を下記の通り設定する。
 レンダー出力:↑で追加した、出力したいレンダー出力アイテム
 UVマップ:出力される画像に使われるUVマップ
 出力を保存:チェック
 出力ファイル名称:(出力するメッシュ名)_d or _s
 出力ディレクトリ:C:\Users\(ユーザー名)\AppData\Local\Colossal Order\Cities_Skylines\Addons\Import
「選択をベイク」ボタンを押せば、インポートフォルダに自動で出力される。

*印について
そのものを表すレンダー出力が無いので、何かのプロパティで代用する必要がある。
例えば、イルミネーションマップに「マテリアルプロパティのラフネス」+「レンダー出力のRoughness」のセットを使う等。

・ノーマルマップ
こちらはレンダー出力に代替出来る項目が無いので、テクスチャベイクアイテムを使う。
まず、シェーダーツリーでレイヤー追加>画像>新規画像でノーマルマップとなる画像を作る。
フォルダはImportフォルダにしておいた方が楽。
エフェクトを右クリックし、サーフェイスシェーディング>法線を選択。
何かウィンドウが出てきたら「はい」を選べばOK。

次に、左側のタブ「ベイク」から「新規テクスチャベイクアイテム」を追加。
右下プロパティで、値を下記の通り設定する。
 テクスチャ出力:↑で追加した画像
 UVマップ:出力される画像に使われるUVマップ
 出力を保存:チェック
「選択をベイク」ボタンを押せば、画像に自動で上書き保存される。