Cities Skylines IIのMod「Carto」の使い方です。
※また地理空間ファイルの使い方として、「QGIS」ソフトの簡単な説明も行っています。
- 2025年1月11日:初稿
概要
Cities Skylines IIの都市データを、地理空間ファイル形式(Shapefile形式やGeoJSON形式)で出力するアプリModです。
表示・確認には地理データをレンダリングしてくれるソフト(デスクトップアプリやWebサイトなど)が必要です。
著名なレンダリングソフト/サイトとしては、以下のものがあるようです。他にも多数あるようですが、GISの世界は広く深いため実際に試してみた下記を記しておきます。
- 妥協のない空間 · QGIS Web サイト:
- 無料のWindows/Mac/Linuxデスクトップアプリ。スクショはQGISで撮影されたものです。
- mapshaper:利用無料のオンラインビューワー。GeoJSONとShapefileサポート
- サイトを開いてGeoJSONフォルダ(\AppData\LocalLow\Colossal Order\Cities Skylines II\ModsData\Carto\GeoJSON)のファイルをすべてドラッグ&ドロップした後、画面上部の▼でダイアログを開いて一番上の「Layers」の眼のアイコンをクリックすると描画されます。
※上のスクリーンショットはQGISで撮影されているようです。この様な画像を作りたい場合、下に「QGISでの読み込み手順」を記載しましたので参考にしてください。特に初めは結構めんどくさいです。
ただしスクリーンショットでも分かる通り、アプリ/サイト(のスタイル)によっては建物の種類(消防署や飲食店など)なども表示されるため、楽しいのは確かです。また公共交通網についても次のメジャーアップデートで対応する予定だということです。
出力フォルダは、「(ユーザーフォルダ)\AppData\LocalLow\Colossal Order\Cities Skylines II\ModsData\\Carto」
オプション
- 出力形式:Shapefile/GeoJSON/GeoTIFF(Int16/Norm16/Float32)形式
- 緯度経度指定あり
- 出力オプション:
- Area(CS2地域):オンオフ可能
- Building:オンオフ可能
- Network:オンオフ可能
- POI(point of interest):オンオフ可能
- (Terrein):強制選択
- (Water Bodies):強制選択
- Zoning:オンオフ可能
- その他「高度な設定」ありで以下選択肢が登場する。個別にチェックオンオフができる
- SelectFeature「Area」 ※地区
- SPATICLE FIELDS:Edge
- NON-SPATICLE FIELDS:Area/Center/Company/Employee/Household/Object/Resident/Unlocked
- SelectFeature「Building」 ※建物
- SPATICLE FIELDS:Edge
- NON-SPATICLE FIELDS:Address/Asset/Brand/Category/Employee/Housuhold/Level/Object/Product/Resident/Theme/Zoning
- SelectFeature「Network」 ※道路や線路
- SPATICLE FIELDS:Centerline/Edge
- NON-SPATICLE FIELDS:Asset/Category/Direction/Form/Height/Length/Object/Width
- SelectFeature「POI」 ※建物や交通機関の停留所などの標識の位置
- SPATICLE FIELDS:Location
- NON-SPATICLE FIELDS:Address/Category/Object
- SelectFeature「Terrain」 ※標高
- SPATICLE FIELDS:Elevation/World Elevation
- SelectFeature「Water bodies」 ※水深
- SPATICLE FIELDS:Depth/World Depth
- SelectFeature「Zoning」 ※(RICO)ゾーニングセル
- SPATICLE FIELDS:Edge
- NON-SPATICLE FIELDS:Color/Density/Object/Theme/Zoning
- SelectFeature「Area」 ※地区
その他情報
詳細なWiki「Home · taipei-native/Carto Wiki · GitHub」(英語)が用意されています。
QGISでの読み込みに関するチュートリアル「Tutorial · taipei-native/Carto Wiki · GitHub」が用意されています。※(少しわかりづらかったので)日本語での手順を下記に置いておきます。
QGISでの読み込み手順
0.ファイルの準備
Cities Skylines IIで、「Carto」Modをサブスクライブして、地図データを作製したいセーブデータを開いた上で、「Shapefile」、および「GeoTIFF」ファイルを作成する。下記ファイルができるので確認する。
- シェイプファイル(shape、.shp)
※「(ユーザーフォルダ)\AppData\LocalLow\Colossal Order\Cities Skylines II\ModsData\\Carto\Shapefile」
Area.shp、Building.shp、Net_CenterLine.shp、Net_Edge.shp、POI.shp、Zoning.shp - ベクターレイヤーファイル ※地形/水深データ
※「(ユーザーフォルダ)\AppData\LocalLow\Colossal Order\Cities Skylines II\ModsData\\Carto\GeoTIFF」
Terrain.tif、Water.tif - スタイルファイル ※表示スタイル(カラーリング)
※「(ユーザーフォルダ)\AppData\LocalLow\Colossal Order\Cities Skylines II\ModsData\\Carto\Styles」
Planフォルダ、Streetフォルダ、Topoフォルダ
1.QGISのインストール
- Spatial without Compromise · QGIS Web Siteの「ダウンロード」→「スキップ」→Windows用最新バージョン(3.4.0)をダウンロードする ※ダウンロードサイズ1.2GB
- インストールする ※けっこうかかる
- 起動する
※ここからがQGISでの作業
2.レイヤー読み込み1(ベクターレイヤーの追加)
- QGISメニュー「レイヤ」-「レイヤを追加」-「ベクタレイヤを追加…」
- ダイアログが開くので、.shpファイルのフォルダを指定して開く
※「(ユーザーフォルダ)\AppData\LocalLow\Colossal Order\Cities Skylines II\ModsData\\Carto\Shapefile」 - ハンバーガーメニューからshpファイル(Area.shp、Building.shp、Net_CenterLine.shp、Net_Edge.shp、POI.shp、Zoning.shp)を一つずつ選択して開く(複数選択可能)
※上の「出力オプション」で選択したもの
この時点でQGIS左下のレイヤーウィンドウに6レイヤーが追加されている。この時点では何か赤っぽいレイヤー表示になっているが、スタイル適用前だから正常なので気にしない。
3.レイヤー読み込み2(ラスターレイヤーの追加)
- QGISメニュー「レイヤ」-「レイヤを追加」-「ラスタレイヤを追加…」
- ダイアログが開くので、GeoTIFFフォルダを指定して開く
- Terrain.tifおよびWater.tifを読み込む(複数選択可能)
この時点でQGIS左下のレイヤーウィンドウに6+2の8レイヤーが追加されている。読み込んだ順にレイヤーが上位表示されているので、今は地形に隠れてしまっているがこれで正常。※ちなみにマップはベースゲームの「ウィンディフィヨルド」
ここで一度プロジェクトを保存しておく。
4.レイヤーの並べ替え
- QGIS画面左下のレイヤーウィンドウで、読み込んだレイヤーをドラッグ&ドロップで並べ替える。
- 順番は上から、POI、Area、Net_CenterLine、Net_Edge、Building、Zoning、Water、Terrain
※上の「出力オプション」で選択したもの
5.スタイルの読み込み
要するにHTMLで言えばスタイルシートの適用に近い。今の時点では何か赤っぽいレイヤー表示になっているが、それを上のスクリーンショットの色配置へと変更していく手順。
Mod「Carto」では、現在3種類のスタイルが提供されている。続いて好みのスタイルを個別に適用していく。ちなみに冒頭のスクリーンショットで使われているのはStreet。
1.Plan
2.Street
3.Topo
3種類のうちどれを使うかが決まったら、次の工程に進む。
※この後同じ作業を8回繰り返す必要があるので「(ユーザーフォルダ)\AppData\LocalLow\Colossal Order\Cities Skylines II\ModsData\\Carto\Styles\(スタイル名)」をコピーしておくと楽。スタイル名は、上で選んだPlan/Street/Topoのいずれか。
上で読み込んだ8種類のレイヤーに対して、それぞれのスタイルを順番に一つずつ適用していく。
- QGIS左下のレイヤーウィンドウのうち、「POI」を右クリックし「プロパティ…」を選ぶ
- ダイアログが開くので、ダイアログ一番下の「スタイル」-「スタイルを読み込む」を選ぶ
- ダイアログが開くが何もいじらずに、2行目のファイル欄に先程のフォルダを貼り、右横のハンバーガーアイコンを押し
- 例えばStreetなら、Street~~~と並んでいる「POI」の「(Chinese)」版を選択する。※Chinese版だがきちんと日本語が表示される。
※仮にStreetの場合のフォルダ内容を示す
※試していないので不明だが、恐らくLatin版では日本語箇所が化ける
- 「OK」を押してスタイルを適用する
※少し色が変わる部分がある - 以上の操作を、POI、Area、Net_CenterLine、Net_Edge、Building、Zoning、Water、Terrainのレイヤーすべてで繰り返し行っていく(各レイヤーのスタイル設定をすべて行う)
※Net_CenterLineは、「Network-Centerline-Labels」と「Network-Centerline-Arrows」の2つ。Net_Edgeは「Network-Edge」
※適用するたびに少しずつ色が変わっていく
以上でスタイルが適用され、冒頭のスクリーンショットの様な色配置に変わる。忘れずにプロジェクトの保存をしておく。
※Detailer’s Patch #2で追加された駐車道路が描画されていない。
6.マップ画像の出力
作製したマップ画像を画像ファイルやPDFファイルとして出力する。
- QGISメニューの「プロジェクト」-「インポートとエクスポート」と選ぶ
- 画像の場合は「地図を画像にエクスポート」、PDFの場合は「地図をPDFにエクスポート」を選ぶ
- ダイアログが出るので今表示している範囲なら「キャンバスの領域」、あるいは範囲を選択して出力したいのなら「キャンバスに描画」を選ぶ ※座標が自動で入る
- その他パラメーターを指定して「保存」を選べばファイルが保存される
※地図サイズ(解像度)はデフォルトで96dpiになっておりかなり粗い。現在ではおそらく300~400dpi程度が適当ではないかと思われる。
※何か別ソフトで処理するなり画像ファイル共有サイト(例えばImgurなど)にすぐ貼るなら、いちいちファイル保存せず、左下の「クリップボードへコピー」でも良い。
参考
参考サイト
以上がMod「Carto」を使う上でのQGISの使い方ですが、非常に多機能なソフトであり、とてもここでは説明しきれません。各種説明サイトがあるのでそちらを参考にしてください。
- QGISビギナーズマニュアル(3系) · GIS実習オープン教材:日本語。「GIS実習オープン教材」 として整備されたとても詳しいマニュアル。
- Tutorial · taipei-native/Carto Wiki · GitHub:上記Carto作者によるごく簡単な流れを書いたチュートリアル。最初はこれで流れを掴むほうが良いかも知れません。
ファイルフォーマットについて
Mod「Carto」はShapefileとGeoJSON、およびGeoTIFFで出力できますが、それぞれ以下のような違い(特徴)があります。
- Shapefile:
- 特定の建物を点で示したり、河川や道路を線で示したり、湖沼や森林をポリゴンで示したりできる。基本的に都市建築ゲームであるCities Skylines IIの場合は、こちらのほうが用途に向いているのではないかと思われます。一部バイナリファイルを含むため、扱うには専用のファイルが必要。Esri社提唱のファイルフォーマット。
- GeoJSON:
- 空間データをJSON形式でエンコードするフォーマット。テキストファイルなので幅広いアプリケーションで扱うことができる。「Carto」Modでは、大きい都市になるとShapefileに比べて出力にやや時間がかかる。一般的なソフトではShapefileからGeoJSONへのコンバートも可能なので、Shapefileで出力した後、外部ソフトでコンバートする手もある。
※例えばQGISならば、レイヤウィンドウの各レイヤーの右クリックから「新規ファイルに地物を保存…」-「形式」をドロップダウンするとGeoJSON他の諸形式に出力できる。
- 空間データをJSON形式でエンコードするフォーマット。テキストファイルなので幅広いアプリケーションで扱うことができる。「Carto」Modでは、大きい都市になるとShapefileに比べて出力にやや時間がかかる。一般的なソフトではShapefileからGeoJSONへのコンバートも可能なので、Shapefileで出力した後、外部ソフトでコンバートする手もある。
- GeoTIFF:
- TIFFフォーマットに地理参照情報を埋め込んだイメージファイル形式。特に地形にフォーカスした情報を得意とする。Cities Skylines IIではマップデータを作製している方などの場合に使い勝手がありそうです。「Carto」Modでは標高データおよび水深データについてこのGeoTIFF形式で出力しており、以下3タイプを出力可能。
- Int16:標準フォーマット
- Float32:小数点以下の追加情報が含まれるが、出力ファイル容量が倍になる
- Norm16:Int16のデータを正規化したもので、アセットエディタに再インポートできる
- TIFFフォーマットに地理参照情報を埋め込んだイメージファイル形式。特に地形にフォーカスした情報を得意とする。Cities Skylines IIではマップデータを作製している方などの場合に使い勝手がありそうです。「Carto」Modでは標高データおよび水深データについてこのGeoTIFF形式で出力しており、以下3タイプを出力可能。
応用編
地形データを強調したい
上記Streetスタイルでは地形の凸凹が出力されていないため寂しいという場合の方法。主に、Carto側での地形強調データの出力と、QGISでのスタイルの選択が重要になってくる。
※上記0~6の手順を実行したあとの状態を想定。開いていない場合はプロジェクトを開いておく。
- Cities Skylines IIの「Carto」Modの、GENERALタブでExport File Format「GeoTIFF」を選び
- CUSTOM EXPORTタブのSelect Featureで「Terrain」を選ぶ
- 「EXPORT FILES」でファイル出力
※区別がつきやすいようにNamingFormat(出力ファイルの命名規則)を「MapName+Feature」にしておく - QGISに戻り、レイヤウィンドウで、WaterおよびTerrainレイヤーを削除する
- QGISメニュー「レイヤ」-「レイヤを追加」-「ラスタレイヤを追加」で、いま出力したTerrain.tifおよびWater.tifを指定して読み込む
- WaterおよびTerrainレイヤーにスタイルを適用するが、この時Terrainに適用するスタイルが重要になる。
- Topo-Terrain-Elevation-Contoursの場合 ※等高線が強調される
- Topo-Terrain-Elevation-Hillshadeの場合 ※陰影起伏図の様になる
※ここでもDetailer’s Patch #2の駐車道路(小さな診療所左側を上下に走っている)が描画されていない。
- Topo-Terrain-Elevation-Contoursの場合 ※等高線が強調される
番外編)OSM Exportファイルの読み込み
Mod「OSM Export」で出力したosmファイルを読み込んでみる。※単独のデータでは寂しいので、上記「Carto」Modのデータも使う。
- QGISで新規プロジェクトを開き、OSM Exportで作製したosmファイルをドラッグ&ドロップする
- 地形データが抜け落ちているので、それを「Carto」で出力したデータで補う。上記「3.レイヤー読み込み2(ラスターレイヤーの追加)」で行ったラスターデータを指定してGeoTIFFフォルダのTerrain.tifおよびWater.tifを読み込む
- 同様に上記「5.スタイルの読み込み」で行ったようにスタイルを適用する。※ここではとりあえずラスターデータ(地形のみ)適用してみた例
これでも寂しいが、出力している情報量が異なるので仕方がない。やはりQGISを使うのであれば「Carto」Modのほうが(現時点では)優れている。
コメント