takeyohのおぼえがき

気になったこと、試したことの記録です。

[assetto corsa] Server configuration with AI Traffic

Shutoko Revival ProjectにAI Traffic modを追加して走らせていたのですが、台数が増えるとどうしてもごちゃごちゃっとなって、一般車がすぐに事故ります。

バスやトラックなど大きな車両がC1走ろうものなら、そこらじゅうでパニックに。(笑)

最近、SRPのサーバにログインして走るようになったのですが、これだと一般車が勝手に事故ることはないなぁ、と。もしかしてサーバを立ててそこで走ればいっぱい一般車を追加しても安定して走れるのではないか?

ということで、試してみました。

自分が走るためだけの環境なので、自分のローカルPC上にサーバ立ててます。

assetto corsaがインストールされたフォルダにserverというフォルダがあり、その中にacServer.exeというのがあります。設定(全般・使用するtrack,carなど)はasServerManager.exeで行い、acServer.exeでサーバを起動、その後Content Managerのオンライン→LANからサーバにアクセスすると、走ることができます、が。

これだと、広い首都高をたった一人で走ることに・・・。さみしすぎる。

当初の目的の通り、ここにAI Trafficを追加する方法を探しました。

いろいろ検索してみると同じ悩みを持っている人はいるようですが、良い回答がみつからず・・・。このserverアプリでは実現できないです。

 

ほかの方法をしばらく探すとこれを見つけました。

www.patreon.com

patreonサイトですが、AssettoServer自体は自由にダウンロードできるようです。

github.com

AssettoServerのダウンロードはここですね。

Releases · compujuckel/AssettoServer · GitHub

ローカルPC上で立ち上げるので、windows版を使いました。

基本的にREADMEに従ってセットアップすれば使えますが、自分は既存の標準サーバを残すため、AssettoServer.exeをacServer.exeにリネームせず、AssettoServer.exeを直接起動することにしました。

あと注意点は、ASP.NET6 Runtimeも必要なのですが、Hosting Bundle版のインストールが必要です。(ここで一度はまりました。READMEはちゃんと読みましょう。)

現在のバージョンはASP.NET7 Runtimeが必要です。
Download .NET 7.0 Runtime (microsoft.com)
これのwindows版で、「Run Server Apps」にあるDownlod Hosting Bundleをダウンロードしてインストールします。

 

asServerManager.exeでサーバ設定を行い(設定内容は省略)saveすると、

assettocorsaのフォルダ→server→presets→SERVER_XX

にentry_list.iniとserver_cfg.iniが作られるので、これを

asettocorsaのフォルダ→server->cfg

にコピー。で、AssettoServer.exeをダブルクリックでサーバが起動します。

(ログは、server→logsの直下に出力されます。)

 

assetto corsaに標準でインストールされているtracks ,carsを使うのならばこれでOKです。が、やりたいのはShutoko Revival Projectですので、さらにセットアップ。

assetto corsaのフォルダ→content→tracks

にあるshuto_revival_project_betaフォルダを

asetto corsaのフォルダ→server→content→tracks

の中にコピーします。(ここにコピーしないとtrackデータがないというエラーでサーバが起動できませんでした。)

System.IO.DirectoryNotFoundException: Could not find a part of the path 'Y:\Steam\steamapps\common\assettocorsa\server\content\tracks\shuto_revival_project_beta'.

正確には、すべてのファイルをコピーする必要はありません。track mod直下のmodels_XX.iniとフォルダ下にあるdata/surfaces.iniをそれぞれコピーすれば動きますが、よくわからね~という場合は全部コピー、です。

SRPのTrackは、(content mangerでAIを走らせるためのAI TrafficのTrack以外であれば)どれを選んでもOKです。

 

次に、走らせる車は、trackのように車のデータをserver配下にコピーする必要はありませんでしたが、サーバ起動時にエラーが出て止まります。

AssettoServer.Server.Configuration.ConfigurationException: No data.acd found for (登録したcarデータ...) .. This will allow players to cheat using modified data. More info: https://github.com/compujuckel/AssettoServer/wiki/Common-configuration-errors#missing-car-checksums

carデータのchecksumエラーのようです。これ、ほかの人が作ったcar modを使おうとするとchecksumができずエラーになります。SRPの公開サーバとかだと重要だと思いますが、個人で楽しむサーバであればだれも入らないので、checksumの確認を無視する設定にします。(More info のURLに説明書いてあります。)

先ほどのcfgフォルダ内にあるextra_cfg.ymlをテキストエディタで開いて、

IgnoreConfigurationErrors:
  MissingCarChecksums: true

に変更ですね。

これで、SRPのTrackと走らせたい車を読み込んで、サーバが起動できるようになります。

 

が、起動しても自分しかいない・・・ですねぇ。まだ足りないです。

READMEの続きにAI Trafficの記載があります。

まず、

asetto corsaのフォルダ→server→content→tracks→shuto_revival_project_beta

のフォルダにaiフォルダを作成します。

(普通は各trackフォルダの下にaiフォルダがありますが、このサーバの場合はshuto_revival_project_betaフォルダの直下に作る必要があります。)

O.DirectoryNotFoundException: Could not find a part of the path 'Y:\Steam\steamapps\common\assettocorsa\server\content\tracks\shuto_revival_project_beta\ai'.

作ったaiフォルダの中にfast_lane.aiファイルをコピーします。

とりあえずSRPのDiscodeサイトで配布されているShutoko Revival Project v0.9.1 Shibaura Traffic Layoutに入っているfast_lane.aiは使えます。

上記fast_lane.aiでも動くのですが、一部車が走らないエリアがあったりするので、今導入するなら、AssettoServerの開発用discordチャネルからfast_lane.aipをダウンロードするのがお勧めです。

AssettoServerの開発用discordチャネルはこちら。

AssettoServer Development

fast_lane.aipのダウンロードはこちら。

https://discord.com/channels/890676433746268231/929390922624532480/944274971742597221

fast_lane.aipは複数のfast_lane.aiがzipで固められたファイルです。これは"解凍せず"fast_lane.aipファイルのまま上記aiフォルダにコピーします。

 

さらに、cfgフォルダにあるextra_cfg.ymlを修正。

# Enable AI traffic
EnableAi: true

また、ここも修正しました。プレイヤーあたりのAI台数設定です。デフォルトの10だと、自分だけで走る場合、10台以上のAI車を設定しても、10台までしか登場しません。のでこれをどかっと増やします。

  # Number of AI cars per player the server will try to keep
  AiPerPlayerTargetCount: 30

 

次に同フォルダにあるentry_list.ini(carデータですね)をテキストエディタで開き追記。

[CAR_0]
MODEL=ferrari_laferrari
SKIN=09_rosso_scuderia_r
SPECTATOR_MODE=0
DRIVERNAME=
TEAM=
GUID=
BALLAST=0
RESTRICTOR=0
AI=auto

AI=autoのすべての車[CAR_X]に追加します。

 

以上までを設定して、AssettoServer.exeを起動、サーバ起動したらContent Managerから接続します。すると、AIトラフィックが登場します!

しかも、AI同士でも車間距離を調整したりするので、AIどうしで勝手に事故ったりすることもなく、快適に走ることができます。

 

あとは、AI trafficのスピードや追い越し車線の車の追加速度なんかも修正して、自分が走りやすい設定するとよいかと思います。例えばこんな感じ。

  # Default maximum AI speed. This is not an absolute maximum and can be overridden with RightLaneOffsetKph and MaxSpeedVariationPercent
  MaxSpeedKph: 100
  # Speed offset for right lanes. Will be added to MaxSpeedKph
  RightLaneOffsetKph: 20

以上です~。

/* -----codeの行番号----- */