Linux版CS:GOで日本語が豆腐になり, 解決できませんでした
Linux版CS:GOをGPUのテスト用に動かしてみたら, 日本語化したくなってきたので頑張ってみましたが無理でした.
CS:GOのLinux版はSteamのインターフェイスを日本語にしていても日本語で起動しないので起動オプションで-language japanese
を指定して起動する必要があります.
これでゲームの前のインターフェイスは日本語化されます.
しかし, ゲーム内のインターフェイスは豆腐文字になってしまいます.
フォントが入ってないのかなと思ってフォントを変えてみようと思いました.
http://fonts.spddl.de/というサイトではCS:GOのフォントをリソースと設定をバンドルして配布しています.
その中にNoto Sans CJK SCがあるので, これを使えば漢字は表示できそうだと思いました. しかし, SCは簡体字の意味で, 日本語ではないので, これを使いたくはないです. というか試しに適用しても表示されませんでした.
Steam コミュニティ :: ガイド :: How To: ANY FONT IN CS:GO (not only from fonts.spddl.de)にフォントファイルを作成する手法が書かれています.
しかし,
ここで使われているサイトsIFR GeneratorはRictyを入れるとFont File too big
というエラーを返します.
このサイトは裏でPHPスクリプトを動かしているだけらしいので, コマンドラインで実行する方法があるはずです.
このサイトにOfficial sIFR Home pageというリンクがありますね, 見てみましょう. sIFR » Mike Industriesに飛びました.
sIFRをダウンロードしたらVBScriptを読み込むJavaScriptファイルをダウンロードできました. 違う.
しかもsIFR Generatorのサイトを見たらAdobe Flash Studioがないと動かないとか書いてありますね. 一回Windowsで動かさないとダメなのでしょうか…
ググり直しということで「ttf to swf linux」で検索してみたら, swftoolsが出てきました.
swftoolsにあることに気が付きませんでした.
font2swf Ricty-Regular.ttf
を実行して出来たoutput.swf
をfontlib_ricty.swf
にコピーして.
設定ファイルの冒頭に"fontlib" "resource/flash/fontlib_ricty.swf"
と書いて読み込んでみたら,
インターフェイス含めて文字が全て消えました.
なんでダメなんだ…?
まあswfdump
した結果が明らかに違うのでダメそうだなとは思ってましたが.
どうみても形式が異なりますよね.
File Versionが9と8で異なるとかそんなことが些事に思えるぐらいです.
djcsdy/swfmill: Generate or decompile Adobe Flash SWF files using an XML dialect. Inspect and modify the XML by hand, or by using a built in XSLT processor. のsimpleコマンドを使って埋め込んでみたら良いのでは? と思い実際埋め込んでみました.
何故かインターフェイスの表示は中華フォントですが戻りましたが, ゲーム画面の表示はかわらず豆腐のままです.
"fontlib_japanese" "resource/flash/fontlib_japanese.swf" [$X360||$PS3]
の[$X360||$PS3]
という表記を変えればPCでも読み込まれるのではと思ってやってみたのですが変わりませんね.
もしかして"resource/flash/fontlib.swf"
を"resource/flash/fontlib_japanese.swf"
に書き換えてやれば日本語環境が読み込まれるのではないかと思ってやってみましたが変わらず.
一行目の"english"
を"japanese"
に変えれば良いのではと思って変えてみましたが変わらず.
日本語フォントファイルじゃないからダメなのかなと思ってMS Minchoのセットをhttp://fonts.spddl.de/からダウンロードして適用してみましたがやはり豆腐.
【CS:GO】日本語フォントを変えてみた - ニコニコ動画のファイルセットを適用してみましたが, UIのフォントは変わるのですが, ゲーム内の文字はやはり豆腐になります.
そもそもCounter-Strike Global Offensive/csgo/resource/flash/
以下の変更はUIにしか影響しないのではないかということがわかり始めてきました.
システムのデフォルトフォントにRictyを指定しているのがよくないのか? と思ってRictyの指定を外してみた所, 恐ろしいことに気がついてしまったかもしれない. 元々文字なんて無かった, 全角スペースを可視化していただけという可能性を考えてしまいましたが, 英語版で起動してみたら普通に英語が表示されたのでそれは違いました.
自前のfontconfig設定が悪いのか? と思ってビットマップフォントの除外設定とRictyへのリダイレクト設定を消してみましたが, 変わらず.
Locale or Language problem in Linux :: Portal 総合掲示板を参考にして, libfontconfigをシステムのものに置き換えるという行為を行ってみましたがダメでした.
STEAM_RUNTIME=0 steam
で起動するというのも試してみましたがこれもダメです.
無理みたいですね. どうせ音声は英語でわからなくて, 表示されるものなんて殆ど無いので諦めて英語で遊ぶことにします. 数時間を費やしてしまいました.
Half-Life 2やPortal 2は普通にLinuxで日本語で遊べたのですが…
一応GitHubにissueとして報告しておきました. CS:GO don't display Japanese character [Linux] · Issue #1579 · ValveSoftware/csgo-osx-linux