Soundcacheについて



・キャッシュ
mapsフォルダの下にsoundcacheってフォルダがありますよね?その下にでっかい サイズの*.cacheファイルがズラー!
「いつの間に?HDの残量が切迫してんのに勝手なことすんなバロー!」つってゴリーっと根こそぎ抹殺したはずなのに 次に見るとまた復活してるアレです。

このSoundcacheっていうファイルは単位マップ内にて使用されている音声データの先頭コンマ125秒(125ミリ秒)だけを 寄せ集めたものだそうで、マップと共にメモリへプリロードされた後、 ゲーム中に特定の音声を再生しようとした際、既にメモリ上に存在する対象音声データの 先頭コンマ125秒分のデータを見切り発車で即時再生し始めてしまうとのこと。 で、その音声を再生してる間に残りのデータをディスクからセッセと読んで結局全部再生しきってしまう。凄いじゃ〜ん!
でも時々、音声の再生にディスクからの読み込みが間に合わないと「ちょ、ちょっと待ってください」状態になって ブロックがかかり、画面がガクガク状態になる。
たぶんオンボロマシンを使ってるとこの症状にめぐりあるチャンスがタップリだと思うんで、 毎度毎度、国内鯖にもかかわらず「laaaaaag、laaaaaaaag!!!」などと叫んでギロチンKick食らってる愉快な人は

snd_async_spew_blocking 1

をセットするとコンソールに何か出るかもしれませんね。

・どうでもいいんじゃないか?
1回マップで遊んだらこんなキャシュは勝手に出来るんだから遊んでるこっちは 別に何も気にしなくたっていいんじゃないか?

・・・と思うんですけど、わざわざキャッシュと音声ファイルの一覧を作ってく れる機能があるそうですよ。

  • ゲームフォルダのmaplist.txtにキャッシュ作成対象のマップ名を書く。
  • Steamのゲーム一覧から対象のゲームを右クリックしてプロパティを選ぶ。
  • 起動設定...を選んだら以下の起動オプションを入力。

  • -sw -console -condebug -nocrashdialog -makereslists -usereslistfile maplist.txt +mat_picmip 2 +r_lod 3 -autoconfig
  • そんでもって起動。


  • 本当は1つ1つマップを読み込んで、マップロードの際にプリキャシュ された音声ファイルのリストを、キャッシュファイルと同じフォルダの[マップ名].manifestに「ベストな状態のキャッシュファイル」と共に吐かれ、
    更にマップロードの際にアクセスされたファイルの一覧をreslistsフォルダの下の[マップ名].resへ 吐いてくれるはずなんだけど・・・

    ・・実際やってみたら、中途半端にコケるはWindowモードになるはテクスチャの設定が「低」になるわで なんなんだこりゃ。

    ・キャッシュファイルの種類
    上のが失敗したので更にどうでもよくなったんですけど、一応キャッシュファイルの種類です。
    _sharedprecache.cache 使用されてるマップの50%以上で愛用されている音声ファイルのキャッシュ。
    _other.cache 音声ファイルのヘッダは含んでるけど、プリロードのデータ自体は含んでない。 他のキャッシュに含まれていないファイルが登録されてるとかないとか。
    ここに登録されたファイルは最初に書いたようなプリロード済みのデータみたいに 見切り発車再生せずに全部読んでから再生するので画面がガックガクになったり しませんよーだ。
    [マップ名].cache _sharedprecache.cacheに未登録、且つ対象マップのbspファイル でプリロードされる音声ファイルのキャッシュが入ってる。
    _other_rebuild.cache キャッシュを素早く再ビルドするためのテンポラリファイルだって。ど〜でもい〜よ〜。

    ・(´・ω・`)??
    結局さっきキャッシュのビルドに失敗しちゃったけど、できないとマズいのかな?
    で、こんなようなことがかいてありました。

    「おっとっと、間違ってもキャッシュファイルをMODと一緒に配布しちゃいけねえよ、 reslist/.manifestさえ同梱してりゃ、初回ゲーム起動時にキャシュは作って くれるんだからさ、でもそれってすっげえ時間かかるから、 待ってる奴らはブチ切れしちゃうかもしんねえよ、だからキャッシュファイルがそれほどデカくないなら一緒に 配布しちまうってのもアリかもネ☆」

    結局どうでもいいってことですね。

    こんなコンソールコマンドもあるようです。
  • snd_writemanifest

  • プレイ中のマップに対する.manifestファイルを作ってくれるそうです。

  • snd_rebuildaudiocache

  • プレイ中のマップに対するキャッシュを再ビルドしてくれるそうです。但し、_sharedprecache.cache が無い状態で実行するとガチでキャッシュを作りに行くので20MBくらいのでっかいファイルができちゃうらしいよ。

    (´・ω・`)つもどる