[CardWirth] Next宿をCW1.50に移植できたかも、という話
- 2019/07/08 00:43
- カテゴリー:CardWirth, その他CW関連, 呟
- タグ:CWエンジン@私家版との仕様差, CWメモ箱原稿
前回「Next宿をCW1.50などに移植できるようになるかも、という話」の続きです。
<最終更新:2019.07.13 2:38>
(7/15追記)
踊る金狼亭の私家版情報内に、Next→CW1.50宿移植のまとめを掲載しました。
関連記事3つの内容をまとめ、説明を意識した作りになっています。ぜひそちらもご覧ください。
※※※
7/7、Next専用シナリオの読み書き機能がついたCWXEditorがダウンロードできるようになりました。そこで、さっそく、6月末に予定していたNext宿移植を試してみることに。
以下の手順で試し、外見的にはだいたい移植できたような感じです。
(ただし、重大な問題点があります。下の方の問題点の項をご覧ください。)
<Next宿側の準備>
- 宿内に存在する全ての技能・アイテム・付帯能力カードを、いずれかのPCの所持欄に移動する。
(※入りきれないときは荷物持ち用の仮PCを作成する。荷物袋、カード置き場、バックパックにカードを残さない。) - 全てのPCについて、それぞれEP値を記録。
- 全てのPTを解散し、宿全体の所持金をメモしておく。
- セーブ。
<1.50宿側の準備>
- Next宿と同名の宿を作成。
- Next宿に所属するPC全てについて、同名のPCを作成する。
(※荷物持ち含む。名前だけ一致していればよく、他の設定は適当でもOK。) - ユーティリティーモードで宿の所持金額をNext宿の方に合わせる。
- 1.50宿をユーティリティモードで起動、適当な名称の済印・宿ゴシップを1個ずつ追加。
(※後で行う済印と宿ゴシップの移植の際、置換範囲を明確化するため。) - セーブ。
<PCの移動>
まず、シナリオ作成ツールを、以下の設定に変更する。
- Next付属のWirthBuilder→環境設定で「シナリオのファイル圧縮を無効化」にチェックを入れて適用
- CWXEditor→ツール>エディタ設定の「その他」タブで、対象エンジンを「CardWirth 1.50」に設定
両方の設定が終わったら、WirthBuilderで適当な空シナリオを新規作成する。
この新規シナリオを用いて以下の手順を繰り返し、Next宿の全ての (キャラ名).wcp ファイルについて処理を行う。
- (キャラ名).wcp を上で新規作成したシナリオのフォルダ内にコピーして Mate1.wid に改名。
- シナリオをWirthBuilder 1.2.0以降で開いて圧縮なしで保存。
(※シナリオ保存後、Mate1.wid は Mate0.wid になっているはず。) - 2で保存したシナリオを、Nextシナリオ読込対応のCWXEditorで開く。
- 編集>検索と置換 で、キーワード「@@@NEXT」を用いて「テキスト検索」を行い、検出されたPCの所持カードを削除。
(※クラシック形式にした後に削除しようとすると、削除後の保存ができない(ことがある?)。必ずWSN形式として扱われている間に削除しておく。) - 編集>検索と置換 で基準を「CardWirth 1.50」とした「誤り検索」を行い、CW1.50が対応していない所持カードを探す。あれば削除。
(※CWXEditorによる自動変換で気づかないうちにカードの内容が変わる危険性をできるだけ減らすため、クラシックシナリオとして保存する前に誤り検索しておく。) - 名前を付けて保存で、クラシックシナリオとして保存する。
この後、9番の段階に進むまでは、CWXEditorを閉じずに作業を続けること!(※一旦閉じると、自動変換で内容が変わった非対応部分を見つけられなくなる可能性がある。) - キャストの所有カードで残っているものについて、1つずつ編集画面を開ける。
「OK」のボタンに警告表示が出ていたら、そのカードは削除する。 - それでも残ったキャストの所有カードのうち、使用時イベントがあるものは、1つずつ使用時イベントの編集画面を開ける。
イベントツリーのどこかに警告表示が出ていたら、そのカードは削除する。 - 上書き保存で、非対応の所持カードがなくなった状態を保存する。
- Mate0.wid の名称を (キャラ名).wcp に戻し、1.50宿の同名ファイルに上書き。
全キャラ分処理が終わったら、次へ。
<移動で抜け落ちるデータの復元>
- 1.50宿を1.50エンジンで読み込み、PCのカード画像を設定し直す。
(※自分のPCなので、元のファイルは持っている前提で。) - 各PCのEPは、システム称号「@EP」(←全て全角)の点数で管理されている。
準備の際に作成した記録を元に、ユーティリティモードを用いるか、簡単な称号配布シナリオを作って復元する。
<Environment.wyd情報の移植>
(7/13追記:バイナリエディタでの編集はちょっと……という場合、別の方法もあります。)
実は、Next宿のEnvironment.wydは圧縮されていない。そのため、バイナリエディタで開けば、済印や宿ゴシップの情報がそのまま読める。
- Next宿の Environment.wyd から済印領域(「済印文字列+改行」の繰り返し領域)だけをコピーして、1.50宿の済印領域(1で設定した適当済印の文字列+改行の部分)と置換する。
- 置換後の該当部分のデータのサイズが何バイトあるか調べて、置換した部分直前のデータ長の辻褄を合わせる。
(※済印領域直前の4バイト分がデータ長。) - 宿ゴシップについても同じ。
- 書き換えた1.50宿の Environment.wyd を保存。
<パーティーや荷物袋・カード置き場構成の再現>
- PTを再結成し、荷物袋・カード置き場にあったカードを戻す。
- 荷物持ちPCを作成していた場合は、削除。
- セーブ。
以上。
ここまでの作業の結果として、アルバム情報とPC所持カードの出典情報を除いて、見た目的には元のNext宿と(たぶん)同じの1.50宿が完成し、動きも問題なさそうでした。
【重要】この方法による移植の問題点
- 効果音が埋め込まれたカードなど、一部CW1.50で取り扱えないにもかかわらず、誤り検索で検出できないものがある。
非対応カード探しは手間を惜しまず慎重に行わないと、宿移植によって気づかないうちに所持カードの内容がオリジナルから変化してしまうことがある。 - 圧縮解除の際、各PCのデータを一旦シナリオの一部として保存する必要があるため、所持カードの出典情報(カード情報右下のシナリオ名+作者名)が、一律圧縮解除に使ったNextシナリオの情報に置き換わる。
- アルバムのPCは、移植ができない。
- 不具合の有無の検証が難しい。
ほとんどは異常が発生して初めて顕在化することになると思われ、その点を納得した上で実行する必要がある。
なお、7/7時点の最新版でテストした結果です。
CWXEditorの今後の更新によって問題点の一部が緩和される可能性がありますが、そもそもイレギュラーな使用法のため、上手くいったらラッキー程度に考えた方が良いと思います。
※※※
今回は、下の方で紹介している称号データを手作業で切り貼りした実験よりも楽だったし、所持カードの移動が容易い利点もあります。ただ、やはりそれなりに時間がかかり、神経を使う作業になるのも事実です。上手く行かないこともありますし、上手く行ったように見えても問題が無いとは限らず、手軽にできるというものではありません。
結局、方法があったとして、実際やろうとする方はいないのじゃないかと……。
オマケで作ったもの:データ長部分の修正用→■
(数値欄にデータ長(何バイトあるか)を入れて、変換ボタンを押す。)
結果の現物を見たい方のために、移植前後の宿データ詰め合わせを公開しています。
ダウンロードはこちらへ。
※※※
この移植実験では、CW1.50には無い要素がWsn.4を経由した変換でどうなるかを見るため、PCに次の6種類のカードを持たせていました。
中には誤り検索だけでは検出できなかったものもあり、所持カードが多いと、非対応カードの削除は多少面倒です。
非対応要素の種類 | 誤り検索 | CW1.50宿での挙動 |
---|---|---|
バックパック対応 | 非検出 | 問題なし |
名称が全角8文字 | 非検出 | 問題なし? |
効果音が埋め込み | 非検出 | 音が鳴らない |
キーコードが10個 | 検出 | --- |
使用時イベントでセーブ・中断を制限 | 検出 | --- |
使用時イベント内の効果コンテントが カードの効果目標を対象としている |
検出 | --- |
カードの「バックパック対応」設定は、クラシックシナリオにするときに自動で削除されるようで、全く影響ありませんでした。
全角8文字名称のカードも、特に何もなく移植できました。CW1.50でも、そのまま8文字名で表示されます。ただ、文字列の中身によってはカードの台紙からはみ出たり、メッセージにカード名表示されるときおかしくなることがあるかもしれません。
※※※
シナリオ作成ツールを使った場合のデータの整合性等に不安を感じるなら、各PCの称号を手作業で移植する方法もあります。正規のツールを使うなら、ユーティリティモードで。しかし、バイナリエディタの方が簡単です。
宿ゴシップと済印の移植は、上に書いた方法で、割と簡単に行えます。
宿にあるスキルやアイテムなどは、CW1.50でも使えるものだけ、1つずつユーティリティモードで配布するしかありません。
[関連記事]
・Next宿をCW1.50などに移植できるようになるかも、という話
・Next宿をCW1.50に移植できたかも、という話(←現在地)
・続・Next宿をCW1.50に移植できたかも、という話