WSN形式

WSN(XML)形式

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

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

目次

形式 再生対応
クラシック形式 CardWirth,CardWirthPy,CWXEditor
WSN形式 CardWirthPy,Pyスキン,CWXEditor
CWXスクリプト CWXEditor

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

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

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

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

WSN形式の独自拡張

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

Wsn.0(Py 0.12.3以降/XEditor3以降)

  • 背景変更などのイベント各種コンテントで切替方式とスピードを指定できる。
    CWではプレイヤーの設定に依存していたので アニメ無し最速 が常態化していたが、
    シナリオ側で演出に組みこむ事ができるようになった。
  • カードのキーコード設定数に上限がない。 5個以上の設定が可能。
  • キャストに種族を設定できる。

Wsn.1(Py 1.0 以降/XEditor4以降)

  • 新コンテント「背景再配置・背景置換・背景削除」の追加。
    NEXTと同等のもの。切替方式&速度指定との組み合わせにより安定したアニメ表現が可能に。
  • BGM・効果音再生全般で音量/ループ回数/フェードイン時間を指定できるように。
  • BGM・効果音再生コンテントで、音声の再生チャンネル(主音声・副音声)を指定できる。
    これによりBGM等を二重・打ち消されずに再生可能。
  • キャストの所有カード及び召喚対象を参照指定できる。
    データを軽量化でき、自分を召喚する召喚獣など従来作れなかったデータが作成可能。
  • カード画像にレイヤ設定を追加し、複数のイメージを重ねて表示できる。
  • メニュー・エネミーカード及び背景セルにレイヤ値を指定できる。
    これによりPCカードやメニューカードの手前に背景セルを置く等の表現が可能。
  • 背景セルの種類にキャラクターセルを追加。 拡大・縮小表示が可能。
  • メンバ選択コンテントに評価条件によるランダム選択の追加。
    台詞コンテントの評価メンバと同様に点数合計が高いメンバを優先選択できる。
  • 技能の残り回数(精神力回復/不能モーション)の固定値での増減に対応(1~9)。
  • メッセージコンテント選択肢の縦割り分割オプション。NEXTと同等のもの。

Wsn.2(Py 2.0以降/XEditor5以降)

  • システムクーポン「@Wsn.2」「@使用者」「@イベント対象」「@効果対象」を追加。
    これによりカードの効果対象を選択したり、死亡/KCイベントの効果対象を付け替えられるようになった。
  • 新コンテント「クーポン多岐分岐・ランダム多岐分岐」の追加。
    ステップ多岐分岐のように複数のランダム確率分岐やクーポン所有分岐を一度に行える。
  • 効果コンテントに死亡/KCイベントを発火するオプションを追加。 コンテント単位でキーコードを付けることができ、使用時イベントで敵を対象とするスキルやアイテムを自由に作れるように。
  • 効果コンテントに選択中メンバの能力参照を行うオプションを追加。
    従来は(能力ALL6*対象レベル)で固定だった効果をキャラクターの適性で判定することができるように。
  • 効果コンテントの効果目標に「称号の所有者」「カードの効果対象」を追加。
    選択中メンバにしなくても条件を満たす目標に一度に効果を与えることができるように。
    また「カードの効果対象」ではメニューカードにKCを発火することもできる。
  • カード効果に新モーション「効果無し」を追加。
    対属性で無効化されない限り必ず有効で、暴露+解除のような無効化音防止に活用できる。
  • メッセージコンテントに縦方向・横方向の「センタリング」オプションを追加。
    文字数が一定ではない特殊文字等を考慮したテキスト自動整形が可能になった。
  • 称号所有分岐コンテントで複数クーポンのAND/OR条件に対応。
  • キーコード所持分岐条件に「手札」を追加し、個別のチェック式に変更。
    従来不可能だった戦闘中アイテム のみ の検索や「全て」ではない複数条件が一度に行えるように。
  • キャスト加入コンテントに「戦闘中加入ラウンドから即時行動する」オプションの追加。
  • ステップに「特殊文字を展開」オプションを追加。
    #Mなどの名前をメッセージの$ステップ名$で使用できるようにする機能。
    Pyでは&Rなどのカラーやフォントにも対応。
  • 仮想ステップ「$??Player1$~$??Player6$」「$??SelectedPlayer$」に対応。
    NEXTと同等のもので番号順のキャラ名と選択メンバの番号を出力できます。
    選択メンバ番号はステップ代入のソース変数にも指定できます。
  • エリア・バトルで、プレイヤーカードにも死亡/KCイベントを設定可能に。
  • カード画像の配置方法の指定(中央寄せ・左上合わせ)。
    メニューとキャストで規格外サイズの配置位置が異なっていたが、個別に指定できるようになった。
  • 高解像度のカードイメージの読み込みに対応(2倍以上で拡大時)。
    デモシナリオ「六号室の幽霊船」の2倍スケール対応バージョン
  • WSN2以降で使用可能な独自効果音を追加。
    デモシナリオ「WSN2 新効果音デモ」

Pyエンジンの独自仕様

Py独自仕様=WSN形式ではないので以下の機能はクラシック形式でも使うことができます。
  • カード画像にBMP以外を格納可能。 (JPG, PNG, アニメ無しGIF)
  • 吉里吉里・RPGツクールVXのBGMループに対応。 ※12.4α2より
  • 技能/アイテム/付帯能力カードイベントに指定されたシナリオ内素材持ち帰り
  • 1.28以降の解説欄一致による同名カードの総合処理がない。
    1枚づつ別個に保存されるため、同名の絵違いカードを保持できる。
  • カード名/解説欄の文字数上限がない。
    クラシック仕様よりも長い解説を持ったカードをXEditorで作成/表示できる。
  • エフェクトブースターの撮影機能で撮影した画像を宿に保存する。
    CWではシナリオフォルダに保存するためzipのまま再生できない。
  • 同行キャストを連れ込んだ時、シナリオ内で獲得・剥奪したクーポンが反映される。
    CWではキャストに設定されている称号で固定。
  • 連れ込んだキャストの体力が標準値でない場合、基礎体力*倍率でレベル変動後も保持される。
    たとえば計算式上本来体力15のキャストが体力30に設定されていた場合、体力上昇に2倍の補正が掛かる。CWではレベルの変動で初期化されるので逆変換した場合は標準値になり保持できない。


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
戦闘 召喚獣カードの参照化 自分を召喚する無限召喚獣を作ることができます。 1
精神力増減数値指定 Py以外では最大回復/枯渇のみです。 1
特殊なシステムクーポン 効果対象の適宜変更が可能に(後述) 2
効果コンテント拡張:
  イベント発火/能力参照
従来はカードで指定するしかなかったキーコード設定や
選択メンバの適性(命中・威力)を加味した効果が作れます。
2
効果目標:称号所有者 任意のクーポン所有者を効果目標に取れるように(複数可) 2
PC用死亡/キーコードイベント エリア・戦闘でPC側にも設定できるように。 2


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

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

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

アンダーラインした要素は実装の仕方に差異が生まれています。
  • Pyはシナリオからカードを入手する際、参照されている素材を全て持ち帰る仕様のため格納オプションが意味を持ちません。
  • NEXTは従来ステップを拡張した「可変ステップ」と数値のみのステップで扱える数が変わります。Pyは9999の(可変)ステップを持ちます。
  • NEXTでは台詞コンテントの「話者を選択状態にする」オプションの応用で空メッセージにより評価選択機能だけを利用できますが、Pyではメンバ選択コンテントに「評価条件で選択」が追加されています。評価メンバ選択は「行動可能かつ沈黙状態ではないPCが対象」になる仕様のため、微妙な差異があります。
  • 背景セル(0)、メニューカード/エネミーカード(100)、PCカード(200)、メッセージ(1000)
    Pyではそれぞれデフォルトで括弧内にあるレイヤ優先値を持ち、任意の数を入れることで全要素で描画順を変えることが出来ます。

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

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

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

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

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

BGM/効果音
(両用)
l_chirr.ogg 虫の合唱
l_rain.ogg
l_sing.ogg 鳥の囀り
l_waterfall.ogg
l_windstorm.ogg
l_wind_1.ogg 籠った風
l_wind_2.ogg 野外の風
効果音 l_church_bell.ogg 教会の鐘
l_walk_on_sand.ogg 砂上を歩く
l_wooden_clappers.ogg 拍子木
s_attack_1.ogg 攻撃(叩きつける1)
s_attack_2.ogg 攻撃(撃つ)
s_attack_3.ogg 攻撃(爆発)
s_attack_4.ogg 攻撃(叩きつける2)
s_bell_of_buddhist_altar.ogg 仏壇の鈴
s_breath_a.ogg ブレス音(あ)
s_breath_e.ogg ブレス音(え)
s_breath_i.ogg ブレス音(い)
s_breath_o.ogg ブレス音(お)
s_breath_u.ogg ブレス音(う)
s_chime_of_store.ogg 入店チャイム
s_decide_1.ogg 決定(電子音)
s_decide_2.ogg 決定(和風)
s_hand_drum.ogg
s_hitting_tennis_ball.ogg テニスボール
s_idea.ogg 閃き
s_information_end.ogg お知らせ終了
s_information_start.ogg お知らせ開始
s_koto.ogg 和琴
s_metal_bat.ogg 金属バット
s_question.ogg 疑問
s_sliding_cornice.ogg カカン
s_soft.ogg 柔らかい音



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

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

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


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

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

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

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

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

 現在の正式版XEditor4.1ではWSN形式で保存すると「Wsn.1」のシナリオになりますが、
Wsn.2の機能を利用するにはPy/XEditor両方で
最新のテスト版( バグを踏む覚悟がある人向け )を使う必要があります。

 Wsn.1のシナリオをWsn.2にするには
テーブル>シナリオ名>詳細データ>データバージョンで「Wsn2」を選択してください。