-
Notifications
You must be signed in to change notification settings - Fork 1
Home
CardWirthNextからスキンを自動生成した時に動作が不安定になる問題が報告されています。
当該の問題が発生した場合、CardWirthPy/Yadoフォルダ内にあるショートカットをすべて削除する事で解決できますので、お試しください。
CardWirthPy 1.1をリリースしました(ダウンロード)。
バージョン1にシナリオのプレイに支障をきたすような問題が発見されたための臨時リリースです。バージョン1をご利用の方はアップデートをお薦めします。
8月7日追記: バージョン1にシナリオのプレイに支障をきたすような問題が発見されたため、今月半ば頃にバージョン1.1のリリースを予定しています。バージョン1をご利用の方は、1.1リリース後のアップデートをお薦めします。
CardWirthPy 1をリリースしました。バージョン0.12.3bに続く最新のリリース版です。
- バージョン0.12.3bから1にかけての更新内容についての紹介ページがあります。
- バージョン1にはCardWirthPy独自のシナリオ形式の機能強化が含まれます。詳細はWSNシナリオの新機能のページをご覧ください。
多くの方からの助言・提案・報告・そしてコードやデータの直接の寄贈といったご協力のおかげで、ようやくバージョン1をリリースする事ができました。
それらの方々と、CardWirthPyを使用してくださっている方々に、改めてお礼申し上げます。ありがとうございます!
これはCardWirthPy Developer's Siteで開発中だったCardWirthPyのフォークです(フォークについての説明)。本家側の更新停止が続いているため、Rebootと称して独自に開発を継続しています。
原開発者の方に連絡を取ったところ、恐らく本家側の更新は今後も無いという事なので、事実上開発を引き継いだ形になっています。
開発に参加したりさらに引き継いだりしてくれる方を募集中です。
CardWirthPy&XEditor攻略wikiや、takuto_cwさんのよくまとまった紹介記事もご覧ください。
開発に興味のある方は開発者向け情報をご覧ください。
- CardWirthPy 1.1 / ミラー (2016年8月15日リリース / Wsn.1対応)
- 0.12.2からの差分(0.12.2以降にフォルダごと上書きしてください)
- 更新内容(ChangeLog.txt)
フルバージョンであっても、設定やプレイデータは含まれていないため、ダウンロードし解凍した内容をそのまま上書きすれば更新が可能です。
バージョン1.1で、CardWirthNextからスキンを自動生成した時に動作が不安定になる問題が報告されています。
当該の問題が発生した場合、CardWirthPy/Yadoフォルダ内にあるショートカットをすべて削除する事で解決できますので、お試しください。
開発版の1月3日時点でのスナップショットです。1.1のリリース後に搭載された新しい機能が使用できますが、正しく動く事は保証されません。宿データのバックアップを取るなど自己防衛策を講じてからご利用ください。
- CardWirthPy 2.0α1(2017年1月3日リリース)
- 更新内容(ChangeLog.txt)
さらに新しいテスト版やスキンのダウンロードとそのChangeLog
冒険者の宿の変換が必要です。起動してから「スタート」カードを選ぶと宿の選択ダイアログが出ますが、そこで「変換」ボタンを押してCardWirthのYadoフォルダ内にある冒険者の宿のフォルダを選択するか、宿のフォルダをダイアログにドラッグ&ドロップしてください。宿は自動的に変換され、CardWirthPyで使用できる状態になります。
また、Scenarioフォルダ内にはショートカットを置く事ができるので、まずはCardWirthのScenarioフォルダへのショートカットを作るといいでしょう。
バリアントのエンジンの実行ファイル(例えばModernWirth.exe)をCardWirthPyのウィンドウにドロップすると、そのバリアントのデータからスキンを自動生成するダイアログが出ます。
そのまま「決定」ボタンを押せば、必要なデータが自動的に抽出され、そのバリアントをそのまま移植したスキンが生成されます。スキンは右下の歯車ボタンで開く設定ダイアログから切り替える事ができます。
スキンの生成と同時にそのバリアントのシナリオのフォルダへのショートカットがCardWirthPyのScenarioフォルダに自動的に生成されますが、宿のデータは変換されません。必要な宿を個別に変換してください。
適宜シナリオの対応エンジンの情報を与えることで、CardWirthPyに過去のCardWirthエンジン相当の動作を行わせる事ができます。
例えば、CardWirth 1.20から1.28への移行の時、メニューカードの位置がプレイヤーカードの上に表示されていたのに、1.28ではその位置関係が逆になり、1.20環境で作られた一部シナリオのメニューカードがプレイヤーカードの背後に隠れて見えなくなるといった事が起きました。CardWirthPyは、普段は1.28エンジンのようにプレイヤーカードを上に描画しますが、「このシナリオのこのエリアは1.20のようにメニューカードを上に表示するべき」であると判断すると、自動的にそのような描画に切り替えます。これを互換モードと呼びます。
互換モードに切り替える判断材料には次のようなものがあります。
いくつかのシナリオについては、エンジン本体に同梱された互換性データベースによって、自動的に互換モードに切り替わります。
全てのシナリオの互換性を調査する事は容易ではないため、互換性データベースに入っているシナリオのリストは不完全です。CardWirthエンジンのバージョンアップで動かなくなったシナリオ等について、皆様からの情報提供をお待ちしております。
そういったシナリオを見つけたら、Issueを作成してお知らせください。タイトルは【互換性DB】から始め、説明には該当するシナリオの情報(シナリオ名やどこで手に入るか等)を書き、Kindはenhancementを選択するとよいでしょう。出来る限り速やかに対応させていただきます。
入手不能なシナリオを登録させたい場合は、互換性情報の生成のしかたをご覧ください。
互換性データベースには情報が無いが、とりあえずすぐに互換モードで動かしたいシナリオ等が存在する場合、シナリオのフォルダに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エンジンを実装するにあたって直面した互換性やバグなどについてのメモを作成したので掲載しておきます。エフェクトブースターについてのメモなど、実際のシナリオ作成時などの参考となるかもしれません。
ここに書いてあるのは個人的に決めた事なので、他の開発者の意向で変更されるかもしれません。
フリー・オープンソースを維持します。大方針と反しない限りにおいて、協力をできるだけ受け入れます(もちろん大方針に反するforkも可能です)。
事故や開発者側の都合によって永遠に開発が打ち切られるというリスクをこれによって軽減します。
過去に作られた全てのCardWirthシナリオがプレイ可能な環境を提供する事を目指します。
ただし「完璧にプレイできる」ようにする事は困難ですので、それは理想として掲げつつ、現実的には「全てのシナリオが充分にプレイできる」事を目指す事になります。
これにはCardWirth 1.30以前のバージョン用として作られたシナリオや、各種バリアント用のシナリオも含まれます。
例えばCardWirth 1.28と1.50で仕様が異なる時にどうした対応をするかですが、次のような理由で、ほとんどの場合は1.50に合わせるのが妥当と思われます。
- 最新のバージョンに対応したシナリオは今後増加しますが、最新でないバージョンに合わせたシナリオは増加が見込めません。
- 「最新」のバージョンは常に改まっていくものですが、過去のバージョンは変化しませんので、一度互換性DBなどを用いた対応を行えば、以後は手を入れる必要がありません。
また、仕様の違いが、シナリオをプレイするに当たってほとんど無視できるほど小さなものである場合は、内部的・外面的な複雑さの増大と将来に渡る保守リスクを加味した上で検討し、リスクに対するメリットが無いと判断された場合は無視した方がよいでしょう。
追加・拡張機能は将来的な互換性を考えて慎重に実装するべきです。例えば追加のイベントコンテントなどは、将来のCardWirth側の拡張と衝突する可能性があるため、特に注意しなくてはなりません。単体のソフトウェアではなくプラットフォームである以上、意思決定は軽々しく行うべきではないのです。
一方で、新しい機能の提供によって、シナリオ作者の負担を軽くしたり、新しい事ができるようにする事も、やはり必要です。この2つの考え方は矛盾するようですが、どこかで折り合いをつけなければなりません。
さて、CardWirthPyでは、最初から独自シナリオ形式(WSN形式)のシナリオを遊ぶ事ができます。バージョン1以降には、そのWSN形式の機能拡張も含まれます。WSN形式に追加された新しい機能は、「CardWirth側の拡張との衝突の可能性をできるだけ低くしつつ有用なもの」というような基準で検討され、選択されたものです。
WSN形式の機能拡張を行う際の方針についての詳細は、issue #184で見る事ができます。
特に著作権情報の記載されている画像などを除き、すべてCC0の通りに利用してください(何をしようとも完全に自由で、許諾は不要)。
なお、このwikiサイトの内容はMercurialで管理されており、以下のようにして取得する事ができます。
hg clone https://bitbucket.org/k4nagatsuki/cardwirthpy-reboot/wiki