アクエディ4のHP表示は画面上部で棒グラフのようになっていますが、
ゲームによっては画面にハートマークがあり、攻撃を受けるたびに減っていく・・・
というタイプのものもあります。
今回は、ピクチャー表示機能を使ってそんなHP表示をつくってみましょう。

まず、HPの画像を用意します。
大きさなどは自由ですが、今回は32☓32のサイズのものを用意します。
この画像はbmp形式なのでダウンロードして実際に使っていただいてかまいません。
用意した画像をbmpフォルダの中にあるpictureフォルダに入れます。

次に、エディターをひらいてピクチャーの登録をします。
まず、データベースウィンドウのピクチャータブを開き、登録画面を出します。
次に「新規」ボタンをクリックして空白のピクチャーをつくり、そこに画像を指定します。
名称は分かりやすく「ハートマーク」に、
「参照」ボタンをクリックして「kokoro.bmp」(用意した画像の名前)をひらいて登録します。

これでピクチャーの登録は終わりです。
これができたら、追加キャラクターにピクチャーを表示させるフローをつくります。
キャラパレットのプレイヤーキャラ(ヤシーユ)を開き、以下のようなフローを追加します。
条件を「キャラのHPが1以上」にし、コマンドに「ピクチャーの表示」を挿入します。


ピクチャーの表示はこんな感じ。
ピクチャーはさっき用意した「ハートマーク」に
表示位置は「画面座標」に
画面座標はXもYも1にします。これは「左上から1マス右、1マス下の位置にする」という意味です。
表示時間「時間で指定」でかつ「瞬間表示」にチェックを入れます。
こうすることで、実行条件に合わなくなった(HPが1以上ではなくなった)時に瞬時にピクチャーが消えるようになります。
「一時停止」のチェックは外しておきましょう。ピクチャーが表示されているあいだ操作が効かなくなってしまうと
HPは常に表示されているピクチャーなので、常に操作が効かなくなってしまうことになってしまいます。
また、画面がスクロールするステージにする場合は「画面に追従する」にチェックを入れておいてください。
(画面がスクロールしないステージで使用すると、ガタガタが無くなるので、ガタガタが苦手な方はチェック推奨)

これで、「HPが1以上の時にピクチャーを1個表示する」というフローが完成しました。
同じように「HPが2以上の時にピクチャーを1個表示する」というフローもつくります。
『HPが2以上の時は2個ピクチャーが必要ではないか』と思うかもしれませんが、
1個目のピクチャーはHPが1以上の時に表示するピクチャーで間に合うので必要ありません。

つくったフローをコピーして新しくつくります。

条件を「HPが2以上」に変えて、ピクチャーの設定も少し変えます。
同じ場所に何枚もピクチャーを表示しても重なって一つに見えてしまいます。
そこで、座標Xを2に変えます。これで、「画面の左上から2マス右に、1マス下に表示」という意味になります。

これで「HPが2以上の時にピクチャーを1個表示する」というフローも完成しました。
あとは、同じようなことを繰り返せばHPはどこまでも増やせます。

例としてHPを主人公の最大値である4まで表示できるようにしました。

この技は手軽に実装できますが、フローの数が多くなってしまうので、100などの大きいHPを扱うには不向きです。
多くても10までにしておきましょう。






  • HPバーを作成してHPと同期する

アクエディ4のHP表示は画面上部で棒グラフのようになっていますが、
見た目がちょっと自分のゲームとそぐわない、もしくは自分のUIをつくったので
そちらで棒型のHP表示をしたい、という方も多いのではないでしょうか。
今回は、ピクチャー表示機能を使ってそんなHP表示をつくってみましょう。

まず、HPバーの画像を用意します。


大きさなどは自由ですが、規格上横幅が4の倍数のものである必要と、
できればできるだけ割るのに便利な数であると望ましいです。
今回は100×15のサイズのものを用意します。
この画像はbmp形式なのでダウンロードして実際に使っていただいてかまいません。
用意した画像をbmpフォルダの中にあるpictureフォルダに入れます。


まず、HPバーを入れる枠の画像を用意します。


これはさっきの枠が収納できるようであれば横幅が4の倍数なら何でもいいです。
今回は130×23のサイズのものを用意します。
この画像はbmp形式なのでダウンロードして実際に使っていただいてかまいません。


次に、エディターをひらいて2つのピクチャーの登録をします。
この辺は上の項目を参照してください。



これができたら、追加キャラクターにピクチャーを表示させるフローをつくります。
キャラパレットのプレイヤーキャラ(ヤシーユ)を開き、以下のようなフローを追加します。

ピクチャーの表示後そのフローを削除するコマンドを入れるのを忘れずに。


HPフレームの表示位置は 「画面座標」に画面座標はXを0,yを0にします。ピクチャ番号は指定しなくてもいいです。

HPバーの表示位置は   「画面座標」に画面座標はXを0,yを4にします。ピクチャ番号は0に。

表示時間「ステージ終了まで」にチェックを入れます。
こうすることで、実行条件に合わなくなった(HPが1以上ではなくなった)時に瞬時にピクチャーが消えるようになります。
「一時停止」のチェックは外しておきましょう。ピクチャーが表示されているあいだ操作が効かなくなってしまうと
HPは常に表示されているピクチャーなので、常に操作が効かなくなってしまうことになってしまいます。
また、画面がスクロールするステージにする場合は「画面に追従する」にチェックを入れておいてください。
(画面がスクロールしないステージで使用すると、ガタガタが無くなるので、ガタガタが苦手な方はチェック推奨)


ついでに、ステータスバーはもう要らなくなるのでステージの設定からチェックを外しておきましょう。
これで最初の分は完成です。




とりあえず表示されましたね。
次はダメージを受けたときのHPをずらす処理です。




自分(主人公)のHPを、コモン変数3(全体であっていれば変数番号は何でもいいです)に代入します。
この変数は「主人公HPずれ」と名付けておきましょう。

次に コモン変数3を100倍します。
そしてコモン変数3を次分の最大HPで割ります。
そしてコモン変数3から100引きます。
これは最大HPとのズレを100分率で表したものです。

この一連の流れはコードの実行を使うと簡単に代用できます。 が、今回は省略。

そしてアレンジします。
アレンジの対象をピクチャー、Xのズレをコモン変数3に。
そして先程のフローで使ったHPバーの文を貼り付けます。完成。

これを死亡したときにもつけましょう。


回復したときも、以下のようなフローを使って発動できます。回復するときに変数2を1にして、


一連の処理が成功したらダメージを受けたときなどに
ちゃんとHPがずれるようになってくれます。
だいたいこんな感じです。応用すれば敵にもHP表示させることができます。




更に応用すればこんな
ステータスを作ったり

こんな

ステータスを作ったりも。夢が膨らみますね!