Skip to content
k4nagatsuki edited this page Mar 1, 2016 · 201 revisions

CardWirthPy Reboot


お知らせ

お知らせを飛ばす(次の項目までジャンプ)

2016年1月2日

このページにあった「問題を見つけたら」の項を単独のページとして切り出しました。

2015年8月13日

いくつかの不具合を修正したCardWirthPy 0.12.3bをリリースしました(ダウンロード / 更新内容)。

0.12.3には宿の変換でシナリオ内で手に入れた直後のカードの希少度情報が変化してしまうバグが存在しているため、0.12.3をご使用されている方はアップデートをお薦めします。

このリリースには、0.12.3リリース後に追加された新機能は含まれていないため、テスト版をご使用中の方は最新のテスト版へのアップデートをお薦めします。

2015年8月1日

CardWirthPy 0.12.3をリリースしました。バージョン0.12.2に続く最新のリリース版です。更新内容については紹介ページをご覧ください。

このバージョンの開発にあたり、多くの方に助言・提案・不具合の報告をいただき、数名の方にはコードやデータを寄贈していただきました。この機会に改めてお礼申し上げます。ありがとうございました!



これは何?

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

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

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

CardWirthPy&XEditor攻略wikiや、takuto_cwさんのよくまとまった紹介記事もご覧ください。

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


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

フルバージョンであっても、設定やプレイデータは含まれていないため、ダウンロードし解凍した内容をそのまま上書きすれば更新が可能です。

最新リリースの更新内容

追加

追加はありません。

変更

  • 拡大設定をフルスクリーン以外からフルスクリーンに変更した時、一旦拡大状態を解除するようにした。これは、同操作によってフルスクリーン化した後でF4キーで拡大を解除するとウィンドウの操作が効かなくなるという問題への暫定的な対処です。問題が無くなった場合は元の挙動へ戻す予定です。
  • カードの防御修正に適性が影響しないようにした。

修正

  • 横長のモニタでフルスクリーン表示に切り替えると画面の右端が消える。
  • フルスクリーン以外の拡大設定で画面を拡大している状態で拡大設定をフルスクリーンに変更し、その後F4キーで拡大を解除するとウィンドウの操作が効かなくなる。
  • 宿の変換で、シナリオ内で入手し、PCに持たせたカードのレアリティが上昇する。

次期バージョンα版のダウンロード

開発版の3月1日時点でのスナップショットです。0.12.3のリリース後に搭載された新しい機能が使用できますが、正しく動く事は保証されません。宿データのバックアップを取るなど自己防衛策を講じてからご利用ください。


さらに新しいテスト版やスキンのダウンロードとそのChangeLog


CardWirthからの移行方法

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

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

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

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

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

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


CardWirth 1.30以前のシナリオとの互換動作について

適宜シナリオの対応エンジンの情報を与えることで、CardWirthPyに過去のCardWirthエンジン相当の動作を行わせる事ができます。

例えば、CardWirth 1.20から1.28への移行の時、メニューカードの位置がプレイヤーカードの上に表示されていたのに、1.28ではその位置関係が逆になり、1.20環境で作られた一部シナリオのメニューカードがプレイヤーカードの背後に隠れて見えなくなるといった事が起きました。CardWirthPyは、普段は1.28エンジンのようにプレイヤーカードを上に描画しますが、「このシナリオのこのエリアは1.20のようにメニューカードを上に表示するべき」であると判断すると、自動的にそのような描画に切り替えます。これを互換モードと呼びます。

互換モードに切り替える判断材料には次のようなものがあります。

互換性データベース

いくつかのシナリオについては、エンジン本体に同梱された互換性データベースによって、自動的に互換モードに切り替わります。

全てのシナリオの互換性を調査する事は容易ではないため、互換性データベースに入っているシナリオのリストは不完全です。CardWirthエンジンのバージョンアップで動かなくなったシナリオ等について、皆様からの情報提供をお待ちしております。

そういったシナリオを見つけたら、Issueを作成してお知らせください。タイトルは【互換性DB】から始め、説明には該当するシナリオの情報(シナリオ名やどこで手に入るか等)を書き、Kindはenhancementを選択するとよいでしょう。出来る限り速やかに対応させていただきます。

入手不能なシナリオを登録させたい場合は、互換性情報の生成のしかたをご覧ください。

mode.ini

互換性データベースには情報が無いが、とりあえずすぐに互換モードで動かしたいシナリオ等が存在する場合、シナリオのフォルダにmode.iniというファイルを追加する事で、CardWirthPyに互換モードで動くよう指示を出す事ができます。

mode.iniはテキストファイルで、内容は次の2行です。

[Compatibility]
engine=1.20

ここで、2行目がengine=1.20となっているとCardWirth 1.20相当の互換モードで動きます。1.28相当のモードにしたい場合は、これをengine=1.28にしてください。

互換モードの詳しい内容

現在の互換モードがどの程度まで過去のエンジン相当の挙動をするかについての詳細はIssue #17で見る事ができます。


テスト版のバージョン

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

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

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

実装メモ

CardWirthエンジンを実装するにあたって直面した互換性やバグなどについてのメモを作成したので掲載しておきます。エフェクトブースターについてのメモなど、実際のシナリオ作成時などの参考となるかもしれません。


CardWirthPyの目標

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

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

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

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

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

過去に作られた全てのCardWirthシナリオがプレイ可能な環境を提供する事を目指します。

ただし「完璧にプレイできる」ようにする事は困難ですので、それは理想として掲げつつ、現実的には「全てのシナリオが充分にプレイできる」事を目指す事になります。

これにはCardWirth 1.30以前のバージョン用として作られたシナリオや、各種バリアント用のシナリオも含まれます。

互換性に対する考え方について

例えばCardWirth 1.28と1.50で仕様が異なる時にどうした対応をするかですが、次のような理由で、ほとんどの場合は1.50に合わせるのが妥当と思われます。

  • 最新のバージョンに対応したシナリオは今後増加しますが、最新でないバージョンに合わせたシナリオは増加が見込めません。
  • 「最新」のバージョンは常に改まっていくものですが、過去のバージョンは変化しませんので、一度互換性DBなどを用いた対応を行えば、以後は手を入れる必要がありません。

また、仕様の違いが、シナリオをプレイするに当たってほとんど無視できるほど小さなものである場合は、内部的・外面的な複雑さの増大と将来に渡る保守リスクを加味した上で検討し、リスクに対するメリットが無いと判断された場合は無視した方がよいでしょう。

追加・拡張機能とその互換性について

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

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

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

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


このwikiサイトのライセンス

特に著作権情報の記載されている画像などを除き、すべてCC0の通りに利用してください(何をしようとも完全に自由で、許諾は不要)。

なお、このwikiサイトの内容はMercurialで管理されており、以下のようにして取得する事ができます。

hg clone https://bitbucket.org/k4nagatsuki/cardwirthpy-reboot/wiki

Clone this wiki locally