Wiki
Clone wikiCardWirthPy Reboot / Wsn.2
Wsn.2の新機能
そもそもWSNシナリオとは?
「WSNシナリオ」(または「WSN形式」のシナリオ)とは、CardWirthPyが再生できる独自形式のCardWirthシナリオです。拡張子.wsn
を持つ単一のファイルの中に必要なデータが全て格納されており、展開せずにそのままプレイする事ができます。
WSN形式にはいくつかのバージョンがあり、このページで紹介されているのは2つ目のバージョンである「Wsn.2」です。前バージョンである「Wsn.1」よりもできる事が増えており、特に外見やカード効果の制御に関する機能が強化されています。
「Wsn.2」のシナリオは、CWXEditor 5以降で作成・編集する事ができます。
WSNシナリオを取り扱うにあたっては、いくつか注意すべき点があります。
- Wsn.2のシナリオは、今のところ、CardWirthPy 2以外のCardWirthでプレイする事はできません。
- Wsn.2のシナリオをCWXEditorを使ってWsn.1やCardWirth形式に変換する事は可能ですが、変換先に存在しない機能を使っている部分は変換の際に取り除かれます。
- WSN形式独自の機能を使用しているカードは、CardWirthのデータへ逆変換する事ができません。
- WSN独自機能を使ったカードが宿にあったりキャラクターが所持している場合は、逆変換中に取り除かれます(パーティやカードの所持者が取り除かれる事はありません)。
Adventurer's GUILDへのシナリオ登録について
groupAsk official fansiteのAdventurer's GUILD(通称「ギルド」)は、CardWirthのシナリオの情報を集約・紹介する投稿型のWebサイトです。CardWirth界においては、ギルドに登録していないシナリオを特に「プライベートシナリオ」と呼ぶほど、公開したシナリオをここに登録する事が一般的でした。現在は「プライベート」側の数がだいぶ増えていたり、「ギルド」的機能を持つサイトが他にも存在しているなど、状況が変わっていますが、それでも「ギルド」は主要なシナリオ投稿サイトであり続けています。
運営者であるCardWirth愛護協会のご厚意により、Wsn.2形式のシナリオはAdventurer's GUILDに投稿・登録する事が可能です。作ったシナリオを実際に登録してみようという方は、以下の点に注意して投稿してください。
- 投稿の際には対応エンジンタグが必須です。「
PY仕様:wsn.2
」という検索タグをつけてください。大文字・小文字の区別と、:
だけ全角である事に注意してください。 - 作者コメントに、対応するエンジンの情報を記す事をお薦めします。具体的には
https://bitbucket.org/k4nagatsuki/cardwirthpy-reboot
のURLを入れるとよいでしょう。
他の注意事項は、groupAsk official fansiteの投稿前の指差し確認を参照してください。
以下に、「Wsn.2」で追加されたWSN形式の機能を紹介します。
目次
外観
- スケーリングされたイメージファイルの使用(高解像度対応)
- カードイメージの配置方式の指定
- 背景セルでイメージの拡大・縮小時に滑らかにするかを指定する
- Wsn.2のシナリオであれば必ず使用できる標準音声
イベント処理
各種イベントコンテントの追加・強化
- ランダム多岐分岐コンテント
- クーポン多岐分岐コンテント
- クーポン分岐の複数称号対応化
- キーコード所持分岐の拡張
- ステップ代入やメッセージなどで使用できる特殊ステップ「選択メンバ番号」を追加
- 加入したキャストの戦闘行動開始タイミングを選択
- 効果コンテントの強化
メッセージ関係
- メッセージ・セリフコンテントで禁則処理を行う
- メッセージ・セリフコンテントで中央寄せを行う
- メッセージなどに使用できる特殊文字「$??Player1$」~「$??Player6$」を追加
- 状態変数に「特殊文字を展開する」オプションを追加
その他
スケーリングされたイメージファイルの使用(高解像度対応)
issue #397
シナリオ側でこの機能をオンにすると、例えばimage.bmp
というファイルのイメージを表示する時、表示サイズが縦横2倍であれば、image.x2.bmp
を探して代わりに読み込むようになります。
スケーリングされたイメージを使用すると上のスクリーンショットのような表示になります。スケーリングされていないものと見比べてみてください。
一部分を切り出して並べれば、さらに一目瞭然です。
CardWirthPy 2以降に付属しているスキン「BloodWirth」では、ほぼ全てのイメージで縦横2倍のスケーリングが行われています。プレイ環境に「BloodWirth」を選ぶ事で、この新しい機能を充分に活かした画面で遊ぶ事ができます。
シナリオ「六号室の幽霊船」の高解像度に対応したデモ版をダウンロードして試す事もできます。
※ 上記スクリーンショットのカード台紙・ライフバーを除くイメージは、シナリオ「六号室の幽霊船」で使用されているもので、ライセンスはCC0です。
※ カード台紙・ライフバーはスキン「BloodWirth」に付属しているもので、ライセンスはこのページ末尾のgroupAsk作のリソースのものに準じます。
カードイメージの配置方式の指定
issue #336
CardWirthでは、キャストサイズのカードのイメージはカード台紙に対して中央寄せ、一般サイズのカードのイメージは左上寄せ+一定のパディングで配置されますが、これを任意に指定できるようになりました。
背景セルでイメージの拡大・縮小時に滑らかにするかを指定する
issue #397
背景セルでイメージがリサイズされた時の処理方法を指定できるようになりました。未指定の場合は、エンジン側の設定に従って処理されます。
Wsn.2のシナリオであれば必ず使用できる標準音声
issue #435
- @tekitoudesu氏によるデモシナリオもお試しください。
各種音声が標準で使用できるようになりました。l_
で始まる音声はスムーズにループ再生する事ができます。
以下の音声は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
…… 柔らかい音
システムクーポン「@使用者」「@イベント対象」「@効果対象」「@効果対象外」を追加
issue #303
※ 上記スクリーンショットにおける背景イメージはPetr Kratochvil様、「Lv3フレア」のカードイメージはLynn Greyling様、エネミーカードのカードイメージはPaul Sherma様によってPublic Domainで提供されているものです。
@使用者
カードの使用によって一連のイベントが発生した時、そのカードの使用者に一時的に付与されます。
@イベント対象
死亡イベントやキーコードイベントが発生した時、そのイベントの所有者に一時的に付与されます。
@効果対象
カードの効果対象に一時的に付与され、効果が実際に適用された直後に剥奪されます。このクーポンはシナリオ側での付与・剥奪が可能で、操作の結果は効果対象に反映されます。
つまり、カードの本来の効果対象であってもキーコードイベントなどで@効果対象
を剥奪すると対象から外れ、無関係の者であっても@効果対象
が付与されれば対象に入ります。
@効果対象外
実際に対象に効果が適用されはじめた段階で@効果対象
を剥奪されたメンバに付与されます。このクーポンを持つメンバには@効果対象
をつける事ができなくなります。
これはターゲットの変更が複雑な状況下で無限ループに陥らないようにするためのもので、通常はこのクーポンを意識する必要はありません。
プレイヤーカードのキーコード・死亡時イベント
issue #426
エリアやバトルで、プレイヤーキャラクターのキーコード・死亡時イベントを設定する事ができるようになりました。
どのキャラクターを対象としてイベントが発火したかは、クーポン@イベント対象
によって調べる事ができます。
※ 上記スクリーンショットの「シベル」のイメージは、シナリオ「六号室の幽霊船」で使用されているもので、ライセンスはCC0です。
ランダム多岐分岐コンテント
issue #449
複数の分岐先を作り、それぞれに等確率でランダム分岐させる事ができるランダム多岐分岐コンテントを追加しました。
クーポン多岐分岐コンテント
issue #444
ステップ多岐分岐やエリア分岐のように、1つのコンテントから多数のクーポンで分岐するコンテントを追加しました。
クーポン分岐の複数称号対応化
issue #448
クーポン分岐で複数のクーポンを指定し、「全て所有している」または「どれか一つを所有している」のいずれかの条件で判定を行えるようにしました。
キーコード所持分岐の拡張
issue #436
- キーコード所持分岐の検索対象となるカードの種類に「戦闘時の手札」を追加しました。
- 検索対象に、カード種別の任意の組み合わせを選択できるようにしました。例えば「アイテムと召喚獣」や「特殊技能と手札」といった組み合わせが可能になります。
CardWirth 1.50では、キーコード所持分岐の検索対象に「アイテム」を選択すると、戦闘時の手札が検索対象になる事が知られていますが、検索対象に「アイテム」と「手札」を指定する事でその挙動の再現も可能です。
※ CardWirthPy 2では、クラシックなシナリオで「アイテム」が検索対象になっている時には自動的に「手札」も検索対象となります。Wsn.1のシナリオは、CardWirthPy 1と同様にアイテムのみが検索対象となります。
ステップ代入やメッセージなどで使用できる特殊ステップ「選択メンバ番号」を追加
issue #472
ステップ代入コンテントで利用でき、プレイヤーキャラクターが選択されている時は、選択されているキャラクターの番号を左から順に1~6としてステップ値に代入します。パーティ内に選択メンバがいない場合は0になります。
$??SelectedPlayer$
という名前でメッセージなどの特殊文字としても使用でき、該当する番号(0~6)を表示します。
加入したキャストの戦闘行動開始タイミングを選択
issue #410
キャスト加入コンテントで、加入したキャストの戦闘行動開始タイミングを以下のいずれかから選択できるようになりました。
- すぐに行動。キーコードイベントや使用時イベントなど、戦闘行動中に発生したイベント内で加入した場合でも、そのラウンドから行動します。
- 加入ラウンドから行動。ラウンドイベントで加入した場合に限り、そのラウンドから行動します。
- 次のラウンドから行動。加入したラウンドの次のラウンドから行動します。クラシックなシナリオでの挙動と同じです。
効果コンテントの強化
issue #405, #428, #432, #437, #429
- 効果コンテントによってキャラクターが生存状態から死亡状態へ変化した時の死亡イベントの発火有無を選択できるようになりました。
- 効果コンテントにキーコードを設定できるようになりました。
- 効果コンテントの適用範囲に、任意の称号の所有者を指定できるようになりました。
- 効果コンテントの適用範囲に、「カードの使用対象」を指定できるようになりました。
- 効果コンテントの成功率と効果値の計算に選択中のメンバのレベルと能力を使用できるようになりました。
これまでのCardWirthでは、「使用時イベント内で効果コンテントを使用して敵を攻撃する」というようなカードを作成すると、シナリオ側でイベント発火が正しく行われず、バグの原因となっていました。
効果コンテントによるイベント発火をオンにし、キーコードを適切に設定する事で、その問題を解決する事ができます。
また、効果コンテントの命中率や効果値を計算する際に、選択中のメンバのレベルや能力値を参照する事ができるようになりました。
任意の対象に効果を適用したい場合、これまでは対象を「選択中のメンバ」にする事で実現できましたが、能力値参照のためにメンバ選択を行っていると、その方法が使えません。そうした場合は、新しい適用範囲の指定方法が利用できます。例えば使用時イベント内で称号@効果対象
を所有する対象に効果を適用する事ができます。
メニューカードに対してキーコードを発火させたい場合は、「カードの使用対象」が利用できます。
メッセージ・セリフコンテントで禁則処理を行う
issue #148
- メッセージ・セリフコンテントに、メッセージが折り返された時に禁則処理が行われるか否かのオプションを追加しました。
- メッセージ・セリフコンテントにオプション「縦方向に中央寄せ」を追加しました。
禁則処理とは、例えば行頭に。
が来ないようにしたり、行末に「
が来ないようにしたりして、折り返しによって文章が不自然な形にならないようにする処理です。英文ワードラップ(単語の途中で折り返しが入らないようにする)も行います。
禁則処理には完璧な回答が無いため、結果は将来変化するかもしれません。禁則処理を使用する場合は、メッセージの行数に余裕を持たせておく事をお勧めします。
メッセージ・セリフコンテントで中央寄せを行う
issue #445
特殊文字を含むメッセージで自動折り返しを行うなどした場合、メッセージの行数が定まらない場合があり、縦方向の中央寄せが上手くいかないかもしれません。その場合は、縦の中央寄せを行う新しいオプションが使用できます。
また、これまで#M
などの特殊文字を含む文章の行ごとの中央寄せは非常に困難でしたが、それもサポートされました。
メッセージなどに使用できる特殊文字「$??Player1$」~「$??Player6$」を追加
issue #472
左から順に1~6番目のプレイヤーキャラクターの名前を表示します。該当するキャラクターがいない場合は空文字列になります。
状態変数に「特殊文字を展開する」オプションを追加
issue #471
特殊文字の展開とは、メッセージなどで#M
と書くと選択中のメンバの名前に変更されるような処理の事です。
このオプションがオンになっている状態変数は、なんらかの形でその値を表示した時に、この展開処理が適用されます。
「効果無し」効果
issue #442
「何も効果が無い」という効果を、カード効果や効果コンテントで指定できるようになりました。
これまで、効果コンテントでカードの振動などの視覚効果だけを得たい場合には、何もしない状態にすると失敗扱いとなっていわゆる無効音が鳴ってしまうため、「暴露」「暴露解除」を入れて擬似的に効果が無いような設定にする必要がありました。しかし、この方法には元々暴露されているキャラクターの状態を変えてしまうといった欠点があります。
「効果無し」効果を適用した場合、何も起こらずに結果が成功扱いになるため、確実に目的を果たす事ができます。
また、キャラクターは一切効果の無いカードは使用しようとしませんが、「効果無し」効果を持つカードは使おうとするため、キーコードによるイベント発火だけを目的としたカードなどに使用できるかもしれません。
システムクーポン「@Wsn.2」を追加
issue #438
称号所持判定分岐コンテントでシステムクーポン@Wsn.2
の所持判定を行った時は必ず成功するようにしました。
プレイヤーの使用しているエンジンがWsn.2に対応しているかシナリオ側から調べたい時に利用できます。
このページのスクリーンショットに表示されているシナリオのリソースは、特に注記がない限り、groupAsk様によって作成され、CardWirth愛護協会様によって配布されている「CardWirth ver1.50 Fullpack」に入っているものです(シナリオ「モンスター図鑑+」及びその他のリソース)。ReadMe_1st_Full.txt
内の「● 著作権/免責/転載に関して」節の内容に基づいてスクリーンショット内に使用しています。
Updated