アクツクMV初心者講座 メニュー活用編 武器セレクト
今回は、前回の弾の撃ち方編からの続きです。
メニューを使って弾を選択できるようにする方法を説明していきます。
弾を1つだけしか使わないゲームを作る場合は不要ですが、2つ以上を選択するタイプのゲームを作りたい人は参考にしてください。
今回紹介するのは、LRボタンを押すと弾を選択でき、攻撃ボタンを押すと選択した弾を発射する方法です。
最初に簡単に説明すると、メニュー画面にLRボタンが押されたときにイラストが切り替わるオブジェクトを配置します。
弾の種類ごとに変数で番号を割り振り、その番号の時に攻撃方法が変わるようにプレイヤー側のオブジェクトを変更します。
武器セレクトに関しては、最初から全部使えるか、途中から使える武器が増えるかによって難易度が変わってきますので、順番に説明していきます。
1.最初から全ての武器が使える場合
最初から全ての武器を使える場合、このようにアクションを配置するだけで作ることができます。実行するアクションに変数=x(弾なら0、雲なら1、リンゴなら2)とするアクションを作成し、R,Lが押されたときのリンクを繋ぐだけでセレクト用のアイコンとなります。
後は攻撃時に変数=xならその弾を発射するようにすれば完成です。
慣れてきた人ならこの説明だけで作れると思いますが、順番に説明していきます。
1.1武器セレクト用のアイコンを作る
メニューに貼り付けるアイコンを作成していきます。
ここでは、サンプルとして、弾、雲、リンゴの画像を使用します。
[アニメーションの作成]
メニューに貼り付けるアイコンなので、壁判定や当たり判定は不要ですので削除しておきましょう。あと、画像の位置だけは合わせましょう。
※アニメーションを追加しても大丈夫です。
[変数の作成]
オブジェクトを作る前に、武器セレクト用の変数を用意します。この変数は、武器セレクト用オブジェクトと、[待機][歩き][ジャンプ]→[攻撃]のリンクの条件に使います。
※v0.8.4現在、個別の変数だと動作が不安定になる場合があったので、共通変数を使ってます。
[素材]-[変数]から新規に変数を追加します。初期値は0にします。
[オブジェクトの作成]
先ほど作った変数と弾を割り当てていきます。今回は弾を変数0、雲を変数1、リンゴを変数2とします。4種類以上作りたい場合も同様に、変数を割り当てていきます。
では、新規オブジェクトを追加していきます。今回はメニュー用なので、余計なチェックは外しております。
まずは通常の弾から作成してきます。
①重力の影響を受けないにチェックを入れます。
②その他の実行アクションから、「スイッチ・変数を変更」にチェックを入れ、共通変数:武器セレクト=0.00を設定します。
※色分けはプレイヤーアクションを追加するときに分かりやすくするために行っております。他に意味はありません。
これで、弾が表示されているときは武器セレクト変数が0になります。
同様にアイコンを追加していきます。
①重力の影響を受けないにチェックを入れます。
②その他の実行アクションから、「スイッチ・変数を変更」にチェックを入れ、共通変数:武器セレクト=1.00を設定します。
①重力の影響を受けないにチェックを入れます。
②その他の実行アクションから、「スイッチ・変数を変更」にチェックを入れ、共通変数:武器セレクト=2.00を設定します。
これでアクションの配置は完了です。
[リンクの作成]
次に、Rを押されたら弾(0)→雲(1)→リンゴ(2)→弾(0)となるようにリンクをつなぎます。
[弾(0)]→[雲(1)]
[弾(1)]→[雲(2)]
[弾(2)]→[雲(3)]
以下の入力操作がされたにチェックを入れ、R1が押された瞬間を設定します。
3つとも同じ設定なので、コピーすると楽です。
同様に、Lを押されたら弾(0)→リンゴ(2)→雲(1)→弾(0)となるようにリンクをつなぎます。
[弾(0)]→[雲(1)]
[弾(1)]→[雲(2)]
[弾(2)]→[雲(3)]
以下の入力操作がされたにチェックを入れ、L1が押された瞬間を設定します。
3つとも同じ設定なので、コピーすると楽です。
menu sceneに配置して動作を確認しましょう。
[F5]キーを押してテストプレイすると、こんな感じで動かせると思います。
1.2攻撃アクションを追加する
攻撃アクションは[攻撃(判定)]で変数を確認し、数字が一致した場合に該当する弾アクションに遷移させるように作ります。
こちらは前回の講座で追加した攻撃アクションです。これをベースに変更していきます。
※攻撃を作っていない方は②③のみを行ってください。
①[攻撃]→[待機]のリンクを削除します。
②攻撃アクションの名前を攻撃(判定)に変更します。
③割り当てるモーションを選択で「遷移前のモーションを引き継ぐ」にチェックを入れます。
④その他の実行するアクションの[-]ボタンを押し、条件を削除します。
攻撃アクションを追加する前に、画面が見にくくなるので[攻撃(判定)]と[待機]のショートカットを作っておきます。※この作業はやる必要ありません。
弾を発射するアクションを追加します。
①割り当てるモーションから攻撃のモーションを選択します。
②その他の実行アクションから弾の発射を選択します。
同じように、弾を発射するアクションを作成していきます。
※ここでは作った弾をコピーしてイラストだけ変えたものなどを用意してください。
こんな感じで雲、リンゴと追加しました。
[リンクを作成]
リンクの条件は武器セレクト変数が一致している場合です。変数が0なら弾、1なら雲、2ならリンゴに遷移するように設定します。
[攻撃(判定)]→[弾(0)]
その他の条件設定で共通変数:武器セレクトの変数=0を選択します。
[攻撃(判定)]→[雲(1)]
同様に共通変数:武器セレクトの変数=1を選択します。
[攻撃(判定)]→[リンゴ(2)]
同様に共通変数:武器セレクトの変数=2を選択します。
[弾(0)][雲(1)][リンゴ(2)]→[待機]
モーションのアニメーションが最後まで実行されたらを選択します。
これで完成です。
シーンに配置して動きを試してみましょう。
2.途中から使える武器が追加される場合
アイテムを取る、ボスを倒すなど、特定の条件を満たしたときに武器を追加するようなゲームを作りたい時はこちらの方法を参考にしてください。
攻撃方法を追加する方法については、[攻撃(判定)]から各弾へのリンク条件に、その武器のスイッチがONの場合をANDで追加すればスイッチがOFFの時は使えなくできます。
ただ、メニュー用の アイコンについては、1.1で紹介したやり方だと、武器の種類が増えるほど複雑になってきます。
ここでは、やり方を変えて、変数計算を利用して何種類武器を追加しても同じ処理で対応できる方法を説明します。
2.1メニュー用アイコンの作り方(枠編)
今回は、LRボタンを押された瞬間に変数を増減させ、その変数と一致したアイコンを表示させる方法を紹介します。こちらの方が、スイッチによる武器の追加が作りやすいです。
具体的には、Rを押されたら武器変数を+1、Lを押されたら武器変数を-1とし、変数が-1となったら変数の最大数(ここでは2)、変数が最大数+1(ここでは3)となったら変数=0となるようなオブジェクトを作ります。
せっかくなので、LRを押したら矢印が反応する枠と合わせてこの計算する機能を作ります。こちらが枠のサンプルになります。
アニメーションの作成
枠用に新規アニメーションを作成します。ボタンを押したら矢印の色が分かる程度にフレームを調整します。メニュー用なので当たり判定や壁判定は不要です。
オブジェクトの作成
新規でオブジェクトを作成します。今回も不要なチェックは外しております。
まずは通常時の枠を作成します。
重力の影響を受けないにチェックを受けます。
次に、Lボタンが押されたら変数を-1、Rボタンが押されたら+1となるようにアクションを作成します。
[Lボタンが押された場合]
①割り当てるモーションに左側の矢印が押されたアニメーションに設定します。
②重力の影響を受けないにチェックを入れます。
③その他の実行アクションから、共通変数:武器セレクトー=1.00となるように設定します。
※-=は変数から設定した数字を引くという意味です。今回は変数-1となります。
[Rボタンが押された場合]
①割り当てるモーションに右側の矢印が押されたアニメーションに設定します。
②重力の影響を受けないにチェックを入れます。
③その他の実行アクションから、共通変数:武器セレクト+=1.00となるように設定します。
※+=は変数から設定した数字を足すという意味です。今回は変数+1となります。
今回は武器を3種類つくりますので、変数は0、1、2の3つしか使いません。
0のときLを一回押される、もしくは2のときRを一回押されると武器を選択できなくなってしまいます。そこで、変数が-1のとき変数を2に、変数が3のとき変数を0にするアクションが必要となります。
[変数が-1の場合]
①割り当てるモーションで遷移前のモーションを引き継ぐにチェックを入れます。
②重力の影響を受けないにチェックを入れます。
③その他の実行アクションから、共通変数:武器セレクト=2.00となるように設定します。
※武器が4種類の場合は=3、5種類なら=4といったように、ココの数字を増やすことで対応できます。
[変数が3の場合]
①割り当てるモーションで遷移前のモーションを引き継ぐにチェックを入れます。
②重力の影響を受けないにチェックを入れます。
③その他の実行アクションから、共通変数:武器セレクト=0.00となるように設定します。
[リンクの作成]
まずはL、Rを押された瞬間に遷移し、モーションが実行されたら待機に戻るリンクを追加していきます。
[待機]→[L(変数ー1)]
以下の入力操作がされたにチェックを入れ、L1が押された瞬間を設定します。
[待機]→[R(変数+1)]
以下の入力操作がされたにチェックを入れ、R1が押された瞬間を設定します。
[L(変数ー1)][R(変数+1)]→[待機]
[L(変数ー1)]→[待機]、[R(変数+1)]→[待機]のリンクを追加し、
モーションのアニメーションが最後まで実行されたらを選択します。
[L(変数ー1)]→[変数ー1→2]
ここでは、武器セレクトの変数<0(0より小さい)場合に[変数ー1→2]へ遷移するように設定します。待機に遷移しないように、判定の優先度を→[待機]よりも大きい数字に設定します。
※優先度について、同じ条件を満たす場合に判定優先度の数字が高いリンクが適用されます。今回はモーションが終わると待機に遷移してしまうため、優先度を高くして待機に行かないようにします。
①判定優先度を1に設定します。
②その他の条件判定から、共通変数:武器セレクト<0.00となるように設定します。
[R(変数+1)]→[変数3→0]
同様に、武器セレクトの変数>2(2より大きい)場合に[変数3→0]へ遷移するように設定します。待機に遷移しないように、判定の優先度を→[待機]よりも大きい数字に設定します。
①判定優先度を1に設定します。
②その他の条件判定から、共通変数:武器セレクト>2.00となるように設定します。
※4種類の場合は>3、5種類の場合は>4といった感じで変数を変更してください。
[変数ー1→2][変数3→0]→[待機]
[変数ー1→2]→[待機]と[変数3→0]→[待機]のリンクを追加し、
モーションのアニメーションが最後まで実行されたらを選択します。
これで枠のオブジェクトは完成です。
武器の種類を増やす場合は緑色の箇所を変更します。
※重力の影響を受けない、モーションを引き継ぐの設定が漏れていると、L,Rを押したときに表示がズレますので注意してください。
2.2武器セレクト用のアイコンを作る
1.1では、弾の変数を決めるために武器セレクト用のアイコンを作成しましたが、今回は何の弾が選択されているかプレイヤーに見せるために作成します。
大きな違いは、スイッチがONか判定するアクションを追加しているところです。
変数=0の時にLボタンを押すと、枠の変数計算で変数=2となり、[判定:L]アクションで[スイッチ(リンゴ)がON]AND[変数=2]と一致するか確認します。一致する場合は[リンゴ(02)]へ遷移し、一致しない場合は[変数-1]へ遷移し、変数が2-1=1となります。同様にスイッチ(雲)がONであれば[雲(01)]へ遷移し、スイッチがOFFであれば変数=0となり[弾(00)]に戻ります。Rボタンを押した場合も同様ですが、変数>2になると変数=0にするアクションが必要になります。
[オブジェクトの作成]
最初は1.2と同じ動きをするようにオブジェクトを作っていきます。
まず、表示する弾のアクションを追加します。こちらの実行アクションは全て、
重力の影響を受けないのみを設定します。
次に、Rを押されたときの判定アクション、Lを押されたときの判定アクションを追加します。こちらはリンクで処理しますので、このアクション自体で何かするわけではございません。
①割り当てるモーションの選択でモーションを引き継ぐにチェックを入れます。
②重力の影響を受けないを選択します。
[リンクを作成]
[変数0から1に変化したとき]
[変数2から1に変化したとき]
[弾(00)]→[判定:R]、[判定:R]→[雲(01)]、[リンゴ(02)]→[判定:L]、[判定:L]→[雲(01)]
その他の条件設定で共通変数:武器セレクト=1.00を設定します。
全ておなじ条件なので、コピーすると楽です。
色分けすると動きが分かりやすいです。
[変数1から2に変化したとき]
[変数0から2に変化したとき]
同じように、変数が2に変化した場合のリンクを追加します。
[雲(01)]→[判定:R]、[判定:R]→[リンゴ(02)]、[弾(00)]→[判定:L]、[判定:L]→[リンゴ(02)]
その他の条件設定で共通変数:武器セレクト=2.00を設定します。
全ておなじ条件なので、コピーすると楽です。
[変数2から0に変化したとき]
[変数1から0に変化したとき]
[リンゴ(02)]→[判定:R]、[判定:R]→[弾(00)]、[雲(01)]→[判定:L]、[判定:L]→[弾(00)]
その他の条件設定で共通変数:武器セレクト=0.00を設定します。
全て同じ設定のため、コピーすると楽です。
これで1.1で作成したメニューと同等の機能をもつメニューが完成です。
menu sceneに貼り付けてテストしてみましょう。
攻撃の設定は1.2攻撃アクションを追加するから変更する必要はありません。
動きがおかしい場合は設定を見直してみてください。
[スイッチによる使用武器の追加方法]
スイッチのON、OFFで武器を追加していく方法を説明していきます。
今回説明する方法は、変数=0をスイッチでOFFにすることはできません。その場合は、変数=0の時、[攻撃(判定)]→[待機]へ直接リンクさせることで武器無しを実現できます。
今回は[武器:リンゴ]というスイッチがOFFの場合、[リンゴ(02)]を選べなくする方法を説明します。※武器ごとにスイッチを用意すれば、全ての武器を選べなくすることもできます。
[素材]-[スイッチ]から新規スイッチを追加します。
[判定:R]→[リンゴ(02)]に対して
共通スイッチ:武器:リンゴがONを追加し、条件をANDに設定します。
同様に、 [判定:L]→[リンゴ(02)]に対して
共通スイッチ:武器:リンゴがONを追加し、条件をANDに設定します。
次に、R:判定でスイッチがOFFの場合に、次の武器に変更するために変数を+1するアクションを追加します。
①割り当てるモーションの選択でモーションを引き継ぐにチェックを入れます。
②重力の影響を受けないを選択します。
③その他の条件設定で共通変数:武器セレクト+=1.00を設定します。
[R:判定]→[変数+1]の条件
R:判定から変数+1に遷移するための条件は、下図の白丸を満たさない場合になります。今回は、この条件を満たすために、→[弾(00)]、→[雲(01)]、→[リンゴ(02)]の優先度を1に設定して、→[変数+1]を優先度0で無条件に切り替えさせることにします。
[判定:R]→[弾(00)][雲(01)][リンゴ(02)]
優先度を1に変更します。
[判定:R]→[変数+1]
無条件で切り替えを選択します。
[変数+1]→[判定R]
無条件で切り替えを選択します。
このままでは、変数が3以上になってしまうので、変数>2のとき、変数=0とするアクションを追加します。
①割り当てるモーションの選択でモーションを引き継ぐにチェックを入れます。
②重力の影響を受けないを選択します。
③その他の条件設定で共通変数:武器セレクト=0.00を設定します。
次に、[変数+1]→[変数=0]のリンクを追加します。
その他の条件設定で共通変数:武器セレクト>2.00を設定します。
※武器が4種類の場合は3、5種類の場合は4を設定します。
最後に、[変数:0]→[判定:R]のリンクを追加します。
条件は無条件に切り替えるを選択します。
これでRを押した場合の処理は完成です。
同様にLを押した場合のアクションを追加します。
①割り当てるモーションの選択でモーションを引き継ぐにチェックを入れます。
②重力の影響を受けないを選択します。
③その他の条件設定で共通変数:武器セレクトー=1.00を設定します。
[判定:L]→[変数ー1]
無条件で切り替えを選択します。
[変数ー1]→[判定:L]
同様に無条件で切り替えを選択します。
[判定:L]→[弾(00)][雲(01)][リンゴ(02)]
優先度を1に変更します。
これでスイッチを設定した場所を飛ばして表示する武器セレクト用メニューの完成です。
※初期アクションの変更
初期アクションは[弾(00)]となっております。セーブなどの状況により、変数が[弾(00)]とリンクしていない数字になっていると挙動がおかしくなる可能性があります。念のため、初期アクションを[判定:R]または[判定:L]に変更することをオススメします。
最後に、攻撃(判定)にも、スイッチがONの時に遷移するようにリンクの条件を追加します。
これでスイッチがONになった時に武器が追加される武器セレクトメニューの完成です。
今回は3つでしたが、同じようにアイコンと弾発射アクションを追加することで、いくつでも追加することができます。
※サンプルとして、武器が4種類の時のプログラムをご紹介します。
☆のリンクに対して、スイッチがONの条件をANDで追加すれば、ロックできます。
枠は緑色の箇所を変数=-1→3、変数>3→0と変更します。
※空欄を作って武器を選択しない場合を作りたい場合は、このように[攻撃(判定)]→[待機]へ直接リンクさせて、変数を指定することで実現できます。
これで今回の講座は終わりです。参考になりましたでしょうか。
不明な点、おかしなところがございましたらコメントの方にお願いします。