燻丸のメモ帳

インディーゲームのMODとか

<Risk of Rain>日本語化に挑戦している話

 

始めに

 Risk of Rainは私がインディーズゲームを好きになったきっかけのゲームで、ずっと翻訳をしたいと思っていた作品であり、ガンジョンのきりたんMODもRisk of Rainの翻訳に挑戦した時の副産物みたいなものです。
 なぜこんなにも素晴らしいゲームの日本語化MODが制作されていないのか?ずっとそれが不思議でたまりませんでした。他の言語に翻訳されていないか調査しても、成功例は一件だけでした(これも完成には至らなかったみたい)
本記事は私がRisk of Rainの翻訳に挑戦してきた足跡を残し、ほかの有志日本語化の方に質問をする際の資料として制作しました。
 一番の目的は、一度試した手法を再度試して二度手間をしない様にするための備忘録です。

 

注意:このブログの主は日本語化MOD制作初心者です。全くの検討違いのことをやっている可能性もあります。あくまで備忘録ですので本ブログをほかの翻訳の参考にする際は自己責任でお願いします。

 

もし今後翻訳できたら解説用の記事を書き直したいと思います。
 

 翻訳に挑戦

data.winを展開

まずはRisk of rainがどのツールで作られたかを調べてみた。

ryo.game.coocan.jp

 

ファイルにdata.winが含まれていたためGame maker :studio製だとわかりました。

 data.winの解析にはUndertaleがまだ日本語翻訳されていなかったときに用いられたツールを使用しました。

github.com

  こいつの理解にはかなり苦労を要しました。私が一番最初にRisk of Rainの翻訳に挑戦したのは2年くらい前だったと思います。Va11-Hall-Aの日本語化の記事を読んだりしましたが当時は全然理解できなかった。そもそも英語がわからん。コマンドプロントがわからんで最初に翻訳に挑戦した時はunpackすらできずに1度目の挫折を経験。
 それでも、挑戦したことによって得たことは多くありました。ゲームの見る目がガラリと変わりました。新しく買ったゲームでも、翻訳できるかMODは存在するのかを調べるのが楽しくて仕方なくなってしまった。

 

 再度挑戦したときはGithubソースコードをビルドすることに成功、Batファイルを作成しdata.winをunpackすることに成功しました。

 

フォントを置き換えてみる

UndertaleToolsを用いて展開したファイルがこちら

f:id:Ibushi_maru:20190612232504p:plain

 中身はこんな感じ。一つずつ説明しているときりがないので省略(にわか知識なので正しいこと説明できる自信がない)
 早速フォントを置き換えてみよう。。。

 フォントを作るには、Game maker :studioをインストールして、フォントを読み込ませ。。。Game maker stadio"2"になってる??!!無印版はもうインストールできないじゃん。終わった。。。ってことで2度目の挫折。

 

 ※なお本ブログを執筆時にはkengo700さんが公開されているstadio2で作ったデータをgmx形式に変換するtoolの存在は理解しています。

 

 それでもあきらめきれず再度挑戦。フォントを新しく作れないのならばすでに日本語フォントをgmx形式で出力してるゲームからフォントを引っこ抜いてくればいけるのでは。ってことでUndertaleのデータをから手ごろなfnt_papyrusを持ってきてフォントが置き換わるか検証してみた。(日本語には書き換えず、フォントが変更できるかのチェック)

 

f:id:Ibushi_maru:20190612235502p:plain

 こんな感じにFONTファイルに入ってるフォントを全部上書きした。これでゲーム内に読み込まれるフォントが変わるはず。

f:id:Ibushi_maru:20190612235934p:plain

変わんねぇ・・・

 ちなみに文字列いじって内容を書き換えることには成功したからUndertaletoolの使い方はあってると思うんだけどなぁ。。。ここで3度目の挫折をした。

 

f:id:Ibushi_maru:20190613013108p:plain


 それでもあきらめられなかった。
 どのフォントを置き換えても変更されなかった理由を調査をしたところ、そもそもgmxが割り当てられているフォントが呼び出されていないことが判明した。

f:id:Ibushi_maru:20190613030057p:plain

 

 

f:id:Ibushi_maru:20190613013641p:plain

これがゲーム内で表示されているSで、

f:id:Ibushi_maru:20190613013717p:plain


これがFONT内に登録されているフォントのS。該当するものが存在していない。

 予想を立ててみた。テキストを表示する際、呼び出しているフォントを別のレジストリから読み出しているのでないかと。でもそんなことがあり得るのか?Game maker :studioでゲーム作ったことないのでわからないが、これがRisk of Rainがいつまでたっても翻訳されない理由なのではないか?

 ゲーム内のスプライトを調べたところ、別のシートにゲーム内で使用されていることが判明した。なんでこんなところに。。。

f:id:Ibushi_maru:20190613014534p:plain

 フォントを呼び出す構造がほかのGM:S製のソフトと異なるため、Undertaletoolでは変更不可能と断定した。

単にUndertaletoolの使い方を間違っている可能性も考えられる。

Risk of Rain の FanMODを検討

 アプローチを変えてみた。私が挫折を3回ほど経験しているうちに、海外ではRisk of RainのMODが公開されていた。公式の認知も得ている正式なMODである。

f:id:Ibushi_maru:20190613021422p:plain

Hopoo Games DevBlog — Risk of Rain Fan Mods

 

 完全にオリジナルのキャラクターを追加するなど、かなり凝ったMODも配布されている。

f:id:Ibushi_maru:20190613021604p:plain

 

 このRisk of Rain MODのDiscordサーバーで、日本語翻訳が可能か聞いてみた。結論としては、このMODを使用してのローカライズは現状不可能とのこと。
 ただ、技術的には可能だとか。しかし、MODの大元を作っている人が多忙でそれを実現できるかはわからないとのことである。ほかの手段で翻訳したとしても、最終的には公式からも認知を得た適切な形での翻訳MODを公開したい。

f:id:Ibushi_maru:20190613021824p:plain

 

ゲームを解析してみる

 現状もっとも有用な手段として考えられるundertaletoolが使用できなかったため、より本格的な解析を行うことにした。

 何らかの方法で、ゲーム内で読み出すフォントを指定しているはず。その項目を書き換えれば正規の場所からフォントを読み取ることもできるのではないか。

 他のdata.win解析ソフトを試したが最終的に行きついたのがUndertaleModToolである。前述のUndertaletoolとは名前は似ているが編集できる範囲が異なる。

 

github.com

 

 UndertaleModToolはgame make :studios,studio2と連携してゲームデータを編集したり改造したりできるツール。(もっといろんなことできると思うけど)データのエクスポートもインポートも自由にできる。

f:id:Ibushi_maru:20190613023903p:plain

 data.winの内部データ検索をかけてみると、Spriteの項目に見慣れないフォントがヒットした。Texturesをエクスポートするとゲーム内で用いられているフォントと一致した。

  どうにか編集することができないか?いろいろ試してると、gmlをエクスポートすることに成功した。gmlは、GM:Sのスクリプトを記述したものである。これを編集すればフォントを別の場所から読み出すことができるのではないか。

 Atomエディターを用いて数千項目あるgmlに検索をかけてみた。すると、それらしき項目を見つけることができた。

f:id:Ibushi_maru:20190613025309p:plain

  

 このfont_add_sprite_extが何かを調べると、FONT内のデータを別のspriteデータに配置する処理だとかなんとか。うーーーむ。さっぱりわからん。これらのgmlの中で、テキストに用いるフォントをfont_setしている項目があるはず。それを書き換えればFONTファイルのgmxを読み取ってくれるのではないか。と考えては見るものの迷宮入りしそうではある。そもそもgame maker :studio2のライセンスを購入していないからなのか調査不足なのかgmlを編集してもdata.winに戻すことができない。ここで4度目の挫折を味わうことになる。

 

 ひとまずのおわり

 最初にちらっと話していた、成功例はハングルだった。まずは日本の方に聞いてみてそれでもだめだったらこのかたに連絡をするつもり。ハングルは翻訳経験がないので完全に機械翻訳の意味が伝わる文章になるかが不安だが、翻訳したいという思いは止められない。

Steam Community :: Guide :: 일부 아이템에 대한 내용 번역

 

  これ以上進めるのはGM:Sでゲームを作れるようになるくらい勉強をしないといけないのかもしれない。いままで試してきた手法に、答えがあるのかもしれない。もしくはバイナリで編集すれば簡単に書き換わるのかもしれない。一人の知識でできるのはここまでみたいだ。ある程度知識がたまったので日本語化作業者互助会のDiscordサーバーに投げてみるつもりである。学び始めて数カ月の私よりdata.winに詳しい人がいる可能性がある。Nuclear throneの翻訳時にお世話になったkengo700さんにも聞いてみよう。彼は確かDeath's Gamditの翻訳を行っていた。あれもGM:S製だったはず。

 

 翻訳に進捗があったら逐一こちらのブログに反映していこうと思います。