Aokashi Room

なんでも書き続けるAokashiの部屋

WWA Wing v3.4.1 をリリースしました

WWA Wing Team の Aokashi です。

WWA Wing v3.4.1 をリリースしました。このリリースは前回の WWA Wing v3.3.0 のリリースと同様に、 PLiCy が開発した WWA Wing の独自機能を取り入れた形のリリースとなります。

aokashi.hatenablog.jp

元々は v3.4.0 のつもりでしたが、マニュアルに不備があったため、 v3.4.1 に修正してのリリースとなります。

変更内容

  • 新機能追加
    • 方向変更機能の追加
    • data-wwa-looking-around オプションの追加
    • wwaload.js の統合
  • 機能変更
    • ヘルプ画面にプレイ時間を追加
    • 一部画像設定がセーブデータに反映
  • 修正

方向変更機能

方向変更機能とは、プレイヤーの向きだけを変える機能です。

  • キーボード: Esc キーか N キー、 Shift キーを押しながら方向を押す
  • ゲームパッド: 0 番 (Nintendo Switch では B ボタン、XBox One では A ボタンに相当) を押しながら方向ボタンやアナログスティックを操作
  • タッチスクリーン: ゲームプレイ画面の外側を押しながら、プレイヤーの場所基準で向きたい方向を押す

マウス操作には対応していません。今後マウスでも同様の操作方法がないか模索していきます。

プレイヤーの向きだけ変えることで、 $dirmap マクロが多少扱いやすくなるのかなと思います。極端な例になりますが、下図のように周りが穴に囲まれている中、向こうに床を敷きたい場合、方向変更機能が役立ちます。

f:id:aokashi:20200514232105g:plain

data-wwa-looking-around オプション

HTML ファイルに data-wwa-looking-around を付与することで、ゲーム開始時またはジャンプゲートによる移動時で発生するプレイヤーの回転演出の有効あるいは無効の設定を追加しました。

この回転演出は、ゲーム開始時やジャンプゲートによる移動時に プレイヤーの位置をはっきりさせる目的 で導入しましたが、劇イベントの都合でプレイヤーの回転演出が邪魔になる場合もありました。

<div id="wwa-wrapper" class="wwa-size-box"
  data-wwa-mapdata="caves01.dat"
  data-wwa-urlgate-enable="true"
  data-wwa-title-img="cover.gif"
  data-wwa-looking-around="true"> <!-- これ -->
</div>
  • true とすることで、従来どおりプレイヤーの回転演出を有効に設定します
    • 指定がない場合はこの設定が適用されます
  • false とすることで、プレイヤーの回転演出を無効に設定します

マクロ文ではないので、間違えて $looking_around=1 をメッセージに加えないように気を付けましょう。

wwaload.js の統合

これまで WWA Wing では WWA ゲームの設置に wwa.js と併せて wwaload.js のアップロードをお願いしていましたが、これが不要になり、 wwa.js だけで良いようになりました。

これから WWA ゲームをホームページにアップロードする際は wwaload.js が忘れて起動できないといったことがなくなります。

<div id="wwa-wrapper" class="wwa-size-box"
  data-wwa-mapdata="caves01.dat"
  data-wwa-urlgate-enable="true"
  data-wwa-title-img="cover.gif">
</div>

また、 wwaload.js の統合に併せて HTML ファイルに加える data-wwa-loader 属性が削除されます。 WWA Wing 3.2.x 以前からのアップデートの場合はこの data-wwa-loader 属性は削除しなくても問題はありませんが、気になる方は削除しておきましょう。

wwaload.js (WWA Loader) は WWA のゲームファイル (*.dat) を読み込んで WWA Wing 内部で扱いやすいデータ形式に変換するプログラムでした。

別ファイルにしていたのは下記の理由があったのですが、技術的に解決可能だと分かったので統合することができました。

  • 時間のかかる処理を効率よく行うために Web Worker を使用していたが、 Web Worker を使用するには外部ファイルへの独立が必要だった
    • WWA Wing 3.4.1 からは Web Worker を使用しない形で実現しました
  • WWA のゲームファイルを読み出す各種ツールの開発をしやすくするため

画像設定のセーブデータ反映

f:id:aokashi:20200514232153g:plain

$imgframe$imgbom で設定したイメージ座標が Quick Save で記録されるようになりました。つまり、 $imgframe$imgbom でイメージを変更した場合でも、 Quick Load や Restart Game で戻るようになりました。

  • $imgframe はプレイ画面のフレーム部分や操作パネルのボタン、アイテムボックスのイメージを変更するマクロ文です
  • $imgbom はモンスターとの戦闘時に重なる攻撃アイコンを変更するマクロ文です
  • これらのマクロ文の解説は Standard Map にも含まれていますのでぜひご確認ください

WWA Wing の移植の頃は Quick Save で記録されないようにしていましたが、これは Java 版の仕様に合わせるためでした。しかしながら、 WWA Wing 3.2.0 のリリースで Java 版の互換性を持つ必要がなくなったことや利便性の観点から仕様変更することになりました。

今後のリリースについて

今後は下記のリリースが含まる予定です。

  • セーブデータを永続化
  • オートセーブ機能の追加
  • マップデータの内容が改変されても過去のパスワードセーブが利用できるように改良

上記のリリースを終えた後では、前回お伝えした仮想パッドの導入や入力関係のリファクタリングの他、 WWA ゲームの制作ツール開発に便利な API の提供 (WWA Loader の改良や WWA Saver の開発) に向けた準備を行う予定です。

また、 WWA Wing のアップデートの幅を増やすために新しい作成ツールの開発も進めています。

まとめ

WWA Wing v3.4.1 では方向変更機能や wwaload.js の統合などが含まれました。

このリリースで、 WWA ゲームの開発や設置が少しでも楽しくなれたら幸いです。

ついでに補足なんですが・・・そろそろ WWA Wing 専用のブログ作りたくない?