[CardWirth] 続・Next宿をCW1.50に移植できたかも、という話
- 2019/07/13 02:38
- カテゴリー:CardWirth, その他CW関連, 呟
- タグ:CWエンジン@私家版との仕様差, CWメモ箱原稿
前回「Next宿をCW1.50に移植できたかも、という話」が、まだ続きました。
(7/15追記)
踊る金狼亭の私家版情報内に、Next→CW1.50宿移植のまとめを掲載しました。
関連記事3つの内容をまとめ、説明を意識した作りになっています。ぜひそちらもご覧ください。
※※※
前回の実験では、PCデータをNext用シナリオに移して圧縮解除、CWXEditorで開いてからクラシックシナリオとして保存し、1.50エンジンで取り扱える形に変換しました。そこまでは、そう難しくありません。
しかし、Environment.wyd にある済印や宿ゴシップの情報をバイナリエディタで移植するという難関があります。ここで間違うと、宿が使えません。
済印・宿ゴシップのもう少し簡単な移植方法はないものか……
というわけで、今回は直接バイナリエディタで移植するのではなく、Pyの逆変換機能を用い、Py宿経由で移植する方法を試しました。以下、実行した手順と結果です。
<最終更新:2019.07.13 2:38>
<Environment.wyd情報の移植(Py宿経由)>
実は、Next宿のEnvironment.wydは圧縮されていない。そのため、バイナリエディタで開けば、済印や宿ゴシップの情報がそのまま読める。
そしてさらに。
テキストエディタで開けば、テキストはテキストとして読むことができる(←ここ重要)。
ただし、うっかりテキストエディタで上書きすると宿が壊れるので、そこは気をつけた。
- あらかじめNextエンジンのユーティリティモードで、(1)最新・最古の済印、(2)最新・最古の宿ゴシップ をそれぞれ調べてメモしておく。
- Pyで空の宿を作り、Environment.xml をUTF-8対応のテキストエディタで読み込んでおく。
- Next宿のEnvironment.wydをテキストエディタで開き、最も古い済印から最も新しい済印までをコピーして、空のテキストファイルに貼り付ける。
(※古い方から新しい方へ、1行に1つの済印が並ぶ形になったはず。) - 各行の先頭に「<CompleteStamp>」、末尾に「</CompleteStamp>」を挿入し、全ての行が「<CompleteStamp>(済印テキスト)</CompleteStamp>」の形になるようにする。
(※テキストエディタに一括置換機能があれば、それを使って改行部分を置換していくと早い。) - Py宿 Environment.xml の<CompleteStamps>~</CompleteStamps>の間に、1つ前で加工した済印データを貼り付ける。
- 宿ゴシップについても、手順は同じ。最新・最古の宿ゴシップの出現位置からデータを取り出すべき範囲を確定し、4~5の手順を、
<CompleteStamp> → <Gossip>
</CompleteStamp> → </Gossip>
<CompleteStamps>~</CompleteStamps> → <Gossips>~</Gossips>
と置き換えて実行する。 - 宿全体の所持金も、ここで調整しても良いかも。
「<Cashbox>4000</Cashbox>」となっているところを書き換える。
(※4000→準備段階でメモした元の宿の所持金合計にする。) - 書き換えた Environment.xml を保存。
Next宿の Environment.wyd は、何もせずそのまま閉じる。 - 2で作成したPy宿の逆変換を行い、CW1.50用に変換。
生成された Environment.wyd を、PCデータを移植した1.50宿のフォルダ内にコピー、上書きする。
こちらの方が、ミスは少ないかもしれません。
PCデータの移植方法は、前回の記事どおりが良いと思います。
実は、PCデータも、Py宿経由で1.50に移動させることができます。
展開されたWSN(XML)形式シナリオのキャストデータは、基本的に3行書き換えれば(キャラ画像は抜け落ちるものの)そのまま宿の冒険者データとして使えます。これを利用して、PCデータをCWXEditorで変換する際にXML形式で保存し、一度Py宿を作るやり方です。
その後、この記事の上の方で紹介した方法で Environment.wyd の情報も移植し、PCデータ含む全体を逆変換で1.50用に変えるのですが、この方法には直通の変換にない以下2つの欠点があります。
- CWXEditor上の取り扱いがWSN形式で完結するため、効果音埋め込みの所持カードに全くエラーが表示されない。逆変換で効果音が消えるケースに気づけない可能性がある。
- 逆変換により1.50仕様のカードが削除されることがあり、結果として直通変換よりも多くの所持カードを失う可能性がある。
(※今回試したところでは、1.50仕様シナリオで入手した技能「焔紡ぎ」などが消えました。)
※※※
済印・宿ゴシップをテキストとして移植する今回の方法、バイナリ編集よりも楽かもしれませんが、やはり簡単楽々というわけにはいきませんね。多少楽になる程度のものです。
問題点の方は、前回記事に書いたとおりで、何も変わりません。
もしどうしてもNext宿を1.50環境に移植したいなら、PCデータはNext→1.50直通で、Environment.wyd にある情報はPy宿経由で変換するのがベターではないか。というのが結論です。
もちろん、元の宿は、事前バックアップ必須です。
[関連記事]
・Next宿をCW1.50などに移植できるようになるかも、という話
・Next宿をCW1.50に移植できたかも、という話
・続・Next宿をCW1.50に移植できたかも、という話(←現在地)