開発資料




はじめに

 CardWirthPyとCWXEditorはオープンソースのプロジェクトです。
プログラムのソースコードが非公開の状態で開発が停止したCardWirthと異なり、
誰でもソースコードを入手し、改変し、公開することができます。

 PyLiteのように独自のフォークをする予定がなくとも、開発環境を整えることはメリットがあります。
例えば、ちょっとしたバグを自分で直したり、自分の欲しい機能を実装して、
PullRequest(寄贈)したりという行動は、開発者にとっても大変ありがたいことだし、
あるいは、気に入らない変更や仕様があったとき、開発環境があれば、
少しの手直し(大抵の場合数行です)で自分好みの環境を守ることができるので客観的に意見ができると思います。
(Mercurialによるバージョン管理で自分のフォークしたソースにRebootの更新を取り込むのは、
ZIPをダウンロードして展開ファイルを上書きするより遙かに高速です)

 折角のオープンソースもプロジェクトが停止し、利用する人がいなければ埋もれてしまいます。
開発者が増えれば、主導する開発者が引退してもプロジェクトは続いていくことができます。
「プログラミングなんて難しくてできないもの」とはじめから諦めず、できることからはじめてみてください。

開発環境の構築

 CardWirthPyとCWXEditorは経緯上別々の作者が開発してきたため、
実装言語も異なり、Pyは名前通りPython、XEditorはD言語で書かれています。
どちらも開発環境を整えることは無料で出来るようになっています。
色々インストールする必要がありますが、どちらかといえばエンジンの方が簡単という印象。



エンジンの開発環境

 Py3.0以降、CWPyRebootと開発に使用するライブラリに違いが生じたため、
以下はPyLiteの使用バージョンに基づいています。

絶対に必要なもの[5]

  • Python (ver2.7.17 /32bit)
    基本のパッケージ。2系と3系が並行リリースされている状態。3系を落としてもCWPyは動きません。標準のテキストエディタ(IDLE)が軽くて結構使いやすい。


  • lhafile 0.1
    LZHファイルを解凍してくれるライブラリ。「.lzh」は昔zip並みに流行ってた今は廃れている日本発の圧縮形式。CWでは古いシナリオがそれで圧縮されてることも多いので使うことになった模様。

  • Pygame ver1.9.6 (32bit)
    CWPyのメイン画面を動かしているゲーム向けライブラリ。最近インストーラがなくなったのでPythonを導入したあと、コマンドプロンプトからのPIPでインストールしてください。
C:\Python27\Scripts\pip install pygame 1.9.6

  • wxPython (ver4.1.0 /Python2 32bit)
    CWPyのサブダイアログを動かしているGUIアプリ向けライブラリ。
 WXPythonは4.1.0以降Python2のサポートを終了したため、通常のpipアップデートでは失敗します。
 以下から直接「wxPython-4.1.0-cp27-cp27m-win32.whl」をダウンロードして下さい。
 https://pypi.org/project/wxPython/4.1.0/#files

 コマンドプロンプトを実行するフォルダに入れて以下のようにローカルインストールします。
Python -m pip install wxPython-4.1.0-cp27-cp27m-win32.whl

5.1以前のソースコードを実行したい場合、3系のWXPythonを使う必要があります。
+ ...
 WXPython3と4で大きく仕様が変わったため、PyLite 5.1以前のソースコードを使う場合はver3.0.2.0 /32bitを使用して下さい。3系ではインストーラーが提供されています。

 https://sourceforge.net/projects/wxpython/files/wxPython/3.0.2.0/
「wxPython3.0-win32-3.0.2.0-py27.exe」をダウンロードして下さい。


  • CWPy本体とソース 
    Rebootでは全Verで本体にsrc.zipが同梱されているのでそのまま解凍して下さい。
    Liteでは同梱していないので、src.zipを別個に落としてPyLiteのフォルダに入れて解凍して下さい。
 以下のような構成になればOKです。

CardWirthPyLite  
┣Data
┣...
┗cw

あるといいもの

  1. Pycharm 
    Pythonの統合開発環境(英語)。IDLEだけでも可能だがあると便利。Community版は無料。
  2. py2exe 
    Windowsバイナリ(.exe)を作るためのコンパイラ。作るのに設定ファイルを必要とします。(build_exe.pyを実行すればOK)
  3. 本家Py(未完成)のソース
    現Py3系は当初の約4倍程度の分量があるため基本構造のみ把握したい時は、本家の方が読みやすいです。
  4. 英語力 
    リファレンスは大体英語です。

Rebootwikiの開発者向け情報通り、全部インストールしてPATHを通せばOKです。
Python/Pygame/wxPythonはVerによりフォントサイズやカーソルの色が変わったりするので必ず書いてある通りのバージョンを選んで下さい。

(lhafileは.lzhファイルを解凍することにしか使ってないのでその機能が不要なら数行書き換えるだけで不要になりますが、最初はそこまでいじる方が面倒)とりあえず、全部入れて下さい。

bitbucketを使わない場合、CardWirthPyのフォルダでsrc.zipを解凍し、以下のような構成にするのがいいでしょう。

CardWirthPy
  ├Data
 …
  └cw
  cardwirth.py
  CardWirthPyLite.exe

cardwirth.py」ダブルクリック等で起動できたら導入完了。お疲れ様でした。


初歩的なこと

  • 黒い画面が一瞬表示されて落ちる場合、コマンドプロンプトでファイル名を指定して実行すればエラーの出ている箇所が分かる。
  • 新しいVerや64bit版が出ているからといって無闇に導入しない。必ず書いてある通りのバージョンをインストールする。
  • ビルドする時はcwディレクトリ以下に日本語ファイル名が含まれているとエラーが出る。(コピーしてそのままとか)


エディタの開発環境

絶対に必要なもの[3]

  1. DMD 2.077.0
    D言語の標準コンパイラ。Windows用のexeか7zを落として下さい。
  2. DWT
    XEditorが使用しているGUIライブラリ。多分gitやってない人には落とし方がわからず困るレベル。改善されたようで、現在はgitを入れなくてもサブディレクトリも含まれた状態でダウンロードされるようになっています。clone ordownload →download ZIPで落とすだけでOKです。
  3. CWXEditorのソース
    XEditorに同梱されています。

あればいいもの

  1. Visual studio community 2013 64bit版をビルドするのに必要?
  2. テキストエディタ

インストール~ビルドまで

まずはXEditorのソースに含まれているテキストを見て下さい。
基本的に書いてある通りの手順でビルドできますなくなっています。(後述のsc.iniの書き方に気をつけて下さい)

DMDはインストーラでOK。sc.iniの編集以外は特に注意するところはないです。
DWTをダウンロード・解凍したらDMD2フォルダの近くに置きます。
別に近くじゃなくてもいいんですが、iniの記述例が相対パスになっているので以下のような構造にするのが楽だと思います。
C:\D\dmd2
C:\D\dwt

D編集用のテキストエディタは自前で用意。
サクラエディタの設定

sc.iniの編集
dmd2/windows/bin/sc.ini
ライブラリの場所を記述する設定ファイル
dwtの場所を書かないとエラーになります。
付属テキストは、たとえばC:\D\dmd2とインストールした場合、C:\D\dmd2\dwtを見るという例のようなので別のディレクトリに入れた場合、そこの場所を書く必要があります。環境変数(-I%@P%などの呪文)で書かれているけど絶対パス(C:\D\dwtなど)でもOK。

2.075.0あたりでバグが入ったらしく(D言語では日常茶飯事らしい…)READMEの書き方ではコンパイルできなくなっています。diが生成された「DWTのインポートフォルダ(imp)」ではなくSRCフォルダを直接指定するようにして下さい。

"-I%@P%\..\..\dwt\org.eclipse.swt.win32.win32.x86\src"
"-I%@P%\..\..\dwt\base\src

準備が整ったらとりあえずビルドしてみます。
コマンドプロンプトで以下を実行して下さい。
rdmd build
なお、この手のコマンドライン型の入力が苦手・面倒な場合、コマンドを書いたテキストファイルを.batにリネームしてクリックすると楽です。

cwxeditor.exe」が生成され、無事起動できたら成功です。お疲れ様でした。

コーディング

テキストエディタで編集→起動して確認(→ビルド)という流れになります。
Pythonはインタプリタなのでビルドしなくても確認できますが、XEditorは毎回ビルドする必要があります。

Python自体の解説サイトは多いものの、使用ライブラリのPyGameとwxPythonの実装例やドキュメントは英語圏にいかないとほぼないです。D言語も日本語圏だとQiitaとD言語友の会(フォーラムが数年止まってる)ぐらいしか解説してるサイトがない…ので根性で頑張って下さい。



参考サイト
python-izm 入門向けの基本的な解説サイト。初心者でもわかりやすかったです。
Python2.7公式ドキュメント XMLなどのファイル操作で結構標準ライブラリも使われています。
Pygameガイド日本語訳 メイン画面の画像処理はこれ。
WXの実装例(英語)/翻訳版(未完) WXはサブウィンドウ・ダイアログ全般に使われています。
WXのキーイベント(英語) ダイアログでショートカットキーを増やす場合。
Pycharmのショートカット ファイル横断検索が便利。

un4seen
CardWirth1.30以降はここのbass.dllというライブラリに音声処理を全て投げています。
Pyでは当初PyGameのSDLミキサーで再生していましたが、不具合や非対応の形式などの問題があるため、
Py3以降bass.dllに一本化しました。



アイコンはcwxeditor.resに固められるので、クリーンビルドしないとそのまま。
クリーンビルドは自分の環境では大体40秒ほど掛かります。

”このアプリはお使いのpcでは実行できません”と出る
長月さん曰く「テンプレートを複雑に使うとオブジェクトファイルの内容が複数絡み合って変化」して
エラーになるらしく、一度クリーンしたあともう一度作り直す必要があります。

タグ:

+ タグ編集
  • タグ:
最終更新:2023年09月13日 09:23