ArcanumJPEditor

Date:2012/09/01
Version:0.7
Auther:hikami
URL:http://hotstudio.net/serika/
Arcanum JP Wiki:http://hotstudio.net/serika/arcanum/

▼これはなに？
Arcanum: Of Steamworks & Magick Obscuraのmesファイルとdlgファイルの編集や、
その他ユーティリティ機能を備えたエディタです。
対応moduleはArcanumのみです。

▼準備
・[必須] dbmaker.exeをArcanumJPEditor.exeがあるフォルダにコピーして配置してください。
dbmaker.exeはTroika謹製のdat pack/unpackツールで、以下から入手できます。
http://www.terra-arcanum.com/downloads/
Arcanum Modding Tools > .dat utilities > dbmaker.zip

・Arcanum JP Wiki では Unofficial Patch 091225 適用済みの状態で翻訳を行っています。
他のバージョンが混在すると新たにバグが生じる可能性があるため、
参加する場合には Unofficial Patch 091225 の適用は必須です。

・既に翻訳済みのファイルを編集したい場合は、必要に応じてmod/Arcanum以下に配置してください。
翻訳済みファイルは現在のところ以下から入手出来ます。
http://hotstudio.net/serika/arcanum/index.php?title=%E5%AF%BE%E8%B1%A1%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB
翻訳済みファイル全てをまとめて入手したい場合は以下から。（ログインが必要）
http://hotstudio.net/serika/arcanum/index.php?title=Members:CreatePackage


▼基本的な使い方
・ArcanumJPEditor.exeを実行して下さい。
Arcanum/以下にひとつもdlgファイルまたはmesファイルが見つからなかった場合は、
dbmaker.exeを使用してArcanumからデータをアンパックして適切な場所に配置します。
作成指示ダイアログの指示に従って、Arcanum（とUOP）がインストールされたディレクトリを指定してください。
必要なデータが入ったdatファイルを展開後、不必要なディレクトリを削除します（しばらく時間を要します）。
このとき、600MB程度の空き容量を確保しておいてください。
この動作はunpack.batにて行われているため、コマンドライン上からでも同様のことを行えます。

・ファイルツリー
Arcanum/以下に存在するファイルを読み取り列挙しています。
このArcanum/のフォルダ構成はゲームで用いられるファイルの構成をそのまま保って
いるので変更を加えないようにしてください。
ツリーから編集したいファイルを選択してダブルクリックをすることでファイルを開く
ことが出来ます。

・MESエディタ
mesファイルを編集するインターフェイスです。
タブ最上部の編集できないテキストボックスに原文が表示されます。
その直ぐ下のテキストボックスは編集用のテキストボックスです。
下部のツリーからノードを選択することで編集したい文章を切り替えることが出来ます。

・DLGエディタ
dlgファイルを編集するインターフェイスです。
基本的にはMESエディタと同等ですが、幾つか追加されています。

上部の「Male Line/Female Line」タブでは、PCが男性か女性かによって話す内容が異なる
場合に選択可能になり、表示を切り替えることができます。

下部のツリーは、NPCとPCとの会話をツリー状に表示したものになります。
-ファイル名
	-NPCの男性用台詞1 / NPCの女性用台詞1
		-PCの返答1a
		-PCの返答1b
		-PCの返答1c
	-NPCの男性用台詞2 / NPCの女性用台詞2
		-PCの返答2a
		-PCの返答2b
		-PCの返答2c


中程のツリーは選択した会話ノードの実際の会話中での表示条件や選択結果を解析して表示します。
Int: PCのINTをチェックしその値の大小でそのノードが実際の会話で表示されるかを
決定されます。
Test: PCのINT以外のチェックを行い、条件を全て満たす場合にノードが実際の会話で
表示されます。
Result: このノードの会話を選択した場合に発生する結果です。
Response: このノードの会話を選択した場合に、次に表示される会話です。
Reference: このノードが参照されている会話ノードを逆引きしています。

関連するノードが表示されている場合は、これをダブルクリックすることで、
その会話ノードに移動することができます。


・次のラインへ
MESエディタでは、単純に次のノードに移動します。
DLGエディタでは、Response IDが存在する場合にそのIDのノードへジャンプします。

・Male LineをFemale Lineにコピー
・Female LineをMale Lineにコピー
対象の編集文を異性側の編集文にコピーします。
両性において同一文章の時に使用します。同一文章でない場合は確認のダイアログが
出ます。異性側の内容は消されるので注意してください。

・再生
選択している会話ノードに対応した、再生可能な音声ファイルがあった場合に、
それを再生します。

・停止
再生中の音声を停止します。

・編集前に戻す
最後にセーブされた状態まで編集テキストを元に戻します。
保存するとその時点の状態に更新するため、それより前の状態には戻せません。


▼ゲームで使えるようにするまで
成否はエディタ最下部のステータスバーに表示されます。
1.「駄目文字コンバート」を選択します。
2.「DATの作成」を選択します。
3.「ゲームへ配置」を選択します。


▼メニュー
・タブを閉じる
選択しているタブを閉じます。

・全てのタブを閉じる
開かれているタブを全て閉じます。

・ツリーを表示/隠す
左のファイルツリーの開閉を行います。

・保存
選択されているタブのファイルを保存します。
・全て保存
タブに開かれているファイルを全て保存します。
※保存先はmod/Arcanum以下にフォルダ構成を保ったまま保存されます。
オリジナルのファイルと混在しないようにしてください。
※うまく保存できない場合は、ArcanumJPEditor.exeがあるフォルダが読み取り専用に
なっていないか確認してください。
（オリジナルのフォルダとファイルは読み取り専用にしてあります。）

・最近編集したファイル
最近の編集して保存したファイル履歴が表示されます。選択するとそのファイルを
開きます。履歴は、history.xmlに保存されます。

・終了
終了します。

・元に戻す
選択されているテキストボックスの変更を1つ元に戻します。

・やり直し
選択されているテキストボックスの「元に戻す」によって戻された変更を1つ復帰
させます。

・切り取り
選択されているテキスト部分をクリップボードへ切り取ります。

・コピー
選択されているテキスト部分をクリップボードへコピーします。

・貼り付け
クリップボードのテキストを選択されている位置へ貼り付けます。

・全て選択
選択されているテキストボックスの文字列を全て選択した状態にします。

・検索
検索フォームを開きます。詳細は検索の項にて。

・駄目文字コンバート
mod/Arcanum/以下に保存された編集済みファイルから駄目文字を検出し、外字へと置換
します。コンバートされたデータはconv/Arcanum以下にフォルダ構成を保ったまま作成
されます。

・DATの作成
dbmaker.exeが必要です。ArcanumJPEditor.exeがあるフォルダにコピーして配置してください。
conv/Arcanum以下に保存されたコンバート済みファイルからゲームに使用可能なDAT形式
にコンバートします。ArcanumJPEditor.exeがあるフォルダに、Arcanum9.datと
Arcanum.PATCH7が作成されます。

・DATをゲームへコピー
正しくインストールフォルダのパスが指定されている場合、
Arcanum9.datとArcanum.PATCH7を適切な場所にコピーします。

・デバッグコンバート
全テキスト（原文含む）に「ファイル名-ID」を文頭につけてコンバートします。
ゲーム内で該当ファイルとIDを調べるための機能で、通常の用途ではなく正常に動作
しない可能性もあります。

・テキストエディタで開く
メモ帳ないしは指定したテキストエディタで、選択されたタブのファイルを開きます。
オリジナルのファイルを開いている場合は編集しないようにして下さい。

・テキストエディタでオリジナルを開く
メモ帳ないしは指定したテキストエディタで、選択されたタブのオリジナルのファイル
を開きます。オリジナルのファイルを開いている場合は編集しないようにして下さい。

・翻訳進捗率
翻訳の進捗率をライン単位で計算して、progress.txtに出力します。

・設定
ユーザ別の設定を行います。詳しくは設定の項にて。


▼検索
・検索文字列
検索したい文字列を入力します。

・検索範囲
検索範囲を指定します。

・検索対象
検索するノード内の要素にチェックを入れます。
通常はText Lineのみで良いでしょう。

・終端に到達したら先頭に戻る
最後まで検索し終わった場合、一周して検索し直します。

・大文字と小文字の区別をする
英字の大文字と小文字を区別するようにします。

・原文のみを対象にする
編集文を無視し原文のみを検索対象にします。

・完全一致
検索文字列と完全に一致した場合のみ見つけるようにします。

・正規表現を使う
正規表現を使用して検索します。一部の検索オプションとは排他です。


▼設定
・Arcanum インストールフォルダ
Arcanumをインストールしたフォルダをフルパスで指定します。
例：C:\Program Files\Arcanum
メニュー「ゲームへ配置」で参照されます。

・テキストエディタパス
メニュー「テキストエディタで開く」で参照されます。


▼技術的なこと
実際にはオリジナルのファイルと、編集用のファイルをセットにして扱っているのですが、
アプリケーション上では一つのファイルであるかのように扱っています。

オリジナルファイル Arcanum/
 ↓
 ↓editing(ArcanumJPEditor)
 ↓
編集用中間ファイル mod/Arcanum/
 ↓
 ↓convert(adr)
 ↓
コンバート済ファイル conv/Arcanum/
 ↓
 ↓DAT packing(dbmaker)
 ↓
Arcanum9.dat and Arcanum.PATCH7

dlgファイルの条件・結果情報はformat.xmlを参照して出力しているので、これを編集することで
内容を変更できます。基本的にはDiAreAに準拠していますが、新たに判明した仕様を
満たすために独自変更と拡張を行っています。
・#1,#2
符号を省いた数字
・!1,!2
{0,1}
・?1,?2
{+,符号無し,-,>,<}
ただし>,<は一部の命令のみ。
・%1,%2
対応するMESファイルを参照してIDに特定オフセットを加えたIDの文字列を表示。


▼TODO
・会話ツリーの色分け
・検索/置換機能の強化（一般的な機能はテキストエディタにお願いしたい）
・Generated Dialogの引数展開対応
・Web翻訳機能のハイパーリンク対応


▼既知の問題
・保存したにも関わらず、閉じる際に保存されていない旨を表すダイアログが出ることがある（直ったかも）
・特定のdlgファイルから別のdlgファイルにジャンプする会話文の場合に会話文をそれ以上トレースできない
・タブのマウスホイールがうまく出来ない場合がある
・会話ツリーのキーボード移動がうまく出来ない場合がある


▼更新履歴
2012/09/01
0.7
・dlgファイルで関連ノードへの移動が出来ない場合があったのを修正
・!1,!2構文を正しい仕様に変更
・非アクティブ中にも選択範囲が表示されるように変更
・Generated Dialogの解釈と表示を追加(beta)
・Web翻訳機能の追加(beta)

2012/01/19
0.6
・会話文に音声が存在する場合に再生出来るようにした
・Test,ResultにおいてRumorの引用表示をするようにした
・コンバート→DATの作成→DATをゲームへコピー までを行うメニューの追加
・デバッグコンバートで着手していないファイルが正常に処理されていなかったのを修正
・dlgファイルの各種パラメータの元の値の表示を修正
・ResponceIDでScript側のIDが指定されている場合に対象ノードを検索しないように修正
・不完全なフォーマットのdlgファイルを読み込めなくなっていたのを修正
・翻訳進捗率の算方法を修正
・一部アイコンを変更
・一部ショートカットキーの変更

2012/01/12
0.5
・男性のみ女性のみのライン（0,1）を編集不可にした
・Generated Dialog（E:,G:など）を編集不可にした
・タイトルバーにもファイル名と番号を表示するようにした
・dlgファイルの各種パラメータをグリッドではなくツリーで表示するようにした
・上記変更に伴うレイアウトの調整
・dlgファイルで選択したラインが参照されているノードを逆引きするようにした
・dlgファイルで関連ノードへ移動できるようにした
・起動時にデータをアンパックして配置する機能を追加
・上記変更に伴い、Arcanumディレクトリ以下を各自ユーザで作成するようにした
・svnディレクトリ以外にもファイル名の先頭に"."があるディレクトリを読み込まないようにした
・dlgファイルとmesファイル以外をファイルツリーに含めないようにした
・dlgディレクトリとmesディレクトリ以外をコンバートや翻訳進捗率の対象に含めないようにした
・引数毎にスペースやカンマで区切られていない場合に構文解析に失敗していたのを修正

2010/12/17
0.4
・ファイル名コピー機能の追加
・ファイル名とIDを文頭に付与するコンバート機能の追加
・見ると気が遠くなるような翻訳進捗率の算出機能の追加
・コンバート等の処理中表示の追加
・編集ファイルがある状態でもテキストエディタで元ファイルも開けるように
・行単位での編集状態の表示機能の追加（グリーン→オレンジ→レッド）
・ファイルツリーと会話ツリーに右クリックメニューの追加。
・dlgファイルの空行を表示しないようにした
・dlgファイルの仕様抜けに対応
・保存時の例外修正
・編集ファイルをテキストエディタで開くことが出来ない可能性を修正
・ファイル名に半角スペースが含まれている場合に生じる表示バグの修正
・ファイル名に半角スペースが含まれている場合にコンバートされないバグの修正

2010/10/15
0.3
・対象文の異性側へのコピー機能を追加
・新規保存時に直ちにアイコンが反映されるようにした

2010/10/07
0.2.1
・機能していないメニューの修正
・メニュー「次の台詞へ」の挙動の変更
・検索文字列の自動貼り付けの抑制

2010/10/06
0.2
・メニュー「最近編集したファイル」の追加

2010/10/05
0.1
・initial release


▼Special Thanks
Terra-Arcanum
http://www.terra-arcanum.com/

DiAreA
http://arcanum.dp.ua/

Silk icon set 1.3 Mark James
http://www.famfamfam.com/lab/icons/silk/
