WSN形式

WSN(XML)形式

 CardWirthPy/CWXEditorは従来のCardWirthシナリオ形式であるSummary.wsm(以下クラシック形式)の他に、「WSN」アーカイブという独自形式の再生・保存に対応しています。
これはXMLと素材をZIP圧縮したもので、CardWirthPyは元々それのみを再生でき、現Verでも内部的には他形式をWSN形式へ変換しています。Pyに追加されている多くの新機能はWSN形式でしか利用できません。

紹介ページ Wsn.1 / Wsn.2 / Wsn.3

目次


形式 再生・読み込み対応
クラシック形式 CardWirth1.20-1.50,Py,NEXT
CWEditor,CWXEditor(2以降),WirthBuilder
WSN形式 CardWirthPy,Pyスキン,CWXEditor
CWXスクリプト CWXEditor

WSN形式で保存するメリット

  • 1.50までの機能に加えて、WSN専用機能を利用できる。
  • 読み込み・保存とも単一のアーカイブでシナリオを管理できる。
  • 展開して保存すれば変換を挟まないのでPyでの読み込みが高速。
  • カード画像のPNG対応/参照化等により店シナリオの容量が半減。
  • テキストエディタなどで構造を可視化・編集しやすい。
  • 細部で変更が必要( )なものの、クラシック形式に戻せる。

WSN形式で保存するデメリット

  • 現状ではPy専用。未対応の他の派生エンジン、周辺ツール上からはクラシック形式に変換しなければ読めなくなる。
  • 宿を他のエンジンに逆変換する際、WSN独自の機能を使った技能/アイテム/召喚獣カードは変換されない(持ち込めない)。

CWPyとWSN形式にしかない機能

実現に手間が掛かるが、他でも実現できる(確率多岐分岐や評価条件など)ものを除いた、
2017年現在Pyでしか出来ないことに絞ったまとめです。Verごとの詳細はコチラ

Pyにしかない機能 解説 Wsn.
素材 (透過)PNG/GIF格納 Py以外のエンジンは非対応。((透過)BMPのみ) 0
カードイベントの素材持ち帰り
効果音,背景セル,BGM等…
JPDCで撮影した画像や特殊文字も持ち帰る事ができます。
(0から使えますが、2以前にはJPDC関連でバグあり)
0
キャスト所有カードの参照化 Py以外では格納・重複して持たせる必要があります。 1
カード画像を複数重ねる 店の値札やカードのフレームなどに活用できます。 1
演出 背景切替方式/速度指定 オプションの切替スピードを背景変更毎に変えられます。 0
表示順レイヤ キャスト、メニュー、背景セル、メッセージの
前面表示優先度を自由に変更できます。
1
BGM/効果音マルチチャンネル
フェード/音量指定
合計4チャンネルで音を鳴らすことができます。
音量等を細かく指定できます。
1
戦闘 精神力増減数値指定 Py以外では最大回復/枯渇のみです。 1
特殊なシステムクーポン 効果対象の適宜変更が可能に(後述) 2
PC用死亡/キーコードイベント エリア・戦闘でPC側にも設定できるように。 2
カード 召喚獣カードの参照化 自分を召喚する無限召喚獣を作ることができます。 1
効果コンテント拡張:
  イベント発火/能力参照
従来はカードで指定するしかなかったキーコード設定や
選択メンバの適性(命中・威力)を加味した効果が作れます。
2
効果目標:称号所有者 任意のクーポン所有者を効果目標に取れるように(複数可) 2
召喚獣発動条件 重傷時のみ発動や麻痺でも動く召喚獣など:
従来は作れなかった召喚獣が作れます。
3
選択カード シナリオ外の不特定なカードを表示(#C)・削除できます。 3


CardWirth1.20-1.50(wsm4)/NEXT(wsm7)/Py(Wsn.3)比較表

制限の解除          1.20-1.50 NEXT Py
カード名文字数 6 8 無制限
カードの解説文字数 163 無制限 無制限
カードのキーコード設定数 5 無制限 無制限
カードの素材格納方式
(シナリオ外持ち出し)
× 任意埋め込み
セル/効果音(使用時)
参照を全てコピー
セル/フォント/BGM/効果音
ステップ最大値 10 100(可変)/9999(数値) 10000(可変)

NEXTにある拡張機能 NEXT Py Wsn.
新コンテント 背景再配置/置換/削除 1
メニュー移動 3
制限 △荷物袋のみ 4
メッセージ 選択肢縦分割 1~4 1~4 1
仮想ステップ 2
ステップで特殊文字を展開 #M/#U/#R/#T/#Y #と&文字全て 2
ウェイトのミリ秒指定 × -
メンバ選択 話者を選択状態にする 3
称号非所持分岐 4
エリア関連 メニューカードのアニメ無効化 4
メニューカード名に変数展開 4
バトル関連 エネミーカード名の上書き 4
エネミーカードの画像を
PCの画像にすり替え
4
背景セル 描画優先度 セル描画順のみ
前面/背面二択
全要素
レイヤ番号管理
1
プレイヤーセル △※拡大不可 1
カード関連 カードの効果対象選択 △※KC発火不可 2
バックパック対応 × -

アンダーラインした要素は実装の仕方に差異が生まれています。
  • Pyはシナリオからカードを入手する際、参照されている素材を全て持ち帰る仕様のため格納オプションが意味を持ちません。
  • NEXTは従来ステップを拡張した「可変ステップ」と数値のみのステップで扱える数が変わります。Pyは9999の(可変)ステップを持ちます。
  • 背景セル(0)、メニューカード/エネミーカード(100)、PCカード(200)、メッセージ(1000)
    Pyではそれぞれデフォルトで括弧内にあるレイヤ優先値を持ち、任意の数を入れることで全要素で描画順を変えることが出来ます。

全体的な思想としてWSNは従来のCWにあった、キャストに持たせる技能などの重複するカード・画像の格納で容量が無駄に増える仕様を撤廃し、参照できるようにすることで解決しようとしています。
WSNでは格納してもMaterialフォルダに入るだけでほとんど意味がありません。参照を活用しましょう。


WSN形式のバージョン

WSN形式独自の機能はWSN形式のみで保持され、クラシック形式に変換した場合は取り除かれます。
WSNにはバージョンがあり、概ねエンジンのメジャーバージョン単位で区切られています。
エンジン・エディタともに対応以降のバージョンでなければ新しい機能を使うことはできません。


WSN形式で利用できる特殊称号

WSN3時点の特殊称号(システムクーポン)の一覧です。一部はクラシック形式でも利用できます。

名称 Ver 説明
バージョン判定称号 全Ver PyエンジンのVerを判定することができます。
2.0ではPCの死亡イベントにバグがあるため、
PCの死亡イベントを利用する場合は2.1以降を判定するのが無難です。
@R種族名 0 種族要素のあるスキンで種族を選択して
キャラクターを登録した時に自動で追加されます。
@Wsn.2 2 Wsn.2対応エンジン(Py2以降)なら必ずクーポン分岐コンテントの判定に成功します。
CW1.29で実装された@MP3のような使い方ができます。
@Wsn.3 3 Wsn.3対応エンジン(Py3以降)なら必ずクーポン分岐コンテントの判定に成功します。
@Wsn.2も引き続き使用できます。
@使用者 2 使用中のカード使用者に一時的に与えられ、行動の終了時に消滅します。
使用時イベントのギミックに利用できます。
@効果対象 2 カードの効果対象をすり替えることができます。
使用中のカードの効果対象全員に一時的に与えられ、行動の終了時に消滅します。
この称号は使用時イベント/キーコードイベント側で付与・剥奪でき、カードの本来の効果対象であっても【@効果対象】を剥奪すると対象から外れ、無関係の者であっても【@効果対象】が付与されれば対象に入ります。
@イベント対象 2 死亡イベントやキーコードイベントが発生した時、そのイベントが発生したキャストに与えられ、イベントの終了時に消滅します。
戦闘ギミックとしてカウンター/反射などの表現に使うことができます。
@効果対象外 2 実際に対象に効果が適用される段階で@効果対象を剥奪されたメンバに付与されます。
このクーポンを持つメンバには@効果対象をつける事ができなくなります。
(【@効果対象】を持っているメンバに事前付与しても効果対象から外れるわけではない)
ターゲットの変更が複雑な状況下で無限ループに陥らないようにするためのもので、通常はこのクーポンを意識する必要はありません。

WSN形式で利用できる追加素材

Py2/Wsn.2以降、DataフォルダにMaterialフォルダが追加されました。
Materialフォルダに入っている素材はXEditorでWSN形式のシナリオを作ろうとする時に、標準で選択できるようになっています。



Pyエンジンの独自仕様

Py独自仕様=WSN形式ではないので以下の機能はクラシック形式でも使うことができます。

  • カード画像にBMP以外を格納可能。
    CWXEditorで格納したJPG, PNG, アニメ無しGIFを表示することができる。
    ※Py以外のエンジンではエラーとなるのでクラシック形式でBMP以外を格納する場合は、Py専用シナリオであることを明記して下さい。

  • カード名/解説欄の文字数上限がない。
    クラシック仕様よりも長い解説を持ったカードをCWXEditorで作成/表示できる。

  • 吉里吉里・RPGツクールVXのBGMループに対応。※Ver1.0より
    C111ループとsliファイルを使ったループに対応。oggのループエディタとしてはFOLEなどがあります。
    詳しくは以下のサイトを参照して下さい。
    http://taira-komori.jpn.org/tkooltop.html

  • 技能/アイテム/付帯能力カードイベントに指定されたシナリオ内素材持ち帰り
    シナリオ外で使える、独自効果音やセルアニメを使ったカードを作ることができる。

  • 1.28以降の解説欄一致による同名カードの総合処理がない。
    1枚づつ別個に保存されるため、同名の絵違いカードを保持できる。

  • エフェクトブースターの撮影機能で撮影した画像を宿に保存する。
    CWではシナリオフォルダに直接保存する仕様で、zipのまま再生しようとすると不具合が出るため。

  • 同行キャストを連れ込んだ時、シナリオ内で獲得・剥奪したクーポンが反映される。
    CWではキャストに設定されている称号で固定。

  • 連れ込んだキャストの体力が標準値でない場合、基礎体力*倍率でレベル変動後も保持される。
    たとえば計算式上本来体力15のキャストが体力30に設定されていた場合、体力上昇に2倍の補正が掛かる。CWではレベルの変動で初期化されるので逆変換した場合は標準値になり保持できない。




WSN形式からクラシック形式への変換

CWXEditorで「名前を付けて保存」を行い、保存形式として「クラシックシナリオ(Summary.wsm)」を選択して保存します。
CWXEditor 3.1以降であれば、以下の問題を自動的に解決するため、それだけで変換完了です。

CWXEditor 3.0以前の場合、CWPyで使用しているスキンにもよりますが、素材に絡む問題が出ることがあります。

CWPyに標準で付属している「Classic」スキンは、CardWirthとほぼ同じ環境を再現するスキンですが、
サイズを削減するため、背景イメージ(Tableフォルダ内)の形式を「*.png」に、
効果音(Soundフォルダ内)の形式を「*.ogg」に変換しています。
これらは、クラシック形式では「*.bmp」と「*.wav」でなければなりません。

そのため、「Classic」スキンで編集したシナリオをクラシック形式に変換したい時は、次の作業が必要です。

1. Ctrl+Fまたはメニューの「編集」から、「検索と置換」ダイアログを開き、
   「テキスト検索」タブを選択します。
2. 「検索/置換対象」で「ファイル名」のみにチェックを入れます。
3. 置換前に「.ogg」を、置換後に「.wav」を設定し、置換ボタンを押して置換を実行します。
4. 同様に、「.bmp」を「.png」に置換します。
5. 自分でシナリオ内に「*.ogg」や「*.png」の素材を用意して使用している場合は、
   巻き添えで拡張子が変わってしまうため、
   該当するファイル名を指定して置換を行い、「.ogg」と「.png」に戻します。



クラシック形式からWSN形式への変換

CWXEditorで「名前を付けて保存」を行い、保存形式として「XML形式のシナリオ(*.wsn)」または「展開されたXML形式のシナリオ(Summary.xml)」を選択して保存します。

両者の違いはzip圧縮するか従来のようにフォルダで管理するかです。軽いシナリオなら圧縮しておく方が容量の節約になりますが、読み込みが入るのである程度の規模のシナリオは展開しておくといいかもしれません。圧縮/展開はいつでも可能です。

クラシック形式から変換した場合、カード画像などのシナリオに内部格納されていた素材は「Material」フォルダに保存されています。

最新の機能を使いたい(WSN形式)

 現在の正式版CWXEditor 6 ではWSN形式で保存すると「Wsn.3」のシナリオになりますが、
今後追加されていくWsn.4の機能を利用するにはPy/XEditor両方で
最新のテスト版(バグを踏む覚悟がある人向け)を使う必要があります。

 古いWSN形式(Wsn.0~3)のシナリオをWsn.4にするには
テーブル>シナリオ名>詳細データ>データバージョンで「Wsn4」を選択してください。