アクツクMV初心者講座ミニ 超簡単 ライフバー(ライフゲージ)の作り方
今回はお手軽にライフバーを作る方法をご紹介します。
一見難しそうですが、シンプルなものであれば簡単に作れます。
ライフバーは、実行アクションの変数を変更で、オブジェクトのスケールX(%)、もしくはスケールY(%)の値を変更することで実現できます。
スケールX(Y)(%)は、設定した数字だけオブジェクトのX(Y)軸方向のサイズを変更できます。そのため、変数を使って、現在の体力が最大体力の何パーセントかを計算して、長方形のイラストのスケールX(Y)を変更すれば、上の動画のような体力ゲージを表現できます。
[計算式]
スケールX(Y)=[現在の体力]/[最大体力]×100
[画像] ※今回はスケールX用の画像です。
今回はプレイヤーの体力について、スケールXを変更する方法を説明していきます。
体力変数の対象オブジェクトを変更すれば任意の敵のライフバーを作ることができます。
※v0.8.3時点で、オブジェクトの変数を変更すると指定したオブジェクトとは別の変数が変わったり、テストプレーで落ちる現象がありました。おかしいと思ったら共通変数を使ってみるか、修正されるのを待ちましょう。
[アニメーション]
※注意 ライフバーは画像のようにライフバーの端をX(Y)座標0の位置にする必要があります。
※スケールXの場合、右端を0にすると左から右に、左側を0にすると右から左にゲージが減少します。
※スケールYの場合、下端を0にすると上から下に、上端を0にすると下から上にゲージが減少します。
[オブジェクトの作成]
次のようなオブジェクトを作成していきます。
まずは新規でオブジェクトを作成します。
ここで、スケールXを計算するための変数を2つ用意します。
変数は何を使っても問題ありませんが、今回はプレイヤーオブジェクトに1つ、ライフバーオブジェクトに1つ作ります。
[現在の体力比較用の変数]
オブジェクトの変数は[アクションプログラム][基本設定]と並んでいる[変数管理]タブから追加することができます。まずは体力を表示したいオブジェクトを選択して、変数を追加します。※ここでは現在の体力(判定用)とします。
[ライフバー計算用の変数]
同様に、スケールX(%)を計算するための変数を用意します。※ここではスケール計算用とします。
[アクションの追加]
次に、ライフバーを作っていきます。
まずは、ライフの変化を判定するアクションを追加します。
①割り当てるモーションに作成したライフバーのモーションを追加します。
②重力に影響を受けないを選択します。
※リンクで判定するので、特に実行アクションは設定しません。
次に、スケールを計算するアクションを追加します。
ここで、最初に紹介した計算式をその他の実行アクションで実現させます。
スケールX(Y)=[現在の体力]/[最大体力]×100
①割り当てるモーションに作成したライフバーのモーションを追加します。
②重力に影響を受けないを選択します。
③~⑦で計算式を順番に登録します。
③[プレイヤー変数:現在の体力(判定用)]=[プレイヤー変数:体力]を設定します。
※[ライフ判定]に戻った時のために、先ほど作成した変数とプレイヤーの現在の体力を一緒にしてます。
④[ライフバー変数:スケール計算用]=[プレイヤー変数:体力]を設定します。
※体力/最大体力を計算するための準備として、スケール計算用の数字を体力と一緒にします。
⑤[ライフバー変数:スケール計算用]/=[プレイヤー変数:最大体力]を設定します。
※体力/最大体力を計算しています。
⑥[ライフバー変数:スケール計算用]*=100を設定します。
※スケールX(%)の単位は%です。そのため、体力/最大体力に100をかけて単位を揃えます。
⑦[ライフバー変数:スケールX(%)]=[ライフバー変数:スケール計算用]を設定します。
※最後に、スケールXを体力/最大体力×100の計算値に変更します。
※ここをスケールY(%)に変更すると、縦に変化するライフゲージになります。
[リンクの追加]
[ライフ判定]→[スケール変更]
[プレイヤー変数:体力]≠[プレイヤー変数:現在のライフ(判定用)]を設定します。
※ダメージを受けた、回復したなど、体力に変化があった場合に遷移するようにします。
[スケール変更]→[ライフ判定]
無条件で切り替えを選択します。
これでライフバーは完成です。
[枠を作ろう]
こんな感じでライフバーに枠を用意するとよりライフバーっぽくなります。
メニューに枠を付けるとこんな感じです。
枠を工夫すればこのような体力ゲージも作れます。
今回はここまでです。
分からないところ、おかしいところがあればコメントにお願いします。
尚、上でも少し触れましたが、私は体力バーの代わりにゴール用のアリヅカが細くなることがありました。(オブジェクトをフォルダに移動させたことが原因かもしれません。)