この記事では、Cities: Skylines II (以降 “CSL2”) の住人がどうやって移動経路を決めているのか解説します。
交通AIについて
前提知識として、交通AIについて軽く説明します。
交通AIは、住民や都市サービスの経路探索に使用されます。経路探索では、ある地点からある地点への行き方を探索します。
経路探索
CSL2では、「経路探索コスト」というものによってルートを選択します。詳細は、後ほど説明します。
道中に何かあった場合、走行する車は車線を変更します。右左折のためだけでなく、交通事故に遭遇したときや、消防車などを避けるときもです。現実世界では普通ですが、ゲームの世界で忠実に実装されています。こちらも、後ほど説明します。
今作の経路探索には市民の年齢も考慮されます。市民の年齢と移動手段の求め方について、表にまとめました。
年代 | 移動手段 | 考え方 |
---|---|---|
10代 | とにかく安い手段 | お金が大事。多少の遠回りは仕方ない。 |
大人 | できるだけ早く着く手段 | 時は金なり |
高齢者 | 快適さ | 多少の出費があっても、楽に移動できればそれで良し。 |
経路探索コスト
経路探索コストを説明するうえで、Cities: Skylines II の住民は、現実世界を生きる私たちとほぼ同じ思考回路を持っていることを前提にする必要があります。
経路探索コストの要素は4つあり、
- 時間
- 快適さ
- 金銭
- 行動パターン
です。
時間は、道順を考えるうえでとても重要です。基本的には最短経路を選びます。しかし、どれだけ最短経路でも時間がべらぼうにかかっては意味が無いので、例えば、高速道路を使ったほうが早いと判断した場合は、多少遠回りでも高速道路を利用します。
快適さとは、スムーズな移動を検討することです。例えば、交差点で曲がる回数を減らす、駐車場や交通機関を見つけるというものです。
金銭とは、移動そのものに生じる費用です。CSL2で車移動をする場合、ガソリン代、駐車場代が経路選択の「金銭」要素として計算されます。車移動よりも徒歩や交通機関を使うほうが快適かつ安いかを考え、最適な移動手段を決定します。配送車の場合、輸出するほうが安上がりか、地元で販売するほうが安上がりかが判断されます。
行動パターンとは、移動中にUターンなどの「危険」な行動をすることです。ゲームの住民は基本的に交差点でいきなりUターンをすることはありません。だだし、緊急車両は現場にいち早く駆け付けないといけないので、Uターンできそうな場所があれば、容赦なくUターンします。
サービス車両
消防車などのサービス車両は、複数パターン求められる経路探索コストのうち、最小値に基づいて手配されます。難しい話ですが、これが現実です。
例として、道路保守サービス車両が道路の修理を命じられたとします。ゲームは、仕事をしていない車両の居場所を把握し、今やっている仕事の進み具合を確認します。また、今やっている仕事の近くで別の修理を命じられた場合、新しい車両を手配することなく、今やっている仕事が終わってから別の修理先に向かいます。
商業車両
輸送において、配送距離が遠いとその分コストが高くなります。都市外への輸出は配送距離が長くなるため、企業にとって良い選択肢ではありません。企業は自社の利益を高めるために、できるだけ近くに配送するため、可能な限り地元で売り切ることを考えます。地産地消みたいなものでしょうか。
車線の使い方
CSL2では、車両は使えるだけの車線を使います。例えば、2車線の道路において一番左の車線に車が集中している場合、後続の車は右車線に移ります。
片側に2車線以上ある道路では、前に遅い車がいたら、後ろの車は隣の車線から追い越します。また、交通事故や渋滞、緊急車両が道路を占有する状態になった場合、後続車は車線を変更します。
交通シミュレーション、経路探索ユニット、性能
今作CSL2では、全ての車両と歩行者は、経路の計算だけでなく、近くにいる全ての車両や歩行者を常に考慮しながら移動します。これらは、経路探索の他に、道路上での加減速、カーブを曲がる、車線変更、予期せぬ事故など、最初に決定した経路に影響を与えます。
今作では複雑なシミュレーションにより、前作と比べて経路検索が深くなります。これらの計算は、CPUに複数あるコアをフル稼働させることで計算効率を向上させています。よって、全体的なパフォーマンスが向上します。
前作の Cities: Skylines では市民や車の数の上限がゲーム内で設定されていましたが、今作ではハードウェアの性能によって決められます。
ラウンドアバウト
ラウンドアバウトに入ろうとする車両は、既に走っている車両を優先します。一方、「今なら入れそう」というタイミングがあれば割り込むこともあります。
交通事故
CSL2では交通事故が発生します。交通事故は道路状況や明るさ、気象条件によって決まります。
シミュレーション上において事故が発生する条件を満たす道路があった場合、そこを走る車の何台かが「制御を失う」車に選ばれ、交通事故が発生します。つまり、天の力(ゲーム)により、事故を起こす車を選ばれます。哀れですね。衝突事故は物理法則に則るため、他の障害物にぶつかることもあれば、たまたま近くを走っていた車を事故に巻き込むこともあれば、海に飛ばされて水没することもあります。
事故現場が起きた車線は現実世界同様、封鎖されます。車線が封鎖されている間は車は基本的に待つものの、道路の復旧に時間がかかる場合はUターンして違う道を探すこともあります。
重傷者が発生するような大きな事故の場合は救急車が呼ばれることもあります。
駐車場
駐車場は経路探索において大事な要素の一つです。市民の経路探索には、使える駐車場があるかどうかも含まれます。建物の敷地内に駐車することが一番良いのですが、それができない場合、別の駐車場を探すか公共の交通機関を使うようになります。また、市民は駐車場が無い商業施設やレジャー施設には行きたくありません。
選ばれる駐車場は、市民の年齢も関わります。年代別の駐車場の選び方を表にまとめました。
年代 | 駐車場の選び方 | 備考 |
---|---|---|
10代 | とにかく安い駐車場 | お金が無いので、長距離の歩きや交通手段との併用は許容範囲 |
大人 | 最短経路上の駐車場 | 目的地に早く着ければそれで良い |
高齢者 | 目的地に一番近い駐車場 | 楽に移動できることが大事 |
駐車場の選択と経路探索コストには、駐車料金も判断材料になります。また、高い駐車料金を課す駐車場では、裕福な市民が使われるようになります。
★関連記事★
駐車場について
情報ビュー
プレイヤー交通の情報と道路の情報を分析することで交通状況を分析し、都市内に発生している問題の早期解決に役立てます。
交通情報ビュー
「交通概要」では、交通の流れと交通量を表示します。赤く染まった道路は交通量が多い道路です。
交通流量は、交通がどれだけスムーズに流れているかを表します。数値が高いほど良いものとなり、数値が低いほど交通のボトルネックになっていることを表します。
道路情報ビュー
道路情報は、道路の状態や交通量などを表します。特定の道路の交通量が多い場合、その道路は幹線道路の可能性がありますので、幅が広い道路に改良する必要があるかもしれません。
道路の状態は、車両の走行速度や事故の発生しやすさに影響を及ぼします。道路管理をサボらず、冬は除雪することが大切です。
サービス車両
サービス車両は、消防車やパトカーなどの緊急車両、ゴミ収集車や霊柩車、バスやタクシーなどの公共交通車両が該当します。
緊急車両は、できるだけ早く現場に到着しないといけないので、強引にUターンをすることがあります。また、緊急車両の近くを走る一般車両は、緊急車両のために道を譲ります。また、パトカーが通った所には、犯罪発生率を減らす効果があるので、経路探索に追加ルールがあります。
サービス車両は、プレイヤーが作成したエリア内でのみ走らせることもできます。管轄内で何かあった場合のみ、適切なサービス車両が出動します。
公共交通車両は、決められたルートを通ります。ただし、タクシーは例外で、自家用車と同じ経路探索をします。また、タクシーに乗るときに運賃を受け取ります。また、タクシー発着所をアップグレードすることで、都市内どこでも運賃を受け取れるようになります。
外部接続
今作では、都市外へ繋がる道路を自分で作ることができます。これにより、商品等の輸出入ができるだけでなく、都市外から都市サービス (警察とか医療とか) を受けることもできます。
公式動画
リンク集
Twitterのフォローよろしくお願いいたします!
コメント