本記事は「Beat Saber Advent Calendar 2024」のために執筆・公開したものです。同企画の他の記事についてはこちらから読むことができます: https://adventar.org/calendars/9970
10分刻みのタイムスケジュールで生きているひとのための要約
ChroMapper は Crowdin で翻訳しているがまだ発展途上なのでフィードバックがほしい(連絡先はページ下部)
はじめに
ヘーイ、マイネームイズギョウブマサタカオニワ! サンキュー!!
趣味で翻訳をしていて BeatSaber 配信なんて見始めたものだから当然そっちの方も翻訳するかってなるよな? というわけで ChroMapper(以下, CM)なんて触ったこともない状態から翻訳を始めました
マッピング? なにそれ伊能忠敬??
もともと翻訳は「英語読むのかったるいからシステムを日本語化したほうが楽だし便利じゃね?」ってことでいろいろなものに手を付けてきました。英語は別に得意じゃありません
最近は機械翻訳があるので Web サイトを読むときは翻訳ツールを使ったり, 配信で英語チャットを bot が翻訳したりするよね。サイトに関してはそれでいいかもしれないけど, ソフトウェアの場合はそうもいかなかったりするし, 機械翻訳だから翻訳しきれないものもある
そういうのを極力は人力でなんとか使えるようにしていこうという, 人によっては鼻で笑われるかもしれないものを趣味の一つにしています
各サービスのローカライズ状況
BeatSaber が登場して数年は経ちますが, それぞれの非公式サービスのローカライズ状況はぶっちゃけ芳しくないです
※ローカライズ: もともとシステムなどで使われている言語(CM では英語)を別の言語に翻訳し使えるようにしたもの, ぐらいの意味。正確な意味は自分で調べてネ
ほぼ完全に翻訳されている(と思われる)もの
BeatSaber の日本語 UI
一部翻訳されているもの
BSMG Wiki
ChroMapper
絶望
ScoreSaber
BeatLeader
BeatFollower
BeatSaver
海外 Discord, ほか各種サービス
BeatSaber の UI はさすがに英語だと苦しいので日本語翻訳がけっこう充実しています。ただ他のサードパーティによるサービスはほとんどローカライズされていないことが多いです。この場合ローカライズされていないというのは2つの状況が想定されます
ローカライズは受付けているが, 翻訳がほとんどされていない
ローカライズをそもそも受け付けておらず, もとの言語のみ利用できる
ローカライズが通常は開発陣の「お情け」で行われることが多く, ユーザー規模の大小にあまり左右されなかったりします。普段 Steam でゲームをしているひとならわかると思いますが, プレイ人口が多いのに日本語訳がなかったり, 逆に超マイナーなインディーズゲームなのに翻訳オプションがめっちゃ充実していたりするのも, ひとえに開発者の裁量次第によるところが大きいです。後者はほとんど機械翻訳だったりしますが・・・
国際的な水準ではまず「先進国の国民なら英語が多少できて当たり前だよね」となるわけで, じゃあ英語だけでいいかという発想になるのはわからなくはない。わからなくはないんですが, そうは言っても英語わからないんだから日本語使わせろ~~って思いますよね
余談ですが, 別に他の国では全員英語ペラペラというわけではないです。以前電車に乗っていて香港人に英語で話しかけられ, 発音がなっていなかったのか同じ電車に乗っていた他のヨーロッパ人に話しかけていましたが, 彼らも特に英語が堪能というわけでもなく, 四苦八苦していました。結局のところ普段から話している言語で使えたほうがユーザー体験は向上するよねといったところで話を本題に戻そうか
上の1にあたるのはこの中だと BSMG Wiki と CM ぐらいでそれ以外はだいたい2にあたります。つまり他は「日本語で使いたいなら別のサービス使ってね」という門前払い状態。BSMG Wiki も現在では翻訳プロジェクトが凍結状態で更新されていないので, 実質 CM ぐらいがローカライズ可能なサービスということになります
翻訳フローチャート

まず CM のアップデートがあり, 設定の新規追加や文章の変更などがあれば, Crowdin というローカライゼーションマネージメントプラットフォームに登録されている CM のプロジェクトが更新されます。ローカライゼーションマネージメントプラットフォームとは耳慣れない言葉ですが, 要は翻訳を実際に行う場所で, そこでの変更が CM 本体に統合(マージ)されます。難しい言葉使いやがって
CM のプログラム部分は GitHub というサイトに置かれています。開発者やコントリビュータ(ボランティア的な貢献者ぐらいの意味)はここからデータを引っ張ってきて自分たちのローカル環境で開発するのが基本です。ローカライズを担当するコントリビュータはプログラムを担当するわけではないので, GitHub の扱いに不慣れなひとでも貢献できる環境が望ましい。そこで Crowdin のようなプラットフォームが多く利用されています
筆者の体験談ですが, 以前 GitHub に登録されている OSS(オープンソースソフトウェア。プログラムの設計図がまるっと公開されているソフトウェアのこと)を翻訳したときに, GitHub から引っ張ってきてローカルで翻訳作業したことがありました。pull request を投げたらブランチが更新できてなくて修正 push が必要だったり, pull をミスってローカルの開発環境全部ぶっ壊したりして, 全身の毛が抜けるかと思うぐらいめんどくさかったのを覚えています。翻訳プラットフォームが別に用意されている場合, その辺りのめんどくささから開放されるので遥かに気が楽になります。force push・・・reset・・・うっ(吐血。以上隙自語
Crowdin は有料と無料のプランがありますが, 我々のようなトランスレータ(翻訳者)であれば通常は無料で利用できます。登録されているプロジェクトに参加申請を行い(必要ないプロジェクトもある), 承認されれば実際の翻訳作業を行うことができます。参加申請は Crowdin 内部でプロジェクト管理者に通知されるはずですが, 外部サービスとの連携が不十分なのか Discord で別に申請の必要なところが多いです。CM もそのひとつで, 申請には CM の公式 Discord サーバへの登録が必要です。翻訳後の完了報告も Discord で行います
承認後は CM の GitHub でマージ(統合。変更部分が受け入れられる)され, 次のアップデートを待ちます。上の図にはありませんが CM がリリースされると実際に翻訳部分が見られるようになっているというわけです
Crowdin の画面
本プロジェクトは承認制のため実際の画面は公開しませんが, 大体の雰囲気を掴んでもらえたら嬉しいです。詳しい使い方は各自お調べください。そう, 眼の前の箱でな!

まずプロジェクトのトップ画面にいくと言語が選択でき, そこから CM のファイル一覧が表示されます。CM の場合は7つの JSON ファイルがあり, それぞれに翻訳対象となるテクストが格納されています。それが画面の左カラム
左カラム(列)に表示されている要素を選択すると, 中央に編集画面が表示されます。左カラムの赤い文字はまだ翻訳されていない状態を指します。中央上にあるのが原文, その下に訳文の編集がきて, さらにその下に翻訳履歴と機械翻訳のサジェスト(提案)が表示されます。右カラムにはテクストについてのコメントが登録できて, 疑問点や原文に対しての修正対応が行えるようになっています。他の日本語対応のトランスレータがわかりやすいように, 筆者はその翻訳についてのメモをなるべく残すようにしています
Crowdin の大きな特徴として, 機械翻訳によるサジェストを受けられます。Google Translate の他にも複数の候補から選択できるため, 単語や文法的なチェックはしやすいです。もちろん機械翻訳なのでたまにギョッとするような誤訳も多く, 常に訳が正しいかどうかの確認は必要ですが, 人力ですべてを行うよりかなり楽になっています。冒頭で極力は人力で~などと書いていますが, 必要に応じてサジェストを受け入れることもあります。一部ですが
また, Web サービスなので Mouse Dictionary が使えるのも筆者としてはかなりありがたいです。この Chrome 拡張はマウスをかざすとその単語の大まかな意味を表示してくれるので, 曖昧な意味の確認に使ったりしています
このようなプラットフォームは他にも色々あるんですが, 自分がここ数年でいろいろ使ってみたなかで最も使いやすいと感じます。先ほどの機械翻訳もそうですし, UI がかなりユーザーフレンドリです。同じような文章が他でどう翻訳をされているかとか, 他の言語だとどうかもすぐにチェックできるようになっているので, 翻訳をしているうえで煩わしく感じる部分をある程度軽減してくれます
Crowdin の使用例として, 他に有名なものだと OBS Studio もこのプラットフォームを使用しています。現在, 長年貢献されているベテランのコントリビュータさんがほぼ1人で(気づいた際には筆者も手伝っていますが)翻訳されています。その方も特にプロの翻訳家というわけではないみたいですが, あれだけ膨大な項目のあるソフトウェアの翻訳をスムーズに行えるのは, Crowdin でなければストレスがすごかっただろうな・・・と密かに思います
11月からの共同作業
筆者が CM の翻訳を始めたころには既に20%ぐらい翻訳がされていました。いろいろな方が参加されていたことが Crowdin の履歴からわかります。現在では残念ながら Crowdin に参加している日本語のローカライズ担当者は, 筆者ともう1-2人ぐらいになりました
CM の前回の Stable アップデートまではほとんどワンマンで行っていたのですが, BeatSaber のことをあまり知らない状態では限界があり, 今回アドベントカレンダーで記事を投稿するにあたり X で有識者の方に協力を仰ぎました
現在では Discord で翻訳のアドバイスをいただきながら作業を進めています。こちらでタスク管理も行っています。個人用途が主ですが, 誰でも要望があれば反映できるようにしています。もし興味がありましたら下記連絡先よりお問い合わせいただければと思います
翻訳方針(1): 読みやすい文章にする
ここからは具体的な翻訳方針の話に移ります。ガッチリしたものというよりは, 翻訳するに当たって筆者なりに気をつけていることぐらいの認識です。Discord に載せている翻訳方針を拡張したものになります
まず目で見て「読みやすいこと」。機械翻訳との差別化で, 自然で読みやすい文章になるように心がけています。機械翻訳は原文を直訳的に翻訳する傾向が強く, 書いてあることの意味はわかるんですが不自然に感じることもけっこうありますよね。ソフトを使用していて「ん?」と引っかかるところをなるべく少なくなるように訳文を考えています
機械翻訳の傾向として多いのが余分な主語。最近こそ精度もこなれてきましたが, 「あなた」に問いかける場面が非常に多い。あと用語もけっこう直訳することが多くて, 意味はなんとなくわかるんですが正しいものになっていない。たとえば light を光と訳したり。光といえば光だから意味はわかるんですけどね・・・。なので, 頼り切りになるとそれはローカライズとは言えないと思っています
え? ここまで読んでおまえの文章は読みにくいって? 悪かったな
翻訳方針(2): 表記揺れをなくす
これも読みやすさに関係することで, 同じ単語の訳がいくつもあると引っかかりを覚えます。細かいところかもしれませんが, 全体をみてみるとけっこうあることに気づきます
特に Crowdin などを使用して共同で翻訳作業をするときに, そうした表記揺れが起こりやすいです。CM のように先にいくつか翻訳されているプロジェクトに参加する場合, まずは全体を見通して, 表記揺れや機械翻訳に頼り切っているところがないかの確認を行うようにしています。Crowdin では他の翻訳を検索できるので, 自分が翻訳する際にその語がどういう翻訳をされているかを確認できます
たまに「こうとしか翻訳できないだろう」と思っているものでも意訳がされていたり, 日本語がよくわかっていない方の翻訳で「超絶 機械翻訳やん」って状況を見ることがあります。あまりにおかしい訳なら遡ってすべて修正しますが(先述の「光」もそう), 意訳の場合はけっこう判断が難しいですね。必ずそうした理由があるはずなのでその意図を読み解こうとするのですが, もう前任者がおらず, コメントも残っていない。読者の方ならどうしますか? 筆者はそのままにするか, コメントを残してサラッと修正提案を行います。ごめん M 氏
Discord では用語のチャンネルを作って確認しやすいようにしました。すべてを網羅しているわけではないんですが, 期間をあけると自分でもどう訳したかわからなくなることがあるので, こうしたメモってかなり大事です。訳としておかしければツッコミも入れやすくなりますし, より統一感のあるローカライズに仕上がっていきやすいです
表記揺れは翻訳だけにかぎらず, 記号にも当てはまります。するどい読者の方なら本文中の括弧()が全角であることやアルファベットの前後と半角コロンのあとに半角スペースがあること, 段落の最後に句点がないことに気づいたかと思います。こういう記号の統一も読みやすさにつながりますし, 統一されていないと見る側からすればいい加減だなと思われる要因になります。全然関係ないんですけど, するどい読者なら~って言い回し, けっこう読んでてイラッとくるけどなぜか1回は書きたくなるんですよね。本文中に表記揺れを発見した場合は筆者にこっそり教えていただけると助かります
翻訳方針(3): 借用語の多用は避ける
CM が専門ソフトである以上は致し方ないところではありますが, カタカナ/英語の借用語の多用は避けています。CM を初めて使うひとでもなるべく理解しやすいように, 言葉選びを慎重に行っています
借用語とは, 借りてきた猫ならぬ借りてきた言葉です。日本語に本来ない概念(言葉)を外国語からもってきて, 日本語に含めたものです。これはどの言語にもあるものですが, 日本語の場合はこれをカタカナやアルファベットで表記します。たとえば「ノーツ」もその一つ。借用語を使うことで多くの未知の概念を, 日本語として表現することができるようになります
それならわからない単語を全てカタカナやアルファベットで表せばいいかというと, そういうわけでもないのが翻訳の難しいところ。借用語ばかりになると「パルスのファルシのルシがパージでコクーン」ばりによくわからない文章になってしまいます。そもそもわからない言葉をわかる言葉として翻訳するのがローカライズなので, 借用語の頻繁な使用は避けたいところです
とはいえ, BeatSaber に普段から馴染みのある方なら大半の用語が知っている範囲内だと思いますし, わからないことを調べる姿勢は大切です。いま別の訳語にしている言葉も将来的に借用語に置きかわる可能性はあります。あまり頻繁に変更しても使用する側は大変だと思いますので, そのあたりは時機を見てやっていくつもりです
現状認識と今後の課題
現在のローカライズの問題を述べておきます
フィードバック不足
まず圧倒的なフィードバック不足があげられます。これは翻訳を始めて以降, 積極的にフィードバックを募らなかった自身の情宣不足によるところです
Stable アップデートがあったのが今年の7月で, そのときに自身の担当部分はインクルードされていました。ちょうどその頃から定期的に X で話題を検索し情報収集を行っていました
しかし, ローカライズについてのフィードバックは記事を執筆している11月現在も乏しいのが実情です。フィードバックをしようとしてもどこにしていいかわからないという事情があると思います。というか, 今回アドベントカレンダーに参加させてもらったのもその情宣が目的の一つであったりします。今後はもっと広くフィードバックを得られるよう, マッパーさんからのご意見を頂戴しながら, 気軽にフィードバックできるような体制づくりに努めていくつもりです
翻訳の不十分さ
数日程度の突貫工事でローカライズを行ったため, いたるところに不十分な翻訳がみられます。上述の「翻訳の方針」で述べた「読みやすさ」や「表記揺れ」などの観点からまだまだ不十分と言わざるを得ない部分があります
不十分な部分は実装の不手際によるものを除けば, おのずとトランスレータの力量の問題, つまりは筆者自身の能力不足が問題点として浮かんできます。筆者が感じている自身の問題については以下の通り:
英語能力の不足
BeatSaber の知識不足
CM の操作経験が足りておらず, 内部の仕様や用語に対する理解が浅い
前回アップデート分の翻訳について少し言い訳をさせてください。ローカライズを行うにあたり, ほんらいはビルドテストという手法をとることで, CM 上での実動作を確認しながらローカライズテストもおこなうのが理想的ではありました。こうすることでプログラムを実際に動かしながら, 違和感のあるところや表示上のズレなどを確認することができるようになります
ところが, Crowdin を使用しているからなのか CM はローカライズテストとしてのビルドを想定していないようで, ドキュメントがありません。いちおうビルド自体は可能であるものの, Unity を使用する点から難易度の高いものであるため, ビルドテストを行わずに CM で項目を検索しながら翻訳を考える手法をとることにしました。したがってこのときは一度 Stable を出してもらってから, ダメなところを直していく方針でした
CM ではこうしたテストができないので, 常に翻訳のチェックを行う必要があります。表示上のズレは実地で確認しないとわからないところもありますが, 訳の不正確さや表記揺れなどはアップデート前の確認段階で発見できるはずです。今後は軽率な翻訳アップデートは行わず, 確認を重ねて十分なローカライズを行うつもりです
個人の問題について今後の展望を。英語能力については今後も学習を精進していくつもりです。言語学習に王道なしとはよく言ったもので, 一朝一夕で身につくものではないため, 日々の学習が必要不可欠です。BeatSaber については実際のプレイを通じることによっても, 今後見識を広めていくつもりです。これまでの翻訳作業で痛感しましたが, インターネット上に BeatSaber の日本語ソースがほとんどないため, 幅広い情報収集を行うにはプレイヤー目線で見ていく経験が必要であると感じました。そして CM。筆者はこの半年間マッピングを続けてきましたが, まだまだわからないところがあるように感じます。マッピングを始めた当初は使っていくことでなんとなくわかるだろうと高をくくっていましたが, 知らない機能については当然スルーする傾向があるため, 今後とも用語を理解をするための学習が必要だと思いました。以上を一言でいうと「がんばって勉強します」になりますかね。言ってて虚しくなってきたわ
いまでは前回の翻訳でダメだった部分がわかってきました。今回から姚明(やおみん)氏に協力していただけることになり, 用語の意味など不透明だった翻訳箇所にも手をつけることができるようになりました。早速ご指摘をいただき, 翻訳の修正にあてています。まだまだご不便をおかけすることになるとは思いますが, 次回のアップデートにご期待ください!
文字化けによる表示不具合
CM では残念ながら日本語などの CJK フォントが入っておらず, せっかく翻訳しても表示されない問題が起きています(□が豆富のように見えることから豆富文字と言われたりします)。こちらは開発者も認識している問題で, 他の方からも改善要求があがっています。重大な問題なので, ローカライズを担当している身としては早く対応していただけるとありがたいのですが・・・。実現に向けてフィードバックを行っていく予定です
設定が日本語で検索できない
ほとんど話題にしているひとを見ませんが, せっかく日本語にしたのに日本語で検索できません。これかなり致命的です。こちらも文字化け同様に CM 開発担当者へのフィードバックを行う予定です
さいごに
長時間ありがとうございました。簡略ながら謝辞を述べさせてもらいます。主宰のはるふぁ氏と翻訳にアドバイスをいただきました姚明(やおみん)氏, 誠にありがとうございました。また, CM の翻訳にあたり様々なインターネット上の記事を参考にさせてもらいました。このアドベントカレンダーもその一つで, ChroMapper の機能紹介などから用語を知って一部を訳語に充てています。先人の記事がなければ翻訳は遂行できなかったと思いますし, 感謝の意に堪えません
MMA2 からの移行にともない盛んに紹介されていた ChroMapper も歳月が流れ, 機能のアップデートが増えてきました。当然のことながら設定項目も増え, 以前にはなかった項目が多く登場しています。数年前と今とで基本的な機能にさほど変わりはないものの, いくら探してもこの語に当てはまる日本語がないといったことがよくありました。また, 新規マッパーの方から CM の使い方がよくわからないといった話も耳にします。今後は CM の機能紹介などを通じて, 界隈に通じる用語がより広く膾炙していくことを望みます
冒頭の繰り返しになりますが, 英語ができればそれでいいとの考えに筆者は与しません。もちろんできることに越したことはありませんが, ふだん使い慣れている言語が利用できる状況は, ローカルにおいては何よりも優先するものだと考えます。子供の頃, 算数ドリルに書いてある Step の文字をみて近所に住んでいた私の算数の先生が激怒し, 出版元に「英語がわからない子どもに英単語を説明もなく載せるとは教育者として何事だ」と連絡したのを思い出します。そこまでラディカルな考えではありませんが, ユーザ体験としてよくわからない英語を雰囲気で使うよりもローカライズされたほうが良いとの考えをもっていますし, そのために趣味の一つとしてではありますが, 行動している次第です
CM の翻訳はまだまだ発展途上にあります。マッパーの皆様からのフィードバックをお待ちしております。誤字や脱字, 表記揺れ, 翻訳の不透明部分など, CM を使用していて気になる点があればご指摘くださると嬉しいです。一緒に BeatSaber マッピングの裏方を支えていきませんか?
実際に翻訳したい方: https://github.com/Caeden117/ChroMapper?tab=readme-ov-file#localization
フィードバックだけ送りたい人向け: https://odaibako.net/u/akawshi
Crowdin に参加される場合は参加申請を送ったあと, GitHub に記載されている Discord サーバで確認の連絡を行うと, スムーズにコトが運ぶと思います。翻訳作業用の Discord サーバに参加したい方は, お手数ですが Discord の akawshi(ID 同じ)までご連絡ください
公開後, 一定期間は X でエゴサをしています。本記事についてのご感想, ご批判, 不備等のご指摘, 私怨, 美味しいペペロンチーノの作り方, 空中分解的論破曲芸などございましたらご自由にどうぞ
11月某日 安寧の地を求めて ギョウブマサタカオニワ(a.k.a wshi)