2023年6月26日、「Cities: Skylines II」開発日記#2が公開されました。本記事ではその内容を紹介します。今回は交通AIについて。本体リリース前の開発日記です。
開発日記
開発日記#2は、交通AIについて。
- 都市の交通管理は「Cities: Skylines」の中核であり、続編ではより高度なシステムにしたいと考えた。これは長年寄せられたみなさんからのフィードバックに対応するためであり、都市をよりリアルで生き生きとしたものにするためだ。
今回も開発日記の動画版が掲載されています。
前作との違い
- 「Cities: Skylines II」の経路探索は前作とは異なる。前作では近接性によって経路探索が行われ、移動する主体は既存の道路網を考慮せず直線距離で目的地への経路や利用するサービスを決めていた。火災が発生した場合、消防署から目的地までの道路の問題でより長い経路になる場合であっても、消防車は最寄りの消防署から出動する。移動する主体は目的地までの最短経路をとり、渋滞が発生してもその経路に固執する。経路を変えるのは道路網が変更されて元の経路が使えなくなった場合のみだ。
- 「Cities: Skylines II」では経路探索コストに基づいて経路を選択する。このコストは都市の道路網・移動時間・移動コスト・移動する主体の好みといったさまざまな要素から計算される。詳細は後述する。さらに、移動する主体は経路上のできごとによって経路を調整する。交通事故や停車中のサービスカーを避けるために車線を変更したり、緊急事態に対応する車両のためにスペースを開けたりする。
経路探索コスト
- 経路探索計算の核となるのは、時間・快適性・費用・行動の4つの要素だ。すべての主体は目的地までの最短経路を求める傾向があるため、他の要素も影響するとはいえ、通常は時間がもっとも重要だ。移動時間だけを考えた場合、小さな道路は短くても速度が低いため、高速道路のほうが早いルートなら移動する主体はほとんどの場合で高速道路を使う。
- 快適性にはできるだけスムーズな経路を計画すること、不必要な交差点での右左折を回避すること、適切な駐車場や公共交通機関を降りる場所を見つけることが含まれる。快適性は選択肢ごとの経路探索コスト全体に加算される。
- 費用は経路選択時に燃料使用量や潜在的な駐車料金の形で算入される。市民は移動・駐車費用を考慮し、他の移動手段や徒歩と比較してどの選択肢が迅速・快適・安価かを判断する。配送車の場合、配送する資源のコストは遠くに配送するするほど高くなるため、資源や商品をその地域で販売するほうが、外部に運ぶより配送コストが安くなり、企業にとってはコスト効率が高まる。
- 行動はUターンのような交通における「危険な」決断をする移動主体の意思を指す。市民と配送車は経路探索コストを低下させるための危険な決断をする可能性が低いが、緊急車両は緊急時に必要に応じて危険な経路探索を行えるような、より寛大な行動モデルを持っている。
- 経路探索は移動者の年齢も考慮する。10代にとってもっとも重要な要素は費用であり、安価な選択肢を求める。大人は時間を重視し、通常ならもっとも迅速な経路が大人にもっとも適している。高齢者は高い快適性を好み、快適性コストが低い選択肢を選ぶ傾向にある。
- 市民は意思決定をするときにすべての経路探索の要素を考慮し、全体としてもっとも経路探索コストの低いものを求める。サービス車両は全体的な経路探索コストが最小のものを元に出動し、新たな出動命令が出ると現在および近い将来に適用されるすべての距離が考慮される(例えば道路維持サービス車両が道路セグメントの補修を命じられた場合)。このシミュレーションでは現在利用可能なすべての車両がどこにいて、現在の命令で彼らがどこに向かっているかをチェックする。現在の出動命令を終えてすぐにある場所の近くに向かっている車両がある場合、現在近くにいる別の車両が新たな出動命令に選ばれないこともある。
- 資源輸送は距離が遠いとコストが上がるため、企業はできるだけ近くに輸送しようとする。資源や商品の市外への輸送はコストがかかり、企業の収益性を大きく低下させる。
車線の使用
- 「Cities: Skylines II」では車両がより多くの車線を使用する。車両はできるだけスムーズに通行できるように道路利用を最適化し、目的地まで移動するのに利用できるすべての車線を使う。つまり、多車線道路の1車線が信号待ちの車で埋まっている場合、交差点に新たな車両がやってきたときには交差点を均等に埋めるために他の空いている車線を選ぶ。
- 多車線道路ではシミュレーションがある車線の利用率が低いことに気づくと、車両が遅い車両を追い越すようになる。また、交通事故・渋滞・患者を搬入している救急車などの停車中の車両によって車線が完全にふさがれるのを避けるためにも車線変更を行う。さらに、車両は可能なら他の車線に移ることで緊急車両のためのスペースを確保しようとする。
交通シミュレーション・主体・パフォーマンス
- 「Cities: Skylines II」のすべての車両と歩行者は経路計算に加えて、常に近くにいるすべての移動主体を考慮しながら移動する。移動する主体は経路の決定とは別に、移動中に何度も流れに影響する決断を行う。つまり、交通状況に合わせた加速、減速のためのブレーキング、方向転換時に対向車を回避すること、交通の流れを最適化するために車線を替えること、交通事故などの予期せぬことが経路上で発生したときの経路の再探索などだ。
- 移動する主体の判断に影響する機能が増えたため、計算はより多くなるが、経路探索やシミュレーションなどの計算にはマルチコアCPUの利用可能なすべての処理能力を利用するため、全体的なパフォーマンスは向上している。
- また、「Cities: Skylines II」では都市内を移動する主体のハードリミットはない。全体としてシミュレーションと経路探索のパフォーマンスは大きく改善しているため、より多くの人口を持つことができる。シミュレーションの実質的な限界は、ゲームを実行するプラットフォームのハードウェアの制限だけだ。
ラウンドアバウトの挙動
- 交通シミュレーションではラウンドアバウトへの進入と退出に関するルールも考慮されている。ラウンドアバウトに進入する車両は既にラウンドアバウトにいる車両に道を譲るが、現実と同じように機会があれば既にラウンドアバウトにいる車両の前に割り込むこともある。これは直前の車線変更や交差点のすり抜けによって常に交通の流れを改善する、移動する主体の挙動の一部だ。
交通事故
- このゲームでは車両が通行するものや建物に衝突する交通事故が発生する。事故発生率は道路セグメントごとに計算され、道路状況・照明条件・天候・災害などで上昇する。道路維持サービスや街頭の設置で道路を良好な状態に保つのは、事故発生率を下げる優れた手段だ。
- ある道路セグメントで事故チェックが成功するとそのセグメント上の車両がランダムに選ばれ、「制御を失い」、障害物にぶつかる。事故現場は警察によって安全が確認され、道路整備によって通行可能にされる必要がある。シミュレーションは事故の影響を受けた車線の交通を停止し、車両は道路が通行可能になるのを待つ。事故が重傷者を出すほどひどい場合は救急車もやってくる。事故現場の開通までに渋滞が長時間発生した場合、移動する主体は経路を再計算し、「危険」な行動をとったり、Uターンすることもある。
駐車場
駐車場にはさまざまなサイズがあり、立体駐車場や地下駐車場もある。
- 移動する主体は経路探索の際に利用可能な駐車場を考慮する。通常なら移動する主体にとってもっとも快適性の高い選択肢は目的地の敷地内に駐車できることだ。それができない場合は、別の駐車場か別の交通手段を選ぶ。駐車場がない場合、市民は買い物やレジャーに別の場所を選ぶようになる。
- 市民の年齢層は移動について異なる好みを持つが、これは駐車場にも影響し、高齢者は駐車料金にかかわらず目的地の近くの駐車場を選ぶ可能性が高く、大人は最短経路上の駐車場を選び、10代は長い距離を歩いたり、他の交通手段を使ってでも安い駐車場を選ぶ。移動する主体の駐車場選択と経路探索のコスト計算は、個々の駐車場や建物に設定された料金やその地区の路上駐車料金の影響を受ける。
情報画面
交通流と交通量を切り替えて道路網の状況を確認できる。
- 「Cities: Skylines II」では交通状況を把握し、問題に素早く対応するため、交通情報画面と道路情報画面がある。交通情報画面は都市全体の交通流と交通量を表示し、渋滞している道路は赤く表示されるため、道路網の問題箇所を認識しやすい。交通流は市内の交通がどれほどスムーズに流れているかを示し、数値が高いと渋滞が発生していないことを意味し、数値が低いと潜在的なボトルネックになることを示す。交通量は1日のさまざまな時間帯にどれだけの車が道路網を走っているかを示す。交通量が多いのはラッシュアワーを示している。
- 道路情報画面は道路状態・交通流・交通量といった1本の道路に関する詳細な情報を表示する。特定の道路の交通量が多い場合、それはおそらく主要道路で、将来的にはより大きな道路にアップグレードする必要があるかもしれない。道路状態は事故率や走行速度に悪影響を及ぼす。道路維持車両で道路を良好な状態に保ち、さらに冬季には除雪することで、スムーズな交通と安全な移動が可能になる。
サービス車両
- サービス車両は建物や道路セグメントから命令を受けると目的地までの適切な経路を計算する。車両の移動経路は周囲に影響を与え、例えばゴミ収集車は次の目的地までゴミ収集を行う命令を受けると、その道中でもゴミを収集する。道路整備車両も同様に目的地まで走行しながら道路セグメントを補修する。
- 緊急車両には経路探索に追加ルールがあり、目的地までのルートが短くなる場合は「違法な」Uターンを行える。他の車両はできる限り車線変更して道を譲る。警察のパトロールにも追加のルールがあり、強盗や交通事故などの緊急事態が発生した場合、パトロールの職務(通過する地域の犯罪率を低下させる)に優先して現地に向かう。
- 公共交通機関の車両は指定された路線を走行するが、タクシーは例外で、自家用車と同様の経路探索ルールに従って自由に経路を選ぶ。最初はタクシー乗り場で運賃を受け取るが、タクシーの営業所をアップグレードすれば市内どこでも運賃を受け取れるようになる。
- サービス車両の運行はプレイヤーが作成した地区に制限できる。こうした場合、車両は指定された地区内でのみ命令に応答し、緊急事態に対処する。すべての都市サービスはデフォルトの都市全体だけでなく、ひとつまたは複数の地区にサービスを提供することもできる。
他都市との交通
- ゲームには他都市との交通もあり、こうした交通は都市の経済には貢献しないが、都市が成長して高速道路が都市の道路網に接続されると、他都市との交通は交通全体の一部となる。プレイヤーが2つの外部接続の間により短い経路を作成した場合、この2都市の間の交通はよりコスト効率的ならば新たな経路を使用するようになる。
次回は公共交通と貨物輸送について。
コメント
ニュアンス的に「他都市との交通」は今までの外部接続と扱いがちょっと違うように読めるけどどうなんだろう
シムシティみたいに別タイルで別都市を作って接続できるんかな?
ついにマルチコアで計算してくれるようになったんだな
バイクが無人で動いててこわい…
ゴーストライダーかな?
交通事故の項目で神ゲー確定したなこれ
駐車場でもヤバいのに
これこそ正に拡張でなく新作である必要性という感じ
こういうのでいいんだよこういうので
次に組むときはメモリ64GB積んどこう
もう左折待ちの車でできた1車線だけの大渋滞を解消するために、MODで直進しかできない車線とか作らなくてもええんやな・・・!
これだけ経路探索とかさせたらそれだけで重くなりそうだけど、前作推奨の2700kと今の多分同等の13700kを比べるとシングル性能で4倍、マルチコアで8倍近く性能高いから、マルチスレッド化で最大32倍処理増えても問題ないな(大有りです)
トレーラーだと新作作る割にはな~て感じだったけど、これ見て一気に期待上がった
推奨9700k,2080tiは高すぎと思ったけどそれだけの価値はありそう。
マルチコア本領発揮は嬉し過ぎる
今年はstar fieldも出るし力入れてPC揃えたくなるな
Citiesは元から割とマルチコア使ってると思うけどシングルコアの天井はあったから更に使ってくれるのは嬉しいねえ。俺の9700kちゃんで試してからどうするか考えるわ。GPUは変えなきゃいかんなー。
オブジェクト制限に苦しむこともなくなりそうで何より。買っててよかったi7-13700と3060Ti