Javardryの実行
Javardryはレジストリ等をいじくったりはしませんので、適当なディレクトリにぶち込んで実行し、不要になれば削除するだけです。
なお、Javardry本体のみでは遊べませんので、プレイしたいシナリオデータ(gameData.dat)を導入してから実行して下さい。
プログラム本体(classファイル)はJavadry.jarです。以下のいずれかの方法で起動して下さい。なお、jarのファイル名は変更しても構いません(拡張子は変更しないで下さい)。
起動直後のタイトル画面では、オートマップ表示のon/off(マップ表示/数値表示)を切り替えられます。デフォルトはonです。
- 実行ファイル(exe)からの起動
Windows環境の場合には、Javardry.exeから起動することが出来ます。Javardry.exe、Javardry.iniのファイル名は変更しても構いませんが、拡張子以外は必ず同じ名前にして下さい(Wizmodoki.exe、Wizmodoki.ini等)。また、Javardry.jarのファイル名を変更している場合には、Javardry.ini内の記述も修正して下さい。
なお、JavardryConsole.exeから起動すると、同時にコンソール画面も立ち上がります。自作シナリオのテストプレイ等でコンソール画面が必要で、下記のコンソールから起動とかよくわからん、もしくは面倒だという場合には利用して下さい。iniファイル等の仕様はJavardry.exeと同様です。
- jarからの起動
jarがJavaに関連付けされている場合には、Javardry.jarをダブルクリックすることで起動出来ます。
- コンソール(コマンドプロンプト、端末)からの起動
コンソール(コマンドプロンプト、端末)にて、以下のコマンドを実行することで起動することが出来ます。
jarファイルの存在するディレクトリがカレントではない場合には、"java -jar hoge/Javardry.jar" のようにjarファイルへのパスを指定して下さい。
以下のような問題が発生する場合があるようです。
- レジストリ書き込み失敗の警告
Windows7で確認しましたが、起動時に「WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.」という警告が出るようです。エラーではなく警告なので動作に問題はなさそうですが、レジストリエディタ(regedit)で HKEY_LOCAL_MACHINE\Software\JavaSoft に Prefs というキーを作成して貰えば、警告は出なくなります。
- MIDIファイル再生時に音が途切れる
MIDIファイルの再生時に音が途切れたり飛んだりする場合には、AudioClipで再生(起動時に引数 -midiPlay ac を指定)すると改善される場合があるようです。ただし、MIDIファイルをAudioClipで再生する際には下記のヒープ領域エラーに注意して下さい。
- LinuxでWAVE効果音を鳴らすとフリーズする
Linux(OpenJDK)環境において、WAVE効果音を鳴らすと音楽が止まり、次の曲を鳴らす際にフリーズしてしまうことがあるようです。その場合には、WAVE効果音をAudioClipで再生(起動時に引数 -sePlay ac を指定)してやればよいようです。(※ OpenJDKで -sePlay 未指定の場合には、AudioClipで再生するようにしてあります)
また、OpenJDKの場合のみなのか、再生時間が1sec未満の効果音(WAVE)を鳴らすとフリーズすることがあるようです。効果音は、最後に無音時間を追加するなどして1sec以上の長さにして下さい。
- LinuxでMP3効果音を鳴らし続けるとフリーズする
Linux(OpenJDKのみ?)環境において、MP3効果音を鳴らし続けるとフリーズしてしまうようです。今のところ修正の目処が立っていませんので、Linuxでプレイをする際には効果音をWAVEファイルにして下さい。効果音がMP3で提供されているシナリオをプレイする際には、(拡張子以外の)ファイル名はそのままでWAVEファイルに変換し、MP3ファイルは削除(もしくは移動)して下さい。
- ヒープ領域エラー
「java.lang.OutOfMemoryError: Java heap space」というエラーが出てシナリオ読み込み中で止まってしまうことがあるようです。MIDIファイルをAudioClipで再生(起動時に引数 -midiPlay ac を指定)させる場合に確認しました。JavaVMに割り当てられたメモリが足りていないということらしく、 引数 -Xmx でヒープ領域の最大値を増やしてやればよいようです。
- java -jar -Xmx1024m Javardry.jar -midiPlay ac
実行時の引数により、起動時のウィンドウサイズ等を指定することが出来ます。
引数はJavardry.exeでの起動の場合はJavardry.iniの記述により指定します。その場合は「-jar Javardry.jar -errorText -size 800 -bgm on -se on」などと記述します。
- -?, -help
コンソール(コマンドプロンプト、端末)に引数のヘルプが表示されます。コンソール(コマンドプロンプト、端末)からの起動でなければ意味がありません。
- -size [300, 450, 600, 800等]
ウィンドウサイズを指定します。300以上の任意のサイズを指定出来ます。初期値は「-size 300」です。
- -sizeList [size list]
Optionのウィンドウサイズ指定に表示されるサイズ一覧を指定します。[size list] は300以上の任意のサイズをカンマ区切りで記述します。初期値は「-sizeList 300,450,600,800」です。
- -bgm [on, off]
音楽(BGM)のon/offを指定します。初期値は「-bgm on」です。
- -se [on, off]
効果音(SE)のon/offを指定します。初期値は「-se on」です。
- -cg [normal(n), highReso(h), off]
画像表示について指定します。normalは通常、highResoは高画質(高サイズ)です。初期値は「-cg n」です。
- -dungeon [wireFrame(w), graphic(g), graphicHighReso(h)]
ダンジョン表示について指定します。wireFrameは線画表示、graphicは画像表示、graphicHighResoは高画質画像表示です。初期値は「-dungeon w」です。
- -perspectiveView [on, off]
ダンジョン画像表示時の遠近表示効果のon/offを指定します。初期値は「-perspectiveView on」です。
- -alias [on, off]
アンチエイリアスのon/offを指定します。初期値は「-alias on」です。
- -textAlias [on, off]
文字のアンチエイリアスのon/offを指定します。初期値は「-textAlias off」です。
- -render [quality(q), speed(s)]
レンダリング設定です。画質優先か速度優先かの設定です。初期値は「-render s」です。
- -gamepad [on, off, none]
ゲームパッド操作のon/offを指定します。初期値は「-gamepad on」です。
none にするとゲームパッド情報の取得を行いません。ゲームパッドのドライバがインストールされていなかったり、Linuxで共有ライブラリ等が未設定の場合などにはゲームパッド情報の取得が出来ずにエラーが出るため、エラーが邪魔な場合には活用して下さい。
- -mouse [on, off]
マウス操作のon/offを指定します。初期値は「-mouse off」です。
- -mouseOnColor [on, off]
マウス操作時にクリック範囲にマウスを載せた際の色変更のon/offを指定します。初期値は「-mouseOnColor on」です。
- -mouseRuledLine [on, off]
マウス操作時のクリック範囲を示す罫線のon/offを指定します。初期値は「-mouseRuledLine off」です。
- -encoding [UTF8, SJIS, EUC_JP等]
Javardryで扱うテキストファイルの文字コードを指定します。文字コードは、UTF-8ならばUTF8、Shift_JISならばSJIS、EUC-JPならばEUC_JPといった文字列で指定しますが、詳しくは「サポートされているエンコーディング」を見て下さい。初期値は「-encoding UTF8」です。
- -errorText
この引数をつけると、エラー発生時のエラーメッセージがテキストファイル(error.txt, error.log)に出力されるようになります。出力先ディレクトリは下記引数で指定可能です。
- -dir [path]
ゲームデータ(gameData.dat)の場所(ディレクトリ)、及びゲーム中に作成されるファイル(設定ファイル、セーブデータ、転生データ、エラー記述ファイル)の保存場所(ディレクトリ)をまとめて指定します。絶対パス(C:\hoge\fuga、/home/hoge/fuga 等)でも相対パス(hoge\data、hoge/fuga 等)でもどちらでも指定可能です。未指定、または起動時に指定したディレクトリが存在しない場合には初期値になります。初期値は「-dir data」です。
個別に指定する場合は以下の引数を使用して下さい。
- -gameData [path]
ゲームデータ(gameData.dat)の場所を指定します。指定方法は -dir と同様です。未指定、または起動時に指定したディレクトリが存在しない場合には -dir での指定ディレクトリと同様になります。
- -config [path]
ゲーム中に作成される設定ファイル(config.ini)の保存場所を指定します。指定方法は -dir と同様です。未指定、または起動時に指定したディレクトリが存在しない場合には -dir での指定ディレクトリと同様になります。
- -save [path]
ゲーム中に作成されるセーブデータ(save.dat, save.bak 等)の保存場所を指定します。指定方法は -dir と同様です。未指定、または起動時に指定したディレクトリが存在しない場合には -dir での指定ディレクトリと同様になります。
- -character [path], -chr [path]
ゲーム中に作成される転生データ(拡張子が chr のファイル)の保存場所を指定します。指定方法は -dir と同様です。未指定、または起動時に指定したディレクトリが存在しない場合には -dir での指定ディレクトリと同様になります。
- -error [path]
ゲーム中に作成されるエラー記述ファイル(error.txt, error.log)の保存場所を指定します。指定方法は -dir と同様です。未指定、または起動時に指定したディレクトリが存在しない場合には -dir での指定ディレクトリと同様になります。
- -otherConfig [path]
その他設定ファイル(defaultMessage.txt, font.txt, keyConfig.txt, spell.txt)の場所を指定します。指定方法は -dir と同様ですが、未指定、または起動時に指定したディレクトリが存在しない場合には初期値になります。初期値は「-otherConfig data」です。
- -midiPlay [sequencer(s), ac, acNone]
MIDIファイルの再生方法を指定します。s にすると Sequencer で再生、ac にすると AudioClip で再生します。ac 指定時にはMIDIファイルを先読みさせているため、起動に時間がかかります。また、AudioClip再生時にはヒープ領域エラーが出る場合があるようです。先読みさせず、都度読み込ませるには acNone を指定して下さい。
未指定の場合には Sequencer で再生しています。
- -sePlay [clip(c), ac]
効果音(WAVEファイル)の再生方法を指定します。c にすると Clip で再生、ac にすると AudioClip で再生します。
未指定の場合、通常は Clip で再生していますが、OpenJDK で実行している場合にはフリーズしてしまう場合があるため、AudioClip で再生させています。
ゲーム実行中にウィンドウサイズ等を変更することが出来ます。
- Size [Adjust, 300*300, 450*450, 600*600, 800*800]
ウィンドウサイズを指定サイズに変更します。ここで指定出来るサイズの一覧は、起動時の引数(-sizeList)にて変更可能です。Adjustは、縦長・横長になったウィンドウを調整します。
- Render [Graphic: Normal, High-Reso]
背景画像、モンスター画像等の非表示、通常表示、高画質(高サイズ)表示を切り替えます。
- Render [Dungeon: Wire Frame, Graphic, Graphic High-Reso]
ダンジョン表示を、ワイヤフレーム表示、通常画像表示、高画質(高サイズ)画像表示から選択し切り替えます。
- Render [Dungeon graphic: Perspective view]
ダンジョン画像表示時の遠近表示効果のオンオフを切り替えます。
- Render [AntiAlias]
アンチエイリアスのon/offを切り替えます。
- Render [TextAntiAlias]
文字のアンチエイリアスのon/offを切り替えます。
- Render [Render: Quality, Speed]
レンダリング設定を、画質優先、速度優先から選択し切り替えます。
- Sound [Bgm]
音楽(BGM)のon/offを切り替えます。
- Sound [Se]
効果音(SE)のon/offを切り替えます。
- Operation [Key Config]
現在設定されているキー設定を表示します。確認用に表示するだけで、設定変更は出来ません。
- Operation [Gamepad]
ゲームパッド操作のon/offを切り替えます。
- Operation [Mouse]
マウス操作のon/offを切り替えます。
- Operation [Mouse: on color]
マウス操作時のクリック範囲にマウスを載せた際の色変更のon/offを切り替えます。
- Operation [Mouse: ruled line]
マウス操作時のクリック範囲を示す罫線のon/offを切り替えます。
- Key test
ここにチェックを入れると、キーボードの各キーやゲームパッドの各ボタンに対応する識別名を表示させることが出来ます。キー設定を行う際に活用して下さい。チェックを入れている間はゲーム操作は効きませんので、ゲームに戻る際にはチェックを外して下さい。
実行環境によって、フォントの違いから表示がズレてしまうことがあります。基本的にWindows環境に合わせてありますので、その他の場合は、dataディレクトリ内にある font.txt でフォントを指定して下さい。起動中には反映されませんので、font.txt を書き換えた場合はJavardryを再起動して下さい。
フォントは等幅(固定幅)フォントでないと表示が崩れます。論理フォント名(monospaced)か、物理フォント名(MS Gothic, MS Mincho, IPAGothic, IPAMincho, VL Gothic 等)で指定して下さい。Linuxの場合、Java側の設定の問題によりフォントの指定がうまくいかないことがあるようです。一応の対策として、font.txt と同ディレクトリに入れたTrueTypeフォント(拡張子がttfのファイル)を直接指定出来るようにしてあります。その場合には、Font = "ipag.ttf" などと、ファイル名を指定して下さい。
デフォルトの指定は Font = "monospaced" です。
font.txt の文字コードは UTF-8 にしておいて下さい。UTF-8以外にしたい場合は起動時の引数で文字コードを指定して下さい。
シナリオは dataディレクトリに入れられた gameData.dat を読み取って実行されます。このデータが古い(起動したJavardry本体に対応したエディタよりも古いバージョンのエディタで作成されたデータの)場合、読み込み時に整合性チェックが行われるため、通常よりも若干(シナリオデータのサイズや環境によってはかなり)読み込み時間が長くなります。古いデータの読み込みに成功した場合には、古いデータは gameData.bak にリネームされ、修正済みのシナリオデータを新しく gameData.dat として書き出します。二回目以降の起動時には整合性チェックがスキップされるため、通常通りの読み込み時間になります。通常からして読み込みが遅いのは仕様です。
シナリオデータに依存しないほとんどの文字(文章)は、内蔵のデータでは英語(風)の表記になっていますが、dataディレクトリ内に defaultMessage.txt があればそれを読み取り、その内容に応じた表記に変更されます。特にいじっていない状態ならば、最初から日本語の表示がされていると思いますが、それは日本語表記用の defaultMessage.txt が置かれているためです。defaultMessage.txt の変更は起動中には反映されませんので、defaultMessage.txt を書き換えた場合はJavardryを再起動して下さい。なお、defaultMessage_eng.txt は、内蔵の英語(風)表記と同じ内容のデータです。使用する場合は defaultMessage.txt と差し替えて下さい。defaultMessage.txt を削除するだけでも内蔵の英語(風)の表記にはなりますが、あくまでも英語っぽい、英語風の表示というだけなので、ガチで英語版にしたい人は、defaultMessage_eng.txt を自分なりに修正し、defaultMessage.txt と差し替えるのがよいかと思います。
面倒なので各設定項目の詳しい説明はしませんが、元データを見れば大体わかる……といいですね。defaultMessage.txt を書き換えても、種族名や職業名、アイテム、モンスターの名称などはシナリオデータに依存するので変更されません。ですので、プレイユーザではなく、シナリオデータの作成者が、自身のシナリオに合わせて雰囲気を変えた文章にするなり、全英語表記にするなりといった使い方が良いかと思われます。
defaultMessage.txt の文字コードは UTF-8 にしておいて下さい。UTF-8以外にしたい場合は起動時の引数で文字コードを指定して下さい。
いくつか特殊な項目がありますので、以下に説明します。
- 一部の項目(RIP、MARKS)は、"none" にしておくと対応するゲーム中の項目が非表示になります。
- _STATUS_COLOR を "on"(デフォルトでは "off")にすると、ステータス表示時に状態異常の冒険者は色付き文字で表示されます。色は状態異常ごとに _STATUS_COLOR_???? の項目で指定出来ます。16進数でRGB値を指定して下さい。
- _SELECT_COLOR で選択肢の選択色を指定出来ます。16進数でRGB値を指定して下さい。デフォルトは "FF0000" です。
- _FACE_GRAPHIC_STATUS を "off"(デフォルトでは "on")にすると、ステータス画面での顔画像表示を非表示に出来ます。
- _FACE_GRAPHIC_BATTLE を "off"(デフォルトでは "on")にすると、戦闘中のコマンド選択時の顔画像表示を非表示に出来ます。
呪文名はシナリオデータで設定されていますが、dataディレクトリ内にある spell.txt を書き換えることによりプレイユーザが任意の呪文名に変更することが出来ます。起動中には反映されませんので、spell.txt を書き換えた場合はJavardryを再起動して下さい。
指定方法は、呪文系統を0~3、呪文レベルを0~9、各呪文を0~5の数字で指定し、以下を参考にしてテキトーにやって下さい。呪文名の文字数は半角換算で24文字までです。
SPELL0_0_0 = "呪文名" (一つめの呪文系統の、1レベルの一つめの呪文)
SPELL1_6_3 = "呪文名" (二つめの呪文系統の、7レベルの四つめの呪文)
SPELL3_9_5 = "呪文名" (四つめの呪文系統の、10レベルの六つめの呪文)
spell.txt の文字コードは UTF-8 にしておいて下さい。UTF-8以外にしたい場合は起動時の引数で文字コードを指定して下さい。
- 画像
画像データはgraphicディレクトリ内にあり、適当に差し替えることが出来ます。使用出来る形式はBMP、GIF、JPEG、PNG、及びそれぞれをJavardryEditorで暗号化したもの(拡張子dat)です。動作を軽くするための苦肉の策として、通常画像(サイズの小さい画像)と、高画質(サイズの大きい画像)の二種類を用意するようにしてあります。高画質画像はファイル名の最後に「_HR」をつけて下さい。Option の cg で Normal を選ぶと通常画像(通常画像が無い場合には高画質画像)が、highReso を選ぶと高画質画像(高画質画像が無い場合には通常画像)が表示されます。画像ファイルなし、あるいは通常画像のみでも動作には支障ありません。
以下、それぞれに画像サイズの目安を書いていますが、表示時にはゲームウィンドウのサイズに合わせてリサイズ(拡大・縮小)されるため、無理に合わせる必要はありません(縦横の比率は合わせた方がいいです)。大きすぎる画像を表示させる場合に、マシンパワーが低いと動作がえらく重くなるために製作者の感覚で決めた目安に過ぎません。とにかく綺麗な画像を表示させたい(小さい画像を拡大表示とかさせたくない)場合には、目安など無視して大きいサイズの画像を用意して下さい。
- icon.gif
Javardryのウィンドウの左上(ゲームタイトルの横)に表示されるアイコン用の画像です。この画像に関しては形式はGIFのみ、サイズは16*16にして下さい。高画質画像は不要です。
- boxClose、boxOpen
戦闘後に宝箱を発見した際に表示される、閉じた状態と開いた状態の宝箱の画像です。画像サイズは通常で100*100、高画質は200*200くらいが目安です。
- restInPeace
全滅時に表示される画像です。画像サイズは通常で70*70、高画質は140*140くらいが目安です。
- [bg]
bgディレクトリ内にある画像は背景用の画像です。画像サイズは通常で220*210、高画質は440*420くらいが目安です。ただし、訓練場用の画像(trainingGround)はウィンドウ全体に表示されるため、通常300*300、高画質600*600くらいが目安となります。
- [dungeon]
dungeonディレクトリ内にある画像はダンジョン用の画像です。画像サイズは、床・天井は通常で200*200、高画質は400*400くらい、遠景は通常で220*210、高画質は440*420くらい、その他は通常で150*150、高画質は300*300くらいが目安です。
- 壁の側面
壁の側面も通常150*150、高画質300*300くらいが目安ですが、表示方法がやや特殊なので解説します。
壁の側面として指定された画像は、画像の左端を縦長に切り取って表示されます。切り取りの横幅は画像の横幅の 1/15 です。切り取り部分以外は使用しませんので、塗り潰しておいても問題ありません。最初から15*150の画像を用意するようにしろよ、という気もしますが、他のダンジョン画像の処理との兼ね合いでこんな仕様にしてます。特に反省はしていない。
壁の側面が未指定(空欄)の場合には切り取りではなく、壁として指定された画像が横に 1/15 に縮小されて表示されます。元々壁として用意された画像のために切り取り位置を決められず、ヘタに切り取るよりも縮小表示させた方がなんぼかマシな(気がする)ので、切り取りではなく縮小して表示させています。
- 梯子
梯子画像も通常150*150、高画質300*300くらいでよいのですが、壁画像などに比べると表示部が小さくなっているために粗さが目立つ……かもしれません。気になる場合は通常300*300、高画質600*600くらいにしておくとよいかと思われます。
この画像は、階段画像(上り下り用の穴の画像)に重ねて表示させますので、透過画像にして下さい。用意するのは下り用の梯子のみで、上り用はこの画像を180度回転して表示させています。
- [face]
faceディレクトリ内には、必要ならば冒険者用の顔画像を置いて下さい。ステータス画面と戦闘中のコマンド選択時に、冒険者名と同じ名前の画像ファイルが表示されます。例えばJPEG画像を用意する場合(もちろんGIFやPNGでも構いません)、Fighter という名前の冒険者ならばファイル名は Fighter.jpg(高画質用は Fighter_HR.jpg)、戦士 という名前ならば 戦士.jpg(高画質用は 戦士_HR.jpg)が表示されます。冒険者の名前を変更した場合には、画像ファイル名は手作業で変更する必要があります。
画像サイズは通常で60*60、高画質は120*120くらいが目安です。
- [monster]
monsterディレクトリ内にある画像はモンスター用の画像です。画像サイズは通常で150*150、高画質は300*300くらいが目安ですが、数枚程度ならばともかく、大量のモンスター画像を通常・高画質用と二種類用意するのは面倒ですので、150*150~300*300くらいの画像を通常用として用意しておけば十分かと思います。
- 音楽(BGM)
音楽用ファイルはmusicディレクトリ内に置きます。形式はMIDIとMP3、及びそれぞれをJavardryEditorで暗号化したもの(拡張子midDat, mp3Dat)に対応しています。
- 効果音(SE)
効果音用ファイルはsoundディレクトリ内に置きます。形式はWAVEとMP3、及びそれぞれをJavardryEditorで暗号化したもの(拡張子wavDat, mp3Dat)に対応しています。ただし、CPUやメモリ等の実行環境にもよりますが、MP3の再生は重くなるため、連続して鳴らすような効果音はWAVEにしておいた方が良いかもしれません。
LinuxでOpenJDKを使用している場合、再生時間が1秒未満のWAVEファイル効果音を鳴らすと音が止まるか、あるいはフリーズしてしまうようです。デフォルトの効果音は1秒以上に修正していますが、自分で用意する場合には無音時間を追加するなどして再生時間を1秒以上にして下さい。
Linuxで(OpenJDKの場合のみ?)MP3ファイル効果音を鳴らし続けるとフリーズしてしまいます。今のところ修正の目処が立っていませんので、Linuxでプレイをする際には効果音をWAVEファイルにして下さい。
プレイデータは、プレイ中に自動セーブされます。自動セーブのタイミングは以下の通りです。ダンジョン内(キャンプ、階移動、戦闘終了、全滅、冒険の中断時)のセーブに関しては、シナリオの設定によりオフになっている場合があります。
- 城下町の各施設から出たとき
- ダンジョンから出たとき(地上に戻ったとき)
- キャンプを開いたとき、閉じたとき
- 階を移動したとき(他のダンジョンにテレポートしたときも同様)
- 戦闘を終了して移動画面に戻ったとき
- 全滅したとき
- 冒険を中断したとき
セーブデータはdataディレクトリ内に save.dat という名前で保存されます。各シナリオデータには、シナリオの識別用文字列を設定するようになっており、セーブデータにも反映されます。そのため、セーブデータは識別用文字列が一致するシナリオ以外では読み込めません。
なお、セーブデータは10分ごとに save.bak、シナリオの識別用文字列が一致しなかった場合は save0.bak、その他セーブデータの読み込みに失敗した場合は save1.bak というバックアップファイルが作成されますので、必要に応じて save.dat と差し替えて下さい。