翻訳のコツ のバックアップソース(No.6)

Note/翻訳のコツ?
Top/翻訳のコツ
*翻訳のコツ [#r409c829]
 このページでは、Mod翻訳において知っておくと有用な知識やコツをまとめます。Wiki独自のルール等に関しては[[翻訳ガイドライン]]にどうぞ。

**目次 [#me42c140]
#contents

*各種仕様 [#y5c814a7]
**Constructionset [#k14c675d]
***export [#v068bf96]
-CS1.2とCS1.0(CS1.1はCS1.0と同じ)は出力形式が異なる((新たにそのデータを利用するQuest名が挿入された))。しかし、全てのカテゴリではなく、DialogueとNamesのみである。他の、QuestStages・Names・Descriptions・ScriptMessages・GameSettingsは同じ
--例:Dialogue (FormIDとサブカテゴリ名の間にQuest名が挿入)
#pre{{{
CS1.0形式:FormID: 0018D81C	TimeToGo	0	You need to go now.
CS1.2形式:FormID: 0018D81C	MQ00	TimeToGo	0	You need to go now.	
}}}
--例:Names (サブカテゴリとデータの間に "tab" "半角スペース" "tab" が挿入される)
#pre{{{
CS1.0形式:FormID: 00000007	Player	NPC_	Bendu Olo
CS1.2形式:FormID: 00000007	Player	NPC_	 	Bendu Olo
}}}
-ModをCSで読み込みexportを行なえばMod単体のデータが取り出せると思いきや、Vanillaのデータも一緒になっている(つまりexportされたデータは Vanilla+Mod)。よってMod単体のデータを取り出す為にVanillaの部分を除く必要がある (テキストの差分を取り出すTool等で行なう)
-BooksはExportを行なうとOblivion.exeと同じ階層の BookExport ディレクトリに出力される。ファイル名は [書籍のEditorID].txt((括弧の[と]は説明用で実際にはつかない)) となる。但し、表示用の簡易HTMLタグが抜け落ちてしまうので翻訳で使用するには難点がある。よって日本語化パッチに同梱のBOOK_EXPORT.exeを利用する事がモアベーターである(こちらならタグが抜け落ちない)
***import [#sc545eb3]
-Dialogue等はimportするだけで反映するが、ScriptMessagesに関しては各Scriptの編集画面で''Save''するか、''Recompile all''する必要がある。但し、後者は無関係なScriptまでRecompileしてしまい、ローカライズしたModに不要データが組み込まれて不具合の元になる。これをクリーンアップするには [[TES4Gecko>http://www.tesnexus.com/downloads/file.php?id=8665]] が有用である
-ScriptはScript Editorで見る事の出来るもの(Named Script)の他にも、Dialogue等にも存在する断片的Script(Result Script)もあり、これらもRecompileしなくてはならない (上述 Recompile all の対象外)
-importするデータにおいて、行の順番は気にしなくて良い。よって翻訳時に自分の好きなようにソートして良い((FormIDでソートすると大概において便利である))
-Books は export で出力が行なわれた BookExport に翻訳済データを配置すれば import が出来る。但し、importされるデータには冒頭に<div align="left"><br>が付加され、改行は<br>になる(強制的に簡易HTMLモードにされる)。これを嫌う場合は、手動でCS上からちまちま貼り付け処理をするしかない

***言語/文字コードに関する問題 [#y7c3ef58]
-基本的に日本語の表示には対応してない(一部表示は出来る部分はある)。表示が化けるだけで日本語のimport/exportには問題は無い
-日本語を表示できるようにしたい場合はパッチを当てる必要がある。
--CS_1.2.404_ja_patch_build*.7z [[ファイル置き場>http://oblivion.z49.org/files/]]
-日本語データをimportする場合、その文字コードは SHIFT_JIS でなくてはならない((どっちかというと、日本語化パッチの仕様))
-文字コードが原因でexportデータ上の一部の記号が文字化けを起こす事が有る。次の例を参考のこと
--英語圏(正確には、ISO-8859-1(Latin-1)という文字コード)で用いられるアポストロフィーには2種有り、一方はASCII領域にあるので日本語環境でも問題なく表示できるが、もう一方がShiftJISの2バイトモードの先頭部分にあたる領域(0x81〜0x9F、0xE0〜0xEF)に存在する。故に、その領域に存在する文字を使われると日本語では化けてしまう(参考:http://www.shtml.jp/mojibake/ichiran.php )
--参考先を御覧になればお分かりの通り、他にも引用符([[WikiPedia.ja:引用符]])も含むので油断は出来ない
--化けた文字を解読する場合は、バイナリエディタ等でバイナリの値を読むのがベスト
  痴  = 's   (バイナリ値 0x92 0x73)
  稚  = 't   (バイナリ値 0x92 0x74)
  致   = 'v   (バイナリ値 0x92 0x76)
  値   =  'l   (バイナリ値 0x92 0x6C)
  知   = 'm   (バイナリ値 0x92 0x6D)
--邪道な方法かもしれませんが、化けるテキストをOfficeXPのWordで読むと文字コードを指定して読めるので楽に元の文字が解読できるかもしれません

**Oblivion.exe [#hb4b9c18]
***基本 [#ecf4f0e2]
-[QUOTE]はゲーム中ではダブルクォート(")に置換される。これはCS上でダブルクォートを使用できないことの回避策と思われる(すなわち、翻訳データでダブルクォートを使用してはならない)
***書籍類の簡易HTMLモードとプレーンテキストモード [#b275a103]
-文の冒頭((恐らく、空白文字の類は無視される))が簡易タグの場合、『簡易HTMLモード』(簡易タグによる装飾有。改行は<br>や<p>等で行なう)になり、そうでない時は『プレーンテキストモード』( <や> はそのまま表示される。改行は改行として扱われる)として解釈される。『簡易HTMLモード』で < や > を用いるとタグとして解釈されうるので使用してはいけない
-各種タグの概説 (詳細はCSWikiを参照の事)
--<br>:一行の改行((<br>のみの行は改行されない。改行させたい場合は 半角スペースを<br>の前に置けばよい))
--<p>:二行の改行
--<div>:align='right/center/left'で位置を指定
--<font>:color='rgb', face='1/2/3/4/5/Font名'(iniのSFontFile_*で規定されているFont)
--<hr>:改ページ。Scrollでは無視
--<img>:

**日本語化パッチ [#rff382e1]
***基本 [#e36865c7]
-Oblivion.exeは英文では、改行で単語を半ばで切らないように、文末に近い単語間の半角スペースで自動的に改行を行なう仕様となっている。ところが日本語化パッチではこれが問題となり、半角スペースがあった場合、意図せぬ部分で改行されてしまうことがあった。そこで、昔の日本語化パッチ(v0.07付近以前)は 、''半角スペースを表記したい場合はアンダースコア/アンダーバー(_)で代用する''(ゲーム上では半角スペースになる)という仕様で回避を行なっていた。ところが、日本語化パッチv0.08以降で処理する日本語の場合は半角スペースでは改行はしない((readmeより:行末文字がShift-JIS 2byte、Shift-JIS 1byteカナの場合は、半角スペースの位置で改行させないようにした))ようになった。よって ''半角スペースを表記したい場合はアンダースコア/アンダーバー(_)で代用する'' という事は現行の日本語化パッチを使うなら必要ないといえる

***書籍において [#leb23fdc]
-''書籍データの始まりがタグの場合、簡易HTMLモードになる''とされているが、日本語化パッチとの兼ね合いでこの切り替えは多少複雑になっている。検証結果(v0.15 beta)は以下の通り
++簡易HTMLモードと解釈される
---最初の行がタグの場合
---改行… タグ  (タグの前に改行のみが1個以上有る)
---半角スペース 改行 … タグ (タグの前に半角スペースと改行が有る) ((一つ上も含め、これは通常のOblivion.exeの仕様と思われる。『空白文字(半角スペース、改行、タブ等)のみがタグの前に有る場合は判定で無視される、という法則と推測』))
---日本語(全角文字) …タグ((これは日本語化パッチの処理から来る仕様と思われる。実際こんな記法は使用しないとは思うが、間違ってこれに当てはまる記述をしないよう気をつける必要はある))
++プレーンテキストモードと解釈される
---タグより前に半角英数が有る
-レイアウト調整は全角スペース( )やアンダースコア(_)で行なえる。また、現行の日本語化パッチなら半角スペースでも可能

*実際の作業 [#z7eccbaf]
 [[Mod翻訳方法メモ>http://oblivion.z49.org/modja.html]]が詳しいので、ここでは概要のみ

**翻訳する対象 [#s3ca2ce4]
-実際に翻訳を行なえばよいカテゴリは以下の通り
--Dialogue:台詞
--QuestStages:クエストのジャーナル
--Names:様々な物の名前。Namesの中のサブカテゴリ、DIALはちょっと変わっていて、会話の選択肢になる
--ScriptMessageboxes:このWikiでは長くて冗長なので ScriptMessages と記述 (boxで無いのも多いし)。Scriptの出力するメッセージ。画面左上に出る文字や、Scriptの出すダイアログ
--Books:書物
--Descriptions:ローディングのときに出るtips他。殆どModでは利用されない
--GameSettings:UI上の文字列。殆どModでは利用されない
-上述のように、DescriptionsとGameSettingsはほぼ利用されないので恐らく無視しても構わない
-Namesは全て翻訳できれば言う事は無いが、大概膨大なのでDIALだけ翻訳を行なえば十分
-NamesのRACEサブカテゴリは翻訳を行なうと会話で不具合((口パクが無くなったり、台詞音声が再生されなくなるらしい))が発生するらしいので行なわない方が良い模様
**exportしたデータ(Vanilla+Mod)からMod単体のデータを取り出す方法 [#i2eb784e]
+Vanilla単体のデータを取り出す(oblivion.esmのみ読み込み、export)
+取り出したVanillaデータをテキストエディタで FormID でソート
+Modを読み込みexport (このデータが Vanilla+Mod)
+取り出したVanilla+Modデータをテキストエディタで FormID でソート
+テキストの差分を取るTool((diff.exe、WinMerge等))でVanillaデータとVanilla+Modデータの差分を取り、Modの分のデータを取り出す

**データサイズ制限 [#u9a66b23]
 一部のカテゴリにはデータサイズ制限がある
***Dialogue [#m9fbc023]
-Oblivion.exeはDialogueの表示において文字列の長さに制限がある(Topic(CS上で Topic Text と出るエリア)に関しては38、本文(CS上で Response Text と出るエリア)に関しては150。恐らく単位はbytes)。これを改善したい場合、ConstructionSet.iniに次の設定(Topic長50、本文長255の設定)が必要 
#pre{{{
[Localization]
iExtendedResponseLength=255
iExtendedTopicLength=50
bAllowExtendedText=1
}}}
-Oblivion.ini等は弄らなくて良いのでplayer側に手間が増える事はない((但し、ダイアログ表示の文字数はData/Menus以下のUI設定用XMLの設定の影響も受けるので注意は必要です))
-ゲーム内で一気に表示される文字が増えるので、モニタ解像度を変えて確認する必要がある(小さくて読めなくは無いか、等)
***Script [#a22cbfd6]
-Scriptはサイズ上限が一つあたり15kb付近にあるらしい。よって大きなサイズのScriptを翻訳する場合、翻訳テキストを詰め込みすぎてそれを越えないように注意する必要がある((日本語化しただけでそれを超える事は殆ど無いとは思うが))
*その他参考資料 [#q9e688de]
-[[CSWiki:http://cs.elderscrolls.com/constwiki/index.php/Main_Page]]
-[[Mod翻訳方法メモ>http://oblivion.z49.org/modja.html]]:Modの翻訳方法のメモ

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS