Aokashi Room

作った作品の紹介やレビュー、トラブルシューティングとか色々

WWAゲーム 依頼生活3章を公開!

f:id:aokashi:20200220230610p:plain
3章で出てくるニフア岬の様子

大変おまたせしました。WWAゲーム 依頼生活3章を Aokashi Home に公開しました。

下記URLからどうぞ。ただ、3章は2章の続編になりますので、もし1章と2章をプレイしていないのであれば、それらを先にプレイすることをおすすめします。プレイ時間は遊び方にもよりますが、1章だと30分程度、2章だと1時間程度の見込です。

なお、3章には BGM が鳴ります ので音量にご注意ください。

完成したのがつい最近で、それまでは結構急いで制作していました。バグが残っていたり、マップが粗かったりしているかもしれません。

依頼生活 3章のために作ったもの

2進数加算減算システム

前述しましたが、依頼生活 3章のラストバトルはコマンドバトルです。

aokashi.hatenablog.jp

まずコマンドバトルとは、一般的なRPGゲームのように、相手に対して「攻撃」「防御」「魔法」「必殺技」といったコマンドをプレイヤーが選択できるバトル方式です。

WWAでは普通にモンスターパーツを作成してそのモンスターパーツに触れると、自分と相手をお互い通常攻撃し合うだけなので、コマンドバトルがあることで迫力のエフェクトをプレイヤーに見てもらうことができます。

ただ・・・実装もプレイも面倒なので、WWAのプレイヤーの中では早く終わらせてくれという意見もあります。そういった面も踏まえて、今作ではラストバトルだけにしました。

コマンドバトルで課題になってくるのが、相手の体力をどうやって管理するかです。WWAは値を足したり引いたりできる変数が4つ(生命力, 攻撃力, 防御力, 所持金) しかありません。そのため、従来では防御力の値を借りて「与えたダメージ」として扱っていました。

しかしながら、今作は4つとも使われているので、この方法は利用できません。

そこで、相手の体力を背景パーツで管理する方法になりました。物体パーツとしなかったのは、処理中のところでプレイヤーの画像が動いていて、処理の様子が見えてしまうためです。

最初は擬似的にゲージを再現するシステムを考えていましたが、体力が大きいと画面内に収まらない問題が発生していました。

次に考えたのが、体力1単位ごとに背景パーツを作成して、 $parts マクロでカウントアップ、カウントダウンを行う方法でした。ただし、体力が大きいとカウントアップ、カウントダウンの処理が大変長くなり、1パーツ辺りの文字数上限を軽く超えてしまいます。

・・・
$parts=123,122,1
$parts=124,123,1
$parts=125,124,1
$parts=126,125,1
$parts=127,126,1
$parts=128,127,1
$parts=129,128,1
$parts=130,129,1
$parts=131,130,1
$parts=132,131,1

そこでふと思いついたのが、2進数による加算減算システムでした。

f:id:aokashi:20200220223242p:plain
コマンドバトルで被せている物体パーツを外すとこんな感じ

これは各桁ごとに上方向へ進む主線となるジャンプゲートを作成し、加算減算がある場合だけ横方向にプレイヤーが弾いて支線へ向かう方式になります。

なお、加算(相手の回復) と減算(相手への攻撃) で処理する内容は全く違うため、普段は減算モードにして、相手が回復する場合だけ $parts マクロで加算モードに移行させています。

減算する場合は、減算専用のジャンプゲートを主線の上に配置して、その横で値を引いたり、繰り下げ処理をしたりします。繰り下げ処理は上の桁の支線にある背景パーツを $parts マクロで置き換えます。処理が終わると主線に戻り、引き続き上方向へ進みます。

一番上の桁で繰り下げ処理が発生した場合になると、マイナスになる、ということで相手を撃破したことになります。

ここで難しかったのが、背景パーツを各桁ごとに用意することです。上の桁のパーツで0が存在したら、そのパーツを1に差し替え・・・といった条件付き処理が必要になりますが、そういった処理は $parts マクロしかできません。指定位置にパーツを出現をしてしまうと、条件関わらずパーツが置き換えられます。最初は $parts マクロがなくても大丈夫じゃないかと思っていましたが、 0110 といった1が連続する値で加算すると、正しく加算出来ないバグが発生してしまいました。

テキストだけで説明しても難しいので、もし要望があれば2進数加算減算システム解説マップを制作してダウンロードできるようにするつもりです。

スタッフクレジット

これはゲームをクリアしてから確かめて欲しいんですが、自分が制作した作品の中で初めてスタッフクレジットを用意しています。

スタッフクレジットは「開発ツール」「画像提供」「音楽提供」「効果音提供」「その他提供」「制作」といったセクションを用意し、セクションごとに文字を描画した背景パーツを用意しています。ですので、提供したユーザー名を描画した文字から2マス~5マス分背景パーツを作成して、それをマップに貼り付けて・・・の作業です。大変でした。

前は WWA Wing PE という、文字やアイコンなどを画面上に描画できる WWA Wing の拡張マクロ文を用意していましたが、開発に組み立てた構造が今の WWA Wing には無理があったそうで、しばらく開発を見合わせています。

既知の不具合

f:id:aokashi:20200220222005p:plain
こんな感じでMPのまま残ります

最終バトルのところで、最終バトル前のシーンで Quick Load を行うと、ステータスの画像が MP のままだったり、戦闘時のアイコンが表示されなかったりしています。

これは不具合よりかは、 WWA Wing の仕様によるものです。これについては、Java版原作から存在する不具合になります。ただ、修正される予定ではあるので、 WWA Wing の修正が反映されたら順次このWWA作品にも適用しようと思います。

それまでは、一度 Restart Game でゲームをやり直して、そこで Quick Load を行うと良いのかなと思います。

また、最終バトルでは、プレイヤー側が2重で描画されるバグが発生しているようです。現在原因を調査中ですが、どこかの後始末処理に不備があるかもしれません。

今後の展望

WWAゲーム作ってて思うんですけど、パーツの出現処理を書くためにパーツを探したりするのが非常に面倒なので、なるべくその手間を省きたいと思います。ただ、新作成ツールを開発してそれで作るのが (精神的に)楽なので、新作成ツールの開発をぼちぼち進めています。

また、謎追いの Aokashi Home、 PLiCy 公開に合わせて、調整を進めます。