2013年8月26日月曜日

PAYDAY2 その2

翻訳作業や日本語化動作の確認のために、日本語テキストをゲームに適用するためのキットを作成。フォントも含んでいるのでこちらのみで作業可能。

PAYDAY2日本語化MODキット ver.0.1 こちらでver.0.2を公開

翻訳作業所のデータから日本語表示を行うゲームアーカイブファイルを作成するためのもの。コマンドラインベースなので、最低限その辺りが使える人向けです。使う方はreadmeを見てください。

PAYDAY1ではall_?.bundleというファイルにもフォントテクスチャを組み込まないと、alt+tabで画面切替をして再度ゲームに戻すとフォントが崩れる問題があったが、PAYDAY2でも同じだったので、上記キットではその辺りも対応。

19 件のコメント:

  1. 翻訳させていただいております。

    文字列置換対象の前後に半角スペースを開けるようにとありますが、必要ないのではないでしょうか。(原文は英語ですので単語と単語の間にスペースが必要ですが)
    それとも見た目的な問題上スペースを開けているということでしょうか。

    返信削除
    返信
    1. Payday1の頃に決めたルールなので、すでによく覚えていませんが、行末処理の関係だったような気がします。PAYDAYの行末処理は、単語単位での行末調整がベースですが、日本語のように単語間にスペースが含まれない言語では、最大文字数で強制的に改行されます。で、置換文字列の前後にスペースを配置したほうがうまく表示されたような気がしますが、試してみて問題なければ、なしでも構いません。

      削除
    2. 了解です。ありがとうございます。

      削除
  2. すいませんが質問いいでしょうか?
    5)日本語化アーカイブの作成
     repack_all.batをダブルクリックします。エラーにならずすべての作成が完了すると
    ありますがエラーにならないまで実行すればいいのでしょうか?

    返信削除
    返信
    1. repack_all.bat実行までの手順が正しければ、repack_all.batの実行ではエラーはでないはずですが、そこでエラーが出るということでしょうか?

      削除
    2. 返信ありがとうございます、
      はい、そこでエラーがでます。
      内容としては
      BundleUnpackerは動作を停止しました
      です。
      自分も間違えがないか再度説明書を読んでみます。

      削除
  3. こんにちは。
    PAYDAY2とは関係のない話題で申し訳ないのですが、お聞きしたいことがあります。
    現在Outlastの日本語化を進めておりまして、翻訳は終わったのですが、肝心の日本語表示ができておりません。
    「assets.SwfMovie」というファイルを日本語化すればいいというところまではわかりましたが、SwfMovieの編集ができず難航しております。
    UE製なのでScaleformで作成されているのではないかと思うのですが、gfxともswfとも違うようです。
    XCOM Enemy UnkownやDishonoredの日本語化フォントにもSwfMovieのファイルが使用されておりました。
    どういったファイルなのかご存じありませんか?

    返信削除
    返信
    1. Outlastは持ってないのでわかりませんが、UEではUI周りはgfxを利用するのがほぼデファクトなので、gfxのファイルだと思います。gfxと言ってもflashとの違いはヘッダのマジックのみなので、中身はflashです。gfxでは、フォントはflashの埋め込みフォントの仕組みをそのまま利用しています。

      UE的には、利用できるフォントはgfx以外にも元々持っているビットマップフォントも使えるため中には併用しているゲームもある(描画負荷がビットマップの方が圧倒的に低いため)ので、gfxのフォントだけ作成しても必ずしもすべてのテキストが日本語表示できるわけではありません。

      あと最近のゲームはUDKベースであまりカスタマイズしているゲームはないですが、swfMovieとかでも独自のヘッダが付加されているものもありますので、注意が必要な場合もあります。

      gfxフォントの変更は比較的簡単ですが、ビットマップは結構手間がかかります。

      削除
    2. お返事ありがとうございます。
      バイナリエディタで見たところ、確かにgfxファイルのようです。
      ↓が件のファイルでして、中文パッチから取り出したファイルも入っています。
      http://www1.axfc.net/uploader/so/3024366.zip

      どちらもGFXの前に文字列がありますが、これが独自のヘッダなのでしょうか。
      これのせいか単純にgfxやswfとして扱えないようです。
      両方とも後半のコマンドは同じでしたので、フォントデータを変更さえできれば行ける気がするのですが…。

      削除
    3. 持っていないゲームなのでダウンロードはしていませんが、最近はUEベースのゲームはほとんどチェックしていないので、以前試したいくつかのゲームだとswfMovieは確か前後にUEのヘッダ・フッタがついていました。中身はIDとサイズだったはずなので、ヘッダ・フッタ自体は複雑なフォーマットではないんじゃないかと思いますが、実際のデータを見ないと正確なところは言えません。

      ただ、UEゲームの場合、個々の単体ファイルよりもrepackができるかどうかが問題です。まずは、オリジナルのupkをunpackしたものをそのままrepackして、ゲームが動くことが確認できないと、swfMovieを作れたとしてもゲームへの適用は難しいと思います。

      私の知る限り、現状公開されているupkのrepackerはないですし、以前公開されていたものを使う場合は、Outlastのupkに対応していたらラッキーという感じです。ただ、開発は小さいスタジオのようですし、UDKそのままかもしれません。

      削除
  4. お返事ありがとうございます。
    確かに短いヘッダがついておりました。
    手持ちのunpacker/repackerが対応していましたが、1つのファイルだけ正常なunpackができなかったので、完全にそのままというわけではないかもしれません。

    そうこうしている内に日本語化されており、図らずも目的を達成してしまいました。
    ただ今後のUEゲームにも使えそうですし、jpmodさんのご意見を参考にしながらもっと解析してみたいと思います。
    何度もありがとうございました。

    返信削除
  5. 3)翻訳作業所のデータ取得
     jptext_download.batをダブルクリップして実行します。
    ここで何度実行してもファイルを書き込めませんでしたと表示されます。解決策があれば返信お願いします。

    返信削除
    返信
    1. ダウンロードしようとしているcsv等のファイルを別のエディタ等で開いているとかではないでしょうか。

      削除
    2. ありがとうございます!解決しました!

      削除
  6. 2)日本語テキストのパック
     pack_jptext.batをダブルクリックして実行します。の段階でこのエラーが出てとまってしまいます。何度も質問すいません。
    ---------------------------------------------------------
    日本語テキストをパックします。
    ---------------------------------------------------------
    0ec4fd9b9ea6694b.0.2788420249e07551 をパック
    150f1756ec9d6a22.0.2788420249e07551 をパック
    1d74c16a73c7bb44.0.2788420249e07551 をパック
    54538d88a23809c9.0.2788420249e07551 をパック
    68b9421389c7c84d.0.2788420249e07551 をパック
    8ce3d42e5eaa0c49.0.2788420249e07551 をパック
    98b4e510e6288993.0.2788420249e07551 をパック
    98e3b02f4fa7bd9c.0.2788420249e07551 をパック
    b0a292ebcebcd6f0.0.2788420249e07551 をパック
    e662a7e89423d28c.0.2788420249e07551 をパック
    fc444e0fbb60e23c.0.2788420249e07551 をパック

    ハンドルされていない例外: System.IndexOutOfRangeException: インデックスが配列の
    境界外です。
    場所 System.String.get_Chars(Int32 index)
    場所 Jpmod.Lib.IO.CsvFileReader.read()
    場所 Jpmod.Lib.IO.CsvFileReader.Load()
    場所 Payday.Program.Main(String[] args)

    返信削除
  7. もう一度、csvのダウンロードからやり直してもだめでしょうか。9/16は、最新のUPDATEへの更新作業をやっていたので、CSVの整合性が崩れてたときがあるかもしれません。

    返信削除
    返信
    1. jptext_download.batからやり直したのですがやはり同じエラーが出てしまいます・・・

      削除
    2. このコメントは投稿者によって削除されました。

      削除
  8. テキスト変換ツールにバグがありました。ver.0.2を公開したのでそちらを使ってみてください。

    返信削除