あおみかんのブログ

フリーランスのIT系エンジニア。ゲーム制作スタジオ4th cluster代表。

Campus Notes 英語版のSteam配信が決まりましたのでちょっとした技術的な話を書きます

4th-cluster.com

…と、こちらの記事の通り、筑波大学を舞台にしたノベルゲームCampus Notesの英語版が4月よりSteamで配信される運びとなりました。

ノベルゲームの翻訳なんて楽勝でしょ、と思うかも知れません。まぁ楽勝なんですが、ノベルゲームサークルの多くはそんな方法論は持ち合わせてないと思うので、どっかで誰かの役に立てばいいなと思って軽いメモを公開します。 ……NDAがあるので、一般論でしょってレベルで許して頂けそうな範囲で。

とにかくcsvを作る!

f:id:akn_ep:20160229151717j:plain

とにかく画面に出て来る文章をcsvに起こします。 この時、話者の欄があった方が良いみたいです。

ウチでは以下のようなcsvにしました。

3,紫苑,それじゃ、ここまでに分かったことをひと通り整理しましょう。明らかにして、詳らかにしましょう」,"",,text,

左から順に、通し番号、話者、日本語、英語、英語翻訳者からの備考、表示の種別、重複フラグ、となっています。

これはrubyとかで吸い出しスクリプト書いて処理しました。僕は30分か1くらいでベースは書けちゃいましたね。(その後の調整含めると2時間くらいかけてますけどね) Campus Notesのスクリプトはベースを自動処理で吐き出したりしていて、中身がかなり整頓されているので、こういうことをしても局所的なエラーは発生しにくいです。 凝った演出の多いサークルさんはもしかすると苦労するかもしれませんね…。

ちなみに、エンジン側の改行とページ送りは、それぞれcsvの文字列の改行と、セルを一個下に移動する処理と見做してcsvに起こすようにしました。 こうすることで、必要以上にセルが分割されず、翻訳者さん側で出来る事の自由度が上がったと考えています。

重複フラグという部分は、文章が丸々被っている分がそれより前にないかを示すフラグです。 たまにラベルやサブタイトル演出で同じ文章が連続して出て来ることや、分岐の先で微妙に被った文章があることがあり、その際に表現を合わせて頂くためのものとして用意しました。

csvを反映する!

さて、先のcsvの反映スクリプトruby(とか)で書いちゃいます。 僕は反映システムに問題がないか怖かったので、一度ランダムな文字列を突っ込んだ変なcsvを作って手元で試したりしてました。 翻訳者さんが作業されている時に並行して出来るのでオススメです。

基本的には、csvの日本語欄を英語欄に置換するだけですが、改行スクリプトが厄介かも知れません。 また、文章の途中で表情が変わるような演出をしている場合、一筋縄では行かないですね。 (あまりないので、ウチでは手作業で反映することにしました。)

そのコード公開してよ

…って言われる気がしたのでちょっと各方面と相談してみます。(コメント欄とかで是非って声がなければやらないまま終わると思いますw) お仕事として発注したい的な相談も受け付けております。

SteamのSDKを組み込む

がんばります。