Skip to content
k4nagatsuki edited this page May 2, 2014 · 201 revisions

CardWirthPy Reboot

お知らせ

2014年3月8日

CardWirthPy 0.12.1β7をリリースしました。0.12.1β6以前にはデータが消失するバグが含まれているため、アップデートをお薦めします。

また、このリリースでスキン内に定義されているデータの誤りも修正されています(スキンは自動的にアップデートされます)。

過去のお知らせ

これは何?

これはCardWirthPy Developer's Siteで開発中だったCardWirthPyのフォークです。本家側の更新停止が続いているため、Rebootと称して独自に開発を継続しています。

原開発者の方に連絡を取ったところ、恐らく本家側の更新は今後も無いという事なので、事実上開発を引き継いだ形になっています。

開発に参加したりさらに引き継いだりしてくれる方を募集中です。

takuto_cwさんのよくまとまった紹介記事もご覧ください。

開発に興味のある方は開発者向け情報をご覧ください。

最新リリース版のダウンロード

多くの方のご協力により、CardWirthPy Rebootとしてのβリリースを迎える事ができました。この場を借りて感謝いたします!

0.12.1β8の更新内容

追加

  • スキンにカーソルデータを追加。既存のスキンには適用されません。最新のClassicスキンからResource/Image/Cursorフォルダ以下をコピーするか、自動生成したスキンであれば再度自動生成を行ってください。
  • デバッガのイベント待機時間の欄に文言を追加。

変更

  • Jpy1アニメーション中に画面のスケールを変更した場合、アニメーションを最初からやり直すようにした。
  • 1.20以前でのカード取得時に手札が一杯の時に荷物袋に入らない互換動作を追加。
  • 設定ダイアログのタブ位置を一時保存するようにした。
  • 1.20以前でのカード取得時に手札が一杯の時に荷物袋に入らない互換動作を追加。
  • Windows環境でのJptxの描画を若干改善。
  • スキンの自動生成時、同タイプの既存のスキンが本体直下のScenarioフォルダを参照していたらシナリオフォルダ情報を追加しない。
  • CardWirthの実装に合わせ、エフェクトブースターで次の色の名前を使えるようにした。
    • Black ($000000)
    • Maroon ($800000)
    • Green ($008000)
    • Olive ($808000)
    • Navy ($000080)
    • Purple ($800080)
    • Teal ($008080)
    • Gray ($808080)
    • Silver ($C0C0C0)
    • Red ($FF0000)
    • Lime ($00FF00)
    • Yellow ($FFFF00)
    • Blue ($0000FF)
    • Fuchsia ($FF00FF)
    • Aqua ($00FFFF)
    • White ($FFFFFF)

修正

  • シナリオのスタートエリアが表示される前にF9で強制終了した後、スタートエリアに到着してイベントが開始される。
  • 画面下の「キャンプ」「テーブル」ボタンの表示が正しくない。
  • 使用時イベントやキーコードイベント中にF9による強制終了を行った場合でもカード使用ダイアログが再度開く。
  • メッセージの行末と次の行頭に標準特殊文字が来るパターンで折り返しが行われない。
  • メッセージの話者画像が無い時に話者ありメッセージのレイアウトのままになる。
  • 戦闘中にスキンを変更するとタイトルバーからシナリオ名が消える。
  • メッセージ等の選択肢で最初のもの以外を選択している時に画面スケールを変更するとエラー。
  • Jpy1のnoise=5かつnoisepoint=0でエラー。
  • Jpy1でtransparent定義が無い場合に一時描画中のマスクが無効にならない。
  • Jpy1でtransparent=0でJptxイメージを読み込んだ時、背景が不透明にならない。
  • 画面スケールを変更している時、Jpy1で残像を利用してアニメーションを行うと表示がおかしくなる。
  • Jpy1のfilter=7では左上の色が白、それ以外の色が黒になる。
  • 一部フォントによるJptxが正しく描画されない。
  • Jptxでは
    の直後の改行は認識されない。
  • Jptxのとの挙動が誤っている。
  • 拡大表示中、Jpdcで保存した画像が拡大されたままになる。
  • メッセージとバックログの同時表示中にスケールを変更するとメッセージの選択肢が消滅する。
  • パーティを隠蔽した状態で画面スケールを変更し、PCのステータスを変更するとPCが画面上に出現する。
  • スキン付属の特殊文字をシナリオ側で上書きしている時、そのシナリオをF9で終了すると上書きされたままになる。
  • 隠蔽状態で称号を編集すると一旦隠蔽が解除される。
  • 麻痺・石化状態の対象の、意識不明者に対して無効なカードによるキーコードイベントが発生しない。
  • 使用時イベント中にシナリオが終了すると挙動がおかしくなる。
  • メッセージ無し選択肢の表示中に画面スケールを変更すると選択肢の位置がおかしくなる。
  • エリア移動後、メニューカードの配付中にF9による強制終了を行うと帰還後にエラー。
  • 全体に召喚獣を配布するスキルで、効果時間値の変動が次々に乗算されてしまう。
  • カード移動時に表示された適性がダイアログ再オープン後も残る。
  • 背景切替のブラインド効果がスケール変更で遅くなる。
  • 背景切替中に切替前背景の白色が透ける。
  • 表示前の二人目以降のNPCのスケール変更でエラー。
  • パーティー全員・睡眠者無効の能力・状態分岐が正常に分岐できない。
  • カードイベントやキーコードイベントの中でパーティを下げ、そのままイベントを終了するとパーティが下がったままになる。
  • 環境によってはセーブ後にエラーが出る事がある。
  • 生成したスキンのゲームオーバー処理を修正。
  • 生成したスキン(1.50)のフェイント発動音を修正。
  • 開始エリアの設定されていないシナリオが強制終了した後、そのシナリオがプレイ中の状態になってしまう。
  • 戦闘行動中に発生したイベントで同行キャストが加わると行動済みのキャラクタが再度行動してしまう。

CardWirthからの移行方法

冒険者の宿の変換が必要です。起動してから「スタート」カードを選ぶと宿の選択ダイアログが出ますが、そこで「変換」ボタンを押してCardWirthのYadoフォルダ内にある冒険者の宿のフォルダを選択するか、宿のフォルダをダイアログにドラッグ&ドロップしてください。宿は自動的に変換され、CardWirthPyで使用できる状態になります。

また、Scenarioフォルダ内にはショートカットを置く事ができるので、まずはCardWirthのScenarioフォルダへのショートカットを作るといいでしょう。

バリアントからの移行方法

バリアントのエンジンの実行ファイル(例えばModernWirth.exe)をCardWirthPyのウィンドウにドロップすると、そのバリアントのデータからスキンを自動生成するダイアログが出ます。

そのまま「決定」ボタンを押せば、必要なデータが自動的に抽出され、そのバリアントをそのまま移植したスキンが生成されます。スキンは右下の歯車ボタンで開く設定ダイアログから切り替える事ができます。

スキンの生成と同時にそのバリアントのシナリオのフォルダへのショートカットがCardWirthPyのScenarioフォルダに自動的に生成されますが、宿のデータは変換されません。必要な宿を個別に変換してください。

問題を見つけたら

現在のCardWirthPyが抱える課題はIssueの一覧で参照する事ができます。

バグや仕様の不備等の問題を見つけたら、新たにIssueを作成してお知らせください。皆様のご協力をお待ちしております。

Issueの書き方

  1. 課題のタイトルと説明を書いてください。発生した問題の内容や、どのように操作すれば問題が発生するかを具体的に詳しく書いていただければ調査が簡単になります。使っているOSのバージョンなど、バグに関係のありそうな情報があるとなおよいでしょう。
  2. Kindの欄は、その課題がバグであればbugを、要望であればproposalを選択してください。
  3. Prioerityは課題の重要度です。blocker-critical-major-……の順に重要度が下がっていきます。直さないとデータが消えてしまったりするような重大なバグの場合はcriticalに、メッセージのほんの些細な誤りなどの小さな問題はminorに……などと使い分けるといいでしょう。とはいえ、通常はmajorで問題ありません。

なお、Bitbucketのユーザアカウントを持っていなくてもIssueを作成する事はできますが、その後コメントする事はアカウント無しにはできないようです。修正の通知の後でなお問題が残っていたりした場合、遠慮無く次のIssueを作ってください。

その他、連絡や要望などに使っていただいても構いません。

テスト版のバージョン

最新リリースと同等か、それよりも新しいバージョンがDownloadsにあります。これらはテスト版としてソースコードに更新があるたびにビルドされているバージョンです。

以下のファイルをダウンロードし、出てきたフォルダを統合する事で遊べるようになります。

  • cardwirthpy_[日付].zip
  • skin_classic_[日付].zip
  • font_[日付].zip

目標

ここに書いてあるのは個人的に決めた事なので、他の開発者の意向で変更されるかもしれません。

フリー・オープンソースの維持

フリー・オープンソースを維持します。大方針と反しない限りにおいて、協力をできるだけ受け入れます(もちろん大方針に反するforkも可能です)。

事故や開発者側の都合によって永遠に開発が打ち切られるというリスクをこれによって軽減します。

CardWirth(~1.50)との99%の互換性を目指す

本質的な部分で何も変わらない事を目指す事を意味します。具体的には以下の目標を掲げます。

従来のCardWirthとほぼ変わりないプレイ環境を提供する

できるだけフォントを合わせるなどして違和感をなくし、シナリオの変換などしなくてもそのまま再生できるようにします。

さらなる互換性の強化

シナリオ側に簡単なiniファイルを追加する等の方法で、1.20以前のシナリオも問題なくプレイできるようにしたいと考えています。

また、CardWirthから自動的にスキンを生成する機能により、バリアントシナリオもプレイできるようにします。

追加・拡張機能は将来的な互換性を考えて慎重に実装する

例えば追加のイベントコンテントなどは、将来のCardWirth側の拡張と衝突する可能性があるため、特に注意しなくてはなりません。

しかし、例えばシナリオを一覧表示するような、純粋なインタフェースの改良などは問題ない場合が多いでしょう。

いずれにせよ、単体のソフトウェアではなくプラットフォームである以上、意思決定は軽々しくするべきではないと考えます。

互換性を考えない残り1%

  • *.wsnとしてまとめたシナリオの再生。
  • より強力なデバッグ機能。
  • 背景切替方式。
  • 音声再生方式。
  • 長いカード名に対応。
  • スキン方式によるバリアントの吸収。
  • 宿データの互換性。CardWirthの宿データを直接使用するように作った場合、パフォーマンス上の制約が大きくなり(例えば大きな宿の読込に数秒かかったりします)、拡張性も不足します。そのため、より効率的なフォーマットを採用した上で、相互に変換できるようにします。
  • CABアーカイブだけでなくZIPアーカイブにも対応。
  • 将来的に問題ないと思われるレベルのインタフェースの改良。

現在の状況

CardWirthPyとしての未完成部分

概ね完成したと考えています。残る課題についてはIssueをご覧ください。

Reboot側での追加要素

  • 変換無しでシナリオを読み込めるようにする。
  • Scenarioフォルダ内のショートカット対応。
  • スキンのパラメータによりメッセージのフォントをCardWirthに合わせる。
  • 従来のCardWirthからのスキン自動生成。
  • スキンを拡張し、バリアントで変化しているような箇所はすべてスキンで吸収できるように。
  • CAB対応。
  • ZIP対応。
  • シナリオや宿読込の高速化。
  • 宿データの逆変換。
  • CardWirth 1.29~1.50相当の機能の追加。
  • インタフェースの若干の変更(貼紙のツリー表示や宿帳の一覧表示など)。これについては随時継続。

Clone this wiki locally