GDevelopで簡単なゲームを作ろう・7 ~ショットの作成(4・ショットBを作成)~

アイキャッチ GDevelop


こんばんは。
ピクセルアニメクリエイターのおかか容疑者でございます。


GDevelopで簡単なゲームを作ろう企画。
前回「GDevelopで簡単なゲームを作ろう・6 ~ショットの作成(3・スマホ用にショットボタンの作成)~」では、完成したショットをスマホアプリで実装しても発射できるよう、ボタンを用意して発射できるイベントを作成しました。
あと、ショットを破壊する重要性についてもお話ししましたね。


今回はもう一つ、別の動き方をする「ShotB」を作ってみることにしましょう。


※GDevelopのバージョンは5.3.194です。




ShotBの作成

では、ShotAと同じ要領でShotBを作りましょう。

最初に「どういうショットにしたいか?」をあらかじめ決めておく方がよいですね。
今回のShotBは、

・一度に3つ同時に発射する。1つはShotAと同じく進行方向に真っ直ぐ。残り2つはそれぞれ左右のナナメ30度方向に真っ直ぐ飛んでいく。
・速度は最初は速いが、徐々に速度が下がっていく。
・ショットの間隔はShotAよりも長くする。


という感じにしてみましょうか。




それでは作ります。
で、またイチから全部作り上げるのはさすがに面倒ですので、基本的にはShotAをそのままコピーしてしまいましょう。





ShotAの右側にある三点ボタンを押し、開いたメニューから最初に「コピー」をします。
そうするともう一回三点ボタンを押した際に「ShotAを貼り付け」という項目が増えますのでそれを選択。





ShotA2というオブジェクトが増えます。
コイツの三点ボタンを押して、「名前の変更」で名前を「ShotB」に変えておきましょう。

これでShotAをそのまま受け継いだShotBを作ることができました。


(コピーをせず、「貼り付け」の下にある「複製」を選んでも同様にコピーが作れます。
この二つに違いがあるのかが調べてもよくわからなかったため、とりあえずどちらの方法でも大丈夫でないかなと。)



これを手直しして別物のショットにしていきます。まずは見た目から変更していくことにしましょう。




ShotBの編集画面を開きましょう。
今はShotAで使った剣の画像が並んでいるはずです。これらの右下にあるチェックマークを4画像全てチェックして、右クリック→「選択範囲を削除」を選びます。
これで画像が何もない状態になります。






続いて別の絵を追加しましょう。
「スプライトを追加」の右にあるプルダウンを押し、「アセットストアから選択」を選びます。






するとアセットストアの画面がですね


えらいゴチャってんなおい!!



……ぶっちゃけこの画面、見づらいので、前もってアセットストアを見て目的のアイテムの名前を調べておくことをオススメします。名前検索はできますので。





今回は矢を放つショットにしようと思っていたので、「arrow」で検索をかけて出てきた素材を使わせていただきます。




コチラを選択して画像が出てきたらOKです。
(今回の画像は最初から右向きなので、Piskelで回転させる必要はないです)




そしてShotAのときと同様、画像をリサイズして幅と高さを160ピクセルに。
あとポイントの編集でOriginの位置も真ん中に合わせておきましょう。


ここまでできたら「適用」を押して戻ります。



オブジェクトグループを作ろう

では張り切ってShotBのイベントをまたイチから作っていきましょう!!
……というのも非常にやるせないと思います。


最初にShotBの動き方を話しましたが、基本的にShotAと同じ要素が結構ありますね。
こういった似たようなものは「オブジェクトグループ」でまとめておくとよいです。



シーン編集画面の一番右に「オブジェクトグループ」の欄がございますね。
そこの一番下の「新しいグループを追加」を押しましょう。




するとすぐにシーングループの欄に新たなグループが追加されます。
作った直後に名前も変更できるので、「Shotgroup」に名前を変更しておきます。
オブジェクトと同じように右の三点ボタンを押して「名前の変更」から名前を変えることもできますよ。





グループをダブルクリックすると、グループに追加するオブジェクトを選ぶことができます。
欄をクリックするとオブジェクトが表示されるので、「ShotA」「ShotB」の2つを入れておきましょう。




こうなればOKです。
ちなみに間違ったオブジェクトを入れてしまった場合は、そのオブジェクトの右にある「-」ボタンを押すとグループから消えます。


あ、オブジェクト追加すると上の方でなんかいろいろわめいてますが、要は「グループを一つのオブジェクトとして使えるよ!」みたいな話です。
これからのお話を聞いていただければ意味がわかります。


では、このオブジェクトグループを使ってイベントを修正していきましょう。
イベント編集画面に移ります。





試しにどこか適当なイベントで「条件を追加」を押してみてください。
先程追加した「Shotgroup」がオブジェクトの欄に増えていますね。

これも通常のオブジェクトと同じようにイベントで使うことができ、なおかつ設定したイベントはグループに入れたオブジェクト全体に適用されます。
ですので、前に「ShotA」で入力したイベントの「ShotA」の部分を「Shotgroup」に書き換えてやると、グループに入っている「ShotA」「ShotB」両方が同じイベントを使える。というわけです。便利!



じゃあ書き換えていこう、となりますが、イベント一覧から目的のブツだけ地道に探していくのは非常に大変……。
大変なだけでなく、ヌケモレの原因にもなります。

なのでこういう場合は人類の叡智・「検索」に頼るのが一番です。
(今でこそインターネットに情報が溢れ、検索エンジンが当たり前のように使われていて実感しづらいのですが、一昔前はこんな便利なものはなくて。情報収集は本やテレビなり現地取材なりで地道に集めていくしかなかったのです。テクノロジーの進歩に感謝…。)





イベント編集画面の右上に虫眼鏡アイコンがございます。
これを押してみてください。
もしくは「Ctrl + Fキー」でもよいです。





画面下にこういうウインドウが出てきます。
これはテキストを検索でき、さらに置換までできるという優れもの。要は探したい文字を見つけてくれ、それを別の文字で置き換えることもできる。という機能です。





では、まず上の欄に「ShotA」と入力し、Enterキーか右の「検索」ボタンを押しましょう。



このように、「ShotA」が含まれるイベントの列が紫色に変化します。




続いて、下の欄に「Shotgroup」を入力します。
ついでに左下の「大文字と小文字を区別しない」のチェックは外しておきますか。

この状態で再度Enterキーか右の「置換」ボタンを押します。




「ShotA」が「Shotgroup」に置き換わりました!


が。ひとつ問題がございまして。
この中の一番上のイベント(ショットを発射するイベント)だけは「ShotA」固有のイベントとなるため、ここだけはそのままにしておきたいんですよね…。

試してみた感じ、一部のイベントだけを検索・置換する、ということがGDevelopだとできないようで。ここだけは手直しが必要なようです。
(何かしら方法があるような気もするのですが…)


というわけで、今回は手作業で一番上のイベントのアクション部分だけ「Shotgroup」の部分を「ShotA」に修正しますね。




こうなれば大丈夫。のはず。
プレビューでテストしてみて前回と同じように動くか確認しておきましょう。
(見た目の変化は何もないので今回は動画は載せません。)





ShotBの発射イベントを作成

これで前準備が完了。
では、ここからShotB特有のポイントを作り込んでいきましょうか。

まず最初にShotBが発射できないと何も始まりませんね。
イベント自体はShotAのものを流用すればいいので、ShotAの発射イベントを選択してコピー(Ctrl + Cキー)してから貼り付け(Ctrl + Vキー)します。




コピーしたら、上画像の四角の部分を変更していきましょう。


・タイマーはShotAとは別にする必要がありますので、新たにタイマー”b”を作成します。
ショットの待ち時間は「タイマー”b”」で、時間の変数も分けたいので「shotB_wait」としておきます。

・キーボード操作は「Xキー」を押したときに発射することにします。
また、ボタンも「Bボタン」をタップしたときに変更しましょう。

・アクションのShotAの部分を「ShotB」に、タイマーも「b」に変更します。





そして、Playerのオブジェクト変数に待ち時間用の変数「shotB_wait」も追加します。
今回は「・ショットの間隔はShotAよりも長くする。」としましたので、長めの1秒としました。
これで目標の条件をひとつ達成できましたね。




あと、シーンが始まった際にタイマー”b”をスタートさせておかないとShotBが発射できませんね。忘れずに追加しておきましょう。



これでShotBの発射はできるようになりました。
ちゃんと発射間隔がShotAよりも長くなっております。



で、残る問題はこの2点。

・一度に3つ同時に発射する。1つはShotAと同じく進行方向に真っ直ぐ。残り2つはそれぞれ左右のナナメ30度方向に真っ直ぐ飛んでいく。
・速度は最初は速いが、徐々に速度が下がっていく。



では解説……といきたいところですが、これらの解説をしていくとまた新しい要素がだいぶ増えてしまい、お話一回分くらいのボリュームが必要になりそうです。
今回も結構お話をしておりますので、一度ここで切っておいた方がよいでしょう。
次回でShotBの完成まで目指していこうと思います!




まとめ

・同じ種類のオブジェクトはグループでまとめて管理しよう!

・イベントの修正には検索・置換を使うとラクに!

今回はShotBの作成と発射までということでお話いたしました。
もう少しサクッと進められるかと思いましたが、やってみると想定と違うものですねえ。これもまたゲーム開発と同じだなと。だがそれがいい。

次のお話は少々難解になってきますが、扱えるようになると様々なイベントを作る際に役立つこと間違いなし。「とりあえず見といてやるか」くらいの軽い気持ちで見てみてくださいね。


次記事→「GDevelopで簡単なゲームを作ろう・8 ~ショットの作成(5・ショットB完成編)~

GDevelopで簡単なゲームを作ろう企画まとめへ




さて…そろそろお時間です。
またのご面会、心よりお待ちしております。

この記事がお気に召したなら、

ギャラリーからワタシの作品を見ていただいたり、

Misskeyアカウント(@daidaimyou)
Caraアカウント
X(旧Twitter)アカウント(低浮上)(@daidaimyou)

をフォローいただけますと脱獄の励みになります。よろしくお願いいたします。

ドット絵(一枚絵・アニメーション)制作のお仕事も承っております。
お仕事依頼ページよりご連絡くださいませ。(現在受付停止中)

コメント

タイトルとURLをコピーしました