ひとつのアプローチ-簡体中国語版を使う

Last-modified: 2012-02-13 (月) 06:53:30

マイトアンドマジックの英語版MODを導入するのに障害になるのは
○文字コードの違い
○イベントナンバーの違い
です。

私たちが普段比較できるのは日本語版と英語版のみですが,マイトアンドマジックは世界三大RPGとうたわれるだけあって,世界十数カ国で各国言語版で発売されています。
他言語でも,半角英数で文字が表示できる国の版はあまり参考になりませんが,日本語と同じ2バイト文字を使用する中国語版と韓国語版は,フォントの変更などで日本語を表示させる見込みはあります。イベントナンバーが違わなければ,の話ですが。

簡体中国語版に注目したのは,ネットの深部でMM6.EXEの簡体中国語版デバッグモード入りファイル(http://www.celestialheavens.com/forums/viewtopic.php?t=9831)に出会った際,そのReadme.txtに
   Some chinese font mapping code in the mm6.exe,so that it can show not
only western languages letters but also chinese charactors.
という一文があったことです。
   そうか,実行ファイルにフォントマッピングコードがあるから,それぞれの言語で表示がされるんだ
   しかもこれは英語サイトで紹介されていたから,英語版で使用する分には何の支障もないのかもしれない
つまり,簡体中文版と英語版との間には互換性があるかもしれない,と思い至ったのです。

そこで,簡体中国語版MM7を入手しました。
(あんまお勧めはしかねますが…
http://www.rayfile.org/show.php?tid=26684
で、rarのところをクリックして、朕通下載が表示されていたら、その右の三角をクリックして申信下載が表示されるんでそこをクリックしたら落とせるかなぁ…)
さっそくインストールしてみます。見事に中国語です。ムービーの音声まで北京語の違和感ある響きに聞こえます。
日本語Windows上でインストールしたので,インストール時のメッセージは中国語表示がおそらくフォントの不足であちこち欠けていたのに,ゲームが始まるとゲーム内では簡体字がフルに表示されており,欠けも見られません。
さしあたり,会話文とスクロールなどアイテムの文言が日本語化できれば,遊ぶのに支障はないはずですので,Events.lod内のNPCTEXT.TXTをMM8LevelEditorで取り出して覗いてみます。
奇妙なことに,秀丸の自動認識は簡体中国語版NPCTEXT.TXTの文字セットを日本語EUCと判断しました。まさかと思って,日本語EUCで保存したNPCTEXT.TXTをEvents.lodに組み入れてMM7を起動してみましたが,ゲームが始まる直前にハングします。
ウィキペディアなどで調べてみると,EUCは

日本語EUC

JIS X 0208ベース (EUC-JP)

JIS X 0213ベース (EUC-JIS-2004)

韓国語EUC (EUC-KR)

簡体字中国語EUC (EUC-CN)

繁体字中国語EUC (EUC-TW)

など各国版があります。
繁体字中国語EUCは台湾で使われるもので文字コードに平仮名や片仮名が存在しないですから今は考慮しないとして,秀丸の反応から考えるに,簡体中国語版MM7には簡体字中国語EUCが使用されている公算が高そうです。

まずは,気になっていたので,簡体中国語版MM7に,MM7Rev4modを構成するEvents.lod,GAMES.LOD,ICONS.LODを投入し起動してみます。
すると,アイコンや文字のすべてが英語化され,簡体中国語版が英語版に化けてしまいました。ゲームを開始してみますが,序盤を見る限りスムーズに進行します。
乱暴な方法でしたが,日本語版MM7にMM7Rev4MODを強引に組み込んでみたときにはエリアから出たときや攻撃が当たったときにゲームがフリーズしたことを考えると,簡体中国語版MM7と英語版との親和性はかなり高そうです。

今度は,簡体中国語版MM7で日本語を表示させられるかどうか,やってみます。
簡体中国語版MM7のファイルに日本語のShift-Jisはまず通らず(試す気にもなれないが,まずゲームを始めた直後にフリーズするでしょう),上記のとおり日本語EUCもはねられました。そこで,簡体中国語版MM7のNPCTEXT.TXTファイルを開き,日本語EUCで文字列を差し替え,エンコードを簡体字中国語(GB2312)に切り替えて保存して,Events.lod内に書き戻してみました。
中文版にEUC日本語に変換した文字を貼り付けてEVENTLODに組み込み.JPG
すると,なんとか日本語っぽい表示が出せるようになりました。しかし,一部漢字は簡体字のままですし,カタカナは完全に化けます。
その3.JPG
ひらがなについては問題なさげに見えたので,ひらがなにつきあらためて同様の変更をしてみると,「ー」(長音)以外は何とか表示させることができました。「ー」(長音)の代わりに「-」(全角マイナス)を用いれば,ひらがな表示については問題なさそうです。

上記により,MM7Rev4modを日本語で遊ぶ方法として
 ○簡体中国語版(または,同様に韓国語EUCを使用していると思われる韓国語版)MM7を用意し
 ○MM7Rev4modを適用し
 ○会話等表示データの箇所をひらがな化
する,という手段が,候補のひとつとして挙げられるようになったのではないかと思います。

あと,試してみたい方法として
 ○英語版MM7の文字コードをShift-Jisもしくは日本語EUCに切り替える
 ○簡体中文版MM7の文字コードを日本語EUCに切り替える
などがありますが,そのためには実行ファイルMM7.EXEらを変更せねばならず,これらをプロテクトしている仕組みが解明できていないので,しばらくは試せないようです。


MEMO
○MM7英語版 欧文(たぶんMS Sans Serif)
○MM7日本語版(Shift-Jis)
○MM7簡体中国語版(たぶん簡体中国語EUC)

・英語版のMODのLODファイルを簡体中国語版に組み込んだら,通常動作した(ようだ)
・簡体中国語版のLODファイルのテキストに,Shift-Jisから日本語EUCにエンコードを変更した日本語版のテキストの文字を貼り付け,簡体中国語EUC(GB2312)で保存したら,通常動作し,ひらがなのみ日本語で表示された(ようだ)
・MM7.EXEと,対応するLOD内のテキストのエンコードを替えたものを差し替えれば動くように思える(MM7SETUP.exeとLauncher.txtのエンコードの違いに要注意)

方策:
注意:MM7.EXEの国籍(=エンコード言語)とLOD内のテキストファイルのエンコード言語を合わせる
○英語版MM7に簡体中国語版MM7.EXEを入れ,MODを組み込み,MODのテキスト部分を簡体中国語EUC(GB2312)に変更して,翻訳文を日本語EUCのひらがなで貼り替える=MODを日本語(ひらがな)で遊べる?
○英語版MM7に日本語版MM7.EXEを入れ,LODを日本語版のLODに差し替えたら,日本語版として動作する?(MM7Revは使用できないが)
○英語版MM7にMODを適用し,MM7.EXEを日本語版に差し替え,Events.LOD内のテキストファイルを日本語(Shift-Jis)に翻訳し差し替えたら,動作するだろうか。
○日本語版MM7に英語版LODを導入すれば英語版そっくりの表示になるか?(以前試して,ダメだったような…)
○MS Sans Serifを削れば英語版でも日本語表示がなされるか?(望み薄)


追記(20090823)
○簡体中国語版MM7には、英語版のパッチ1.1と、unofficialパッチ1.2が使える(ようだ)。つまり、パラライズのバグが修正され、XPグラボへの対処が若干なされ、MM7本来のバグも直されているはずだ。
 そこで、簡体中国語版MM7に英語版のパッチを適用してMM7RevMODを適用し、音声と映像ファイルには日本語版を組み入れ、正常動作(するように見える)ファイル群を今日生成した。
 XP対応パッチが効いているので、当方の環境だと本来の日本語版MM7はインストールしてもソフトウェアアクセラレーションしか選択できず、Direct3DSOUNDは使用できず、かつ起動してもエラーではねられるのに、上記混成ファイル群だと、ハードウェアアクセラレーションとDirect3DSOUNDが使用でき、かつ起動し遊べた。
 上記混成ファイル群のインストール方法としては、(XP環境で遊べる遊べないにかかわらず)日本語版MM7をインストールし(システム異常を避けるため)、インストールフォルダの中身をすべて上記混成ファイル群に差し替え、起動する、という手順になりそうだ。なお、ゲームするときCD2を要求されるが、これは実はどの国のCD2でも有効なようだ。英語版も簡体中国語版も、日本語版のCD2を入れて問題なく認証された。
 本当は、中文版などMM7.EXEの使用のみにとどめて残りは英語版か日本語版をベースにしたいところ(配布も楽だから)だが、さしあたり実際に動くことを示して賛同者を得たいので、上記混成ファイル群を用いることを前提に、MM7Revの会話及びスクロールの文面のひらがな化を進めたいと思う。
 翻訳には自信がないので、機械翻訳を用いて、原文(英語)と日本語を同時表記させる方法を用いたいと思う。直しは、誰かの指摘があったら、にしないと、自分ひとりで悩んでも正解にはたどり着けまい。まあ、原文と訳文両方を載せると一画面に収まらない場合、どのような表示になるか、エラーではねられないか、とても心配だが。
PS
 ついでに、キャンプ時の空の画面を評判の良いらしいMM6のものと差し替え、店の映像、音声などは他のMODの秀逸なものを組み入れられるとなお良いが‥時間が足りん‥

○スキルを変更できるSkill_Editは、上記unofficialパッチ1.2を適用したMM7-Rel.EXEにのみ使えるようだ。つまり、上記混成ファイル群でも用いることができるということだ。そこで、マイトアンドマジック総合スレ(16代目)の
  457 :名無しさんの野望[sage]:2007/04/28(土) 01:03:53 ID:gLECTR6a
   MM7
   1 巨人の国の泉のバグなし
   2 シーフ 修練スキル達人まで 魔法なし
   3 クレリック 弓スキル取得まで 取引スキル達人まで
   4 ソーサラー 弓スキルなし
   5 レンジャー 修練スキルと解除スキル 達人まで
   6 ドルイド 取引スキル 神位
   7 モンク 光闇かかわらず、自己魔法スキル 解除スキル 達人
   っていうか、だれかこんなふうに改造して!
を参考に、混合ファイル群のMM7-Rel.EXEを修正した。
 なお、MM7-Rel.EXEをSki_Editで修正する人は、ski_edit.ini内を「offset=972824」とすることになる。ちなみにこの数字は、バイナリエディタで見る限り、MM7-Rel.EXE内におけるスキルテーブルの先頭(02 03 02 03 03 02 03 04で始
まる)のバイト数と思われる。
 上記混成ファイル群は、今日現在最新のNorton360でスキャンし、何も出なかった。

○現状においては単なるMM7Rev4を適用した英語版と変わらないが、上記混成ファイル群を下記に置く。AnimsフォルダとSOUNDSフォルダについては自前(英語版でも日本語版でも)のものを使用してほしい。MEGAUPLOADは500MBを超すと有料会員しかダウンロードできないので、これはやむをえない。
http://www.megaupload.com/?d=8I1OLN6A

○簡体中国語版MM7のEvents.LOD内のテキストデータをチェックしたところ、簡体字があるファイルは
2DEVENTS.TXT Global.TXT SPELLS.TXT HISTORY.TXT
MAPSTAT.TXT PlaceMon.TXT MONSTERS.TXT STDITEMS.TXT
SPCITEMS.TXT ITEMS.TXT SKILLDES.TXT STATS.TXT
CLASS.TXT AWARDS.TXT SCROLL.TXT MARCHANT.TXT
TRANS.TXT AUTONOTE.TXT QUESTS.TXT NPCTEXT.TXT
NPCTOPIC.TXT NPCDATA.TXT NPCGREET.TXT NPCNEWS.TXT
NPCNAMES.TXT NPCPROF.TXT Lancher.TXT
と多岐にわたり、たしかGAMES.LOD内のすべてのSTRファイルにも簡体字は含まれている。

このすべてを変えずとも、表示に関わる部分だけ変えれば良いはずだが、果たしてその箇所は‥
テストの必要な箇所は、あまりにも多い。

追記(20090825)
○簡体字中国語(GB2312)において日本語の平仮名も表示できてしまう件について
 この状況は、日本語Windowsを使っている場合特有の事情かもしれない。
 Windowsには、いつのバージョンからかは知らないが、文字の呼び出しを受けた際、指定されたフォントの対応するコードに文字フォントがなかった場合、Windowsのデフォルトのフォントの該当コードを引っ張ってくるという機能がある。
 つまり、簡体字中国語(GB2312)が平仮名を読みに行った際、平仮名のコードにたまたま、簡体字中国語(GB2312)に偶然簡体字が定義されていなかったがために、Windowsが自動的に、日本語Windowsのデフォルトである明朝体かゴシックのフォントから該当コードの文字(平仮名)を拾ってきて表示して、結果的に日本語が表示できてしまっている、という可能性がある。たまたま、簡体字中国語(GB2312)ではカタカナの文字コードには簡体字が定義されていて、平仮名の文字コードには定義されていなかったための、偶発的な事情なのかもしれない。
 こうなると、簡体字中国語(GB2312)ではたまたまうまく平仮名が表示できたが、韓国語EUC (EUC-KR) や繁体字中国語EUC (EUC-TW)でも同じように表示できるとは限らない
し、あるいはまた、逆にカタカナも表示できるかもしれない、ということになる。
 たまたま手元に簡体中国語版MM7が手に入ったから、これを元に研究を行っているが、できれば他の2バイト言語版MM7を手に入れてテストし、同時に、英語Windows上でも平仮名が表示されてくれるか、についても別途確認しなければならないだろう。
 あぁ‥さらに時間が足りない‥

追記(20090829)
○良いツールが見つかりました。
http://www.pst.co.jp/powersoft/download/PsTxCvt115/PsTxCvt.htm
で紹介されている株式会社パワーソフトの「PsTxCvt」です。
秀丸のカナ→かな変換だと半角スペースも全角に変換されてしまいますが、上記ソフトだとそんなことはなく、一括してカタカナを平仮名に変換してくれます。ついでに、Shift-Jis→日本語EUCの変換もしてくれます。
あとは漢字を平仮名にするだけですが、うまく表示される漢字もあるので、それは漢字のまま残したいところです。
確かめるためには、いちいち文字を貼り替えてゲームをするか、一括変換した後、光と闇の双方について全編ゲームを解くか‥いずれにせよ、手間がかかりそうです。

20080831_2.JPG
まあまあいい感じになってきたのではないでしょうか。アイコンは英語版のものを使用しています。
あとはGlobal.txtをシステムに障らないよう修正できれば‥
20080831_3.JPG
休息の映像に6のものを流用。

追記(20091225)

○MM7上の文字コードの並びは大体GB-2312と同様のようですが,しかし本来平仮名は04区に,片仮名は05区にあるべきところ,なぜか平仮名は04区と08区に,片仮名は09区にあります。
本来,
01区,02区,03区,04区,05区,06区,07区,08区,09区
と並ぶべきところ,
01区,02区,03区,04区,01区,02区,03区,04区,05区
と並んでいるようなので,本来片仮名があるべき05区を指定しても片仮名が表示されないのです。
ですので,平仮名はともかく,片仮名の表示は簡単にはいかないと思っていたところ,いいツールが見つかりました。
KCTRANSという,コマンドラインでShift-Jisを簡体字の「似た」文字コードの漢字に交換してくれるソフトです。
これを通すと,かなり読める漢字に変換してくれます。ただし,「噂」とか「扱」,「罠」など数個の字は変換できないようでしたので,それは平仮名に換えてみることにしました。
手順としては
1.Shift-Jis環境で表示させたい文案を練る
2.KCTRANSを通して,似た簡体字の文字コードに変換したファイルを出力する
3.上記出力ファイルを秀丸などでエンコードの種類を「GB2312」にして開き,簡体字中国語版のEvents.LOD内の該当するテキストファイルを開き,貼り付ける
となります。

○テキスト変更の際の注意事項
2DEVENTS.TXT
店などのNPCの名前と職業
Global.TXT
画面とキャラ顔面との間の細い部分の表示文字。同時に,カレンダーなどの表題にも使われている模様
SPELLS.TXT
呪文の説明窓
HISTORY.TXT
歴史書
MAPSTAT.TXT
洞窟など入るときに出る土地名,洞窟名など
PlaceMon.TXT
不明
MONSTERS.TXT
モンスの名前
STDITEMS.TXT
アイテムの強化表示
SPCITEMS.TXT
アイテムの強化表示
ITEMS.TXT
アイテム名,解説
SKILLDES.TXT
スキル説明
STATS.TXT
能力説明
CLASS.TXT
クラス説明
AWARDS.TXT
達成イベント履歴
SCROLL.TXT
スクロール文字
MARCHANT.TXT
売買時の会話
TRANS.TXT
洞窟など入るときに出る土地解説,洞窟解説など
AUTONOTE.TXT
ノートの記載内容(師範情報など)
QUESTS.TXT
クエスト記録帳テキスト
NPCTEXT.TXT
NPCとの会話(1回目と2回目以降)
NPCTOPIC.TXT
NPCとの会話選択肢表示
NPCDATA.TXT
NPCの名前表示
NPCGREET.TXT
NPCとの会話
NPCNEWS.TXT
無名NPC固定挨拶
NPCNAMES.TXT
雇用するNPC名前
NPCPROF.TXT
雇用するNPC説明,会話
Lancher.TXT
起動時の表示(英語が無難)

などと,それぞれに表示の役割があることが判明したが,英語版や簡体中文版と,日本語版とはテキストデータの配置が異なっており,要するに
・日本語版 改行も併せて表示に影響
・英語版等 基本的に一行一データ,改行があっても認識できない
ので,日本語版の表示を参考にするのは良いが,まんま日本語版のデータそっくりにして変換すると,かえって簡体中文版では誤動作の元となる

○2chスレに報告した「簡体中文版をベースに日本語化したMM7」については,勇み足でMAPSTAT.TXT,MONSTERS.TXTなどが変換されておらず,Global.TXT内の因数の修正もできていなかったので,おそらく厩に入った時点でフリーズすると思われる。
原因は不明ながら,いじったのはテキストデータだけなので,原因はそのどこかにあると思われる。最悪,元の簡体字に直して様子見だが,いちいち,テストのためエメ島から始めなければならない点がなかなか鬱陶しい。

追記(20111003)
1.英語版で日本語表示できるようにする(実行ファイルを日本語表示可能にする(私には技術的に無理だし、ソフトの改変やリバースエンジニアリングは一般的に認められていない。製作会社(NWC)はすでにつぶれ、販売権は他社が買い取っており、開発元に許可を求めることも情報公開を要望することも不可)→データファイルの英文を日本語化)
2.日本語版で、英語版のMODと同じデータファイルの修正を試みる(実行ファイルの構造が日米で違う(まずサイズが違います)ようで、同じテクニックが適用できない箇所がある気配あり)
3.同じ2バイト圏である中国語版のMODを日本語化する(日本語化(GB2312のフォントを用いた日本語表記)の基礎は研究したが、肝心のデータファイルが見つかっていない(中華圏はTorrentでファイルを交換しているようですが…日本でのTorrent使用は避けたいですし、彼の地のファイルはウィルスに満ちています))
http://www.gamerhome.net/bbs/archiver/?tid-330724.html
などの記載から、中国ではMM7Rev4MODやMM6のカオスの陰謀をいち早く(1年前から)簡体中文版に組み込んでいるようです。
これはなおさら、その中文版のファイルを手に入れて日本語化を図りたいところですが…
中国では迅速などのTorrentでのファイル交換が一般的らしく、到底割って入れません。
ようやくそれらしいファイルを見つけてダウンロードをするとNorton君が反応するようなファイルばかりですし…

トップへ戻る