-
Notifications
You must be signed in to change notification settings - Fork 2
Home
CardWirthPy 0.12.3をリリースしました(ダウンロード)。バージョン0.12.2に続く最新のリリース版です。更新内容については紹介ページをご覧ください。
このバージョンの開発にあたり、多くの方に助言・提案・不具合の報告をいただき、数名の方にはコードやデータを寄贈していただきました。この機会に改めてお礼申し上げます。ありがとうございました!
これはCardWirthPy Developer's Siteで開発中だったCardWirthPyのフォークです(フォークについての説明)。本家側の更新停止が続いているため、Rebootと称して独自に開発を継続しています。
原開発者の方に連絡を取ったところ、恐らく本家側の更新は今後も無いという事なので、事実上開発を引き継いだ形になっています。
開発に参加したりさらに引き継いだりしてくれる方を募集中です。
CardWirthPy&XEditor攻略wikiや、takuto_cwさんのよくまとまった紹介記事もご覧ください。
開発に興味のある方は開発者向け情報をご覧ください。
- CardWirthPy 0.12.3
- 0.12.2からの差分(0.12.2以降にフォルダごと上書きしてください)
フルバージョンであっても、設定やプレイデータは含まれていないため、ダウンロードし解凍した内容をそのまま上書きすれば更新が可能です。
追加はありません。
変更はありません。
- 背景切替アニメーション中に背景を右クリックする事ができ、キャンプモードへの不正な切替等が発生する。
- 戦闘行動選択などのクリックアニメーション中にステータスボタンを選択するとカード選択ダイアログ表示時にエラーが発生する。
- 大江戸バリアントから生成したスキンなど、希少品マークのサイズがClassicと異なるスキンで、希少品マークの表示が乱れる。
最新のテスト版やスキンのダウンロードとその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で見る事ができます。
現在のCardWirthPyが抱える課題はIssue(課題)の一覧で参照する事ができます。
バグや仕様の不備等の問題を見つけたら、新たにIssueを作成してお知らせください。皆様のご協力をお待ちしております。
- 課題のタイトルと説明を書いてください。発生した問題の内容や、どのように操作すれば問題が発生するかを具体的に詳しく書いていただければ調査が簡単になります。使っているOSのバージョンなど、バグに関係のありそうな情報があるとなおよいでしょう。
- Kindの欄は、その課題がバグであればbugを、要望であればproposalを選択してください。互換性情報の提供はenhancementでしょうか(とはいえ深く考えずに選んでも問題はありません)。
- Prioerityは課題の重要度です。blocker-critical-major-……の順に重要度が下がっていきます。直さないとデータが消えてしまったりするような重大なバグの場合はcriticalに、メッセージのほんの些細な誤りなどの小さな問題はminorに……などと使い分けるといいでしょう。とはいえ、通常はmajorで問題ありません。
なお、Bitbucketのユーザアカウントを持っていなくてもIssueを作成する事はできますが、その後コメントする事はアカウント無しにはできないようです。修正の通知の後でなお問題が残っていたりした場合、遠慮無く次のIssueを作ってください。
その他、連絡や要望などに使っていただいても構いません。
汎用の報告・連絡用Issueがあるのでここに返信する形で書き込んでください。ただしBitbucketのユーザアカウントが必要です。
環境によって、音声の再生で問題が発生することがわかっています。次のような問題が、サウンドフォントが存在しないか、サウンドフォントをまったく使用しない設定になっている時に発生します。
- BGMの終了時に時々ハングアップする。
- サウンドフォントを使用する設定から使用しない設定にした時にハングアップする。
- 音声ファイルの形式によっては音量調節や再生可否の設定が機能しない。
このような問題が発生する場合、標準のサウンドフォントを使用するように設定を変更してください。
シナリオが存在するにも関わらずシナリオ選択ダイアログに表れず、表れたシナリオも読み込みに失敗する状態になることがあるようです。この問題が発生した場合は、CardWirthPy.exeと同じフォルダにあるScenario.dbを削除して再起動してください。
最新リリースと同等か、それよりも新しいバージョンがDownloadsにあります。これらはテスト版としてソースコードに更新があるたびにビルドされているバージョンです。
以下のファイルをダウンロードし、出てきたフォルダを統合する事で遊べるようになります。
- cardwirthpy_[日付].zip
- skin_classic_[日付].zip
- font_[日付].zip
CardWirthエンジンを実装するにあたって直面した互換性やバグなどについてのメモを作成したので掲載しておきます。エフェクトブースターについてのメモなど、実際のシナリオ作成時などの参考となるかもしれません。
ここに書いてあるのは個人的に決めた事なので、他の開発者の意向で変更されるかもしれません。
フリー・オープンソースを維持します。大方針と反しない限りにおいて、協力をできるだけ受け入れます(もちろん大方針に反するforkも可能です)。
事故や開発者側の都合によって永遠に開発が打ち切られるというリスクをこれによって軽減します。
本質的な部分で何も変わらない事を目指す事を意味します。具体的には以下の目標を掲げます。
できるだけフォントを合わせるなどして違和感をなくし、シナリオの変換などしなくてもそのまま再生できるようにします。
シナリオ側に簡単なiniファイルを追加する等の方法で、1.20以前のシナリオも問題なくプレイできるようにしたいと考えています。
また、CardWirthから自動的にスキンを生成する機能により、バリアントシナリオもプレイできるようにします。
例えば追加のイベントコンテントなどは、将来のCardWirth側の拡張と衝突する可能性があるため、特に注意しなくてはなりません。
しかし、例えばシナリオを一覧表示するような、純粋なインタフェースの改良などは問題ない場合が多いでしょう。
いずれにせよ、単体のソフトウェアではなくプラットフォームである以上、意思決定は軽々しくするべきではないと考えます。
- *.wsnとしてまとめたシナリオの再生。
- より強力なデバッグ機能。
- 背景切替方式。
- 音声再生方式。
- 長いカード名に対応。
- スキン方式によるバリアントの吸収。
- 宿データの互換性。CardWirthの宿データを直接使用するように作った場合、パフォーマンス上の制約が大きくなり(例えば大きな宿の読込に数秒かかったりします)、拡張性も不足します。そのため、より効率的なフォーマットを採用した上で、相互に変換できるようにします。
- CABアーカイブだけでなくZIPアーカイブにも対応。
- 将来的に問題ないと思われるレベルのインタフェースの改良。
概ね完成したと考えています。残る課題についてはIssueをご覧ください。
- 変換無しでシナリオを読み込めるようにする。
- Scenarioフォルダ内のショートカット対応。
- スキンのパラメータによりメッセージのフォントをCardWirthに合わせる。
- 従来のCardWirthからのスキン自動生成。
- スキンを拡張し、バリアントで変化しているような箇所はすべてスキンで吸収できるように。
- CAB対応。
- ZIP対応。
- シナリオや宿読込の高速化。
- 宿データの逆変換。
- CardWirth 1.29~1.50相当の機能の追加。
- インタフェースの若干の変更(貼紙のツリー表示や宿帳の一覧表示など)。これについては随時継続。