takeyohのおぼえがき

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

assettoserverの設定回り

この情報が必要になる人はほとんどいないと思うのですが、自分のための覚書で。

CSPのプレビュー版から通常リリース版に戻したら、サーバにログインできない

サーバを起動して、オンラインで入ろうとするとWeatherFXまたはRainFXを要求しているから入れないというエラーで止まってしまう現象。
これは、サーバ側の設定で過去に雨の設定を組み込んでいて、そのままになっていると出るエラー。

原因)
サーバ設定にあるWelcom msg file。このファイルにはサーバに必要な構成要素の情報が含まれていて、接続してくる環境のチェックに使われる。
サーバの設定で雨の設定を組み込んでいると、このファイルに雨の再現が可能なCSPが要求されてしまう。

解消する方法)
Custom Shaders PatchのExtra Optionsの中に[RAIN_PREVIEW]セクションがある場合は、これを削除。
Welcome msg fileに指定されているcm_welcome.txtが入っているフォルダを開く。
Content Managerを閉じる。
cm_welcome.txtを削除する。
server_cfg.iniを開き、[DATA]セクションをWELCOME_PATHの行とセットで削除して保存。
Content Managerを起動。
Custom Shaders PatchのExtra optionsを開いて、そのままOKを押す。
再度cm_welcome.txtが生成される。

これで、RainFXを要求しないcm_welcome.txtが生成されるはずです。

assettoserverを使うと、時間がうまく制御できないことがある。

先日のContent Managerのアップデートにより、サーバのCONDISIONSにある時間や天気の設定方法が変わりました。
CONDISIONSの一番上にある時間(時刻)は8:00から18:00までの間しか設定できません。
しかし、標準のacServerであれば、WeahterをWeather FXに変更し、その右の気象設定のさらに右にある縦三つの点をクリックし、そこに出てくる時間でサーバの時刻を変更することが出来ます。こちらは24h好きな時刻を設定できます。

一方assettoserverを使ってサーバを起動している場合、このWeatherFXを選択すると出てくる時間設定のメニューはサーバ側で理解することが出来ません。
そのため、CONDISIONSの一番上にある時間(時刻)の時間帯しか選択することができないのです。

一方、assettoserverのコンフィグであるextra_cfg.yml(ファイルが無い場合は自動で生成される)を見ると、

# Enable new CSP weather handling. Allows rain and smooth weather transitions. Requires CSP 0.1.76+
EnableWeatherFx: false

という部分が見つかります。これは、assettoserverないでWatherFXを有効にするかどうかの設定で、CSP 0.1.76以上が必要です。
EnableWeatherFx: falseとなっている場合は、上記のCONDISIONSで設定した時刻がそのままサーバに反映されます。
しかし、EnableWeatherFx: trueに変更すると、サーバの時刻はなぜか上記のCONDISIONSで設定した時刻+9時間後の時刻がサーバに反映されます。
これで夜の走行をスタートさせることはできますが、この走行中にCtrl +Shift +sで保存したリプレイは、元のCONDISIONSで設定した時刻で記録されるため、リプレイすると時刻が9時間戻ります。
つまり、時刻を13:00に設定して、EnableWeatherFx: true にして、ゲームをスタートさせると、ゲーム内の時刻は22:00からスタートしますが、リプレイを保存して別途再生すると、リプレイは13:00からスタートするということになります。

2023/5/29追記)--------------------------------------------
これは、サーバ側のタイムゾーン設定が行われていなかったことが原因でした。
twitterでXTZさんに教えていただきました。ありがとうございます!

assettocorsa/server/cfgの下にある、data_track_params.iniを開きます。
このファイルは、各trackの緯度経度とタイムゾーンが設定されているファイルです。
これに設定されていないtrackは標準時UTCが適用されるとのことです。今回、shuto_revival_project_beta_ptbの設定を書いてなかったので、オンライン接続時の時間がずれたんですね。
ファイルを開いたら、shuto_revival_project_betaを探します。

[shuto_revival_project_beta]
NAME=SRP
LATITUDE=35.670479
LONGITUDE=139.740921
TIMEZONE=Asia/Tokyo

というのがあると思います。これの次に、下記を挿入します。

[shuto_revival_project_beta_ptb]
NAME=SRP
LATITUDE=35.670479
LONGITUDE=139.740921
TIMEZONE=Asia/Tokyo

これで、SRP 0.9.2 PTB2にオンラインで接続したとき、9時間ずれる問題は解決しました!

次に、サーバの時間が8:00-18:00しか指定できない件は、今のところContentManagerの仕様なので、回避するほうほうは2つ。
一つは、サーバ起動し、オンラインでサーバにつないでから、チャットから、

/admin xxxx(パスワード)
/settime 22:00

と入力して時間を変える方法。

もう一つは、server_cfg.iniのSUN_ANGLEの値を夜時間帯に変更して、assettoserverをContent Manager経由ではなく、プログラムを直接起動する方法。
こちらは、サーバの設定ファイル類をpresetsの下の作成したサーバ名の中にある設定ファイルをserver直下にあるcfgの中に手動でコピーしないと反映されませんのでご注意を。

個人的には作業の手間やいろいろ破壊してしまうリスクを避けるなら、サーバにつないでコマンドで時刻を変更する方が無難かな~?と思いました。
そもそもassettoserverをContent Manager使わずに利用されている方は、後者でも問題ないですね。私も最初の頃はContent Manager使わずにassettoserver起動してました。

時間の変更方法は、XTZさんとkenkenさんに教えていただきました。ありがとうございます~!

ここまで)--------------------------------------------


以上です。
assettoserverを導入していて、有料ライセンスを入れたContent Managerを使っている場合で、かつpreview版のCSPに対応した設定をサーバに行っている場合に起こる問題と対策でした。かなりレアな事象・・・かもしれません。

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