Construct 3 の基本操作を学ぶ(4)~プレイヤーに弾を撃たせる

前回はイベントの設定について、簡単に解説いたしました。今回はプレイヤーから弾を発射させるイベントを作ってみたいと思います。

※この記事では、Construct 3 のビギナーズガイドを参照しながら、ゴーストシューターという簡単なゲームを一緒に作っていきます。

あわせて読みたい
Beginner's guide to Construct 3 ★★★★★ Thanks for choosing Construct 3! Let's get started making your first game. We'll be making the Ghost Shooter demo game. You'll learn everything you need to know...

完成版はこちらで確認が可能です。

あわせて読みたい
Construct 3 r388.2 ★★★★★ Launch Construct 3 r388.2. Make games with the world's easiest browser-based game creator. Try for free now and begin your game development journey.
Menu

弾を発射させるイベントを追加

※イベントの追加方法がそもそもわからない!という方は、前回の記事を参考にしてください。

メンタルハックWEB
Construct 3 の基本操作を学ぶ(3)~イベントの基本 | メンタルハックWEB 前回はオブジェクトを設置して、それに動作(Behavior)を加えました。今回はイベント (Event) を追加して機能を持たせてみます。よりゲームらしい表現が可能になります。 ...

まず以下の条件を作りましょう。

Mouse → On click → Left clicked (数値はそのままデフォルトでOK)

そしてその条件に以下のアクションを加えます。

Player → Spawn another object ( Bullet を選択しあとはそのままでOK)

こんな感じになっているはずです。

Spawn another object は新しいオブジェクトを生み出すという意味で、ここでは PlayerからBulletを生み出しています。

プレビュー画面で確認してみてください。左クリックをすると弾が発射されると思います。ですがちょっと変ですよね。

そう、弾が構えた銃の先端からではなくて Player の体から発射されてしまっています。これを直していきます。

発射位置を調整する

Player オブジェクトの編集画面を開きます。

編集画面を開く方法は二つあって、レイアウト画面に戻ってオブジェクトをダブルクリックする、もしくは右のプロジェクトウインドウの Player をダブルクリックする、いずれかで編集画面を開いてください。

そして、Edit the image points というアイコンを見つけてクリックします。

すると左に Image points というウインドウが表示され、origin 0 と書かれていると思います。これなんですが、オブジェクトを回転・反転させるときや、何かに触れるときなどの基準点となるポイントを指しています。

今は新しい point を作ってそこから弾を発射させたいので、Image points ウインドウ内で右クリック → add a new image point をクリックしてください。

Image points ウインドウに新しいポイント( image point 1 )が追加され選択されている状態になっているはずです。このまま右の画像の銃の先端部分をクリックしましょう。

これで image point 1 は銃の先端に指定されたことになります。

でもこのままでは、まだ弾は Player の中心から発射されてしまいます。なぜなら弾のスポーン(発生)地点を image point 1 に変更していないからです。これの変更を行いましょう。

もう一度イベントシートを開いて先ほどのアクションに変更を加えます。アクションの上でダブルクリックもしくは右クリック → edit を選択します。

そして、 image point の値を 0 → 1 に変更してください。0 は origin 要するにプレイヤーの回転軸でしたね。スポーン地点がそこになっていたので、弾が Player の中心から発射されてしまっていた、ということです。

この変更が済んだらプレビュー画面で実際に弾を発射してみてください。今度こそ銃の先端から弾が発射されているはずです。

※弾が飛んでいかずにその場に落ちてしまう場合、弾 ( Bullet ) に Bullet movement を設定していないことが考えられます。こちらを参考に設定をしてください。

モンスターを倒すイベントを作る

さて、無事に弾( Bullet )が Player の銃の先端から発射されるようになりましたね。

次に、この弾 ( Bullet ) が敵 ( Monster ) に命中したときに、それぞれが消滅するイベントを設定してみましょう。

条件: Bullet → On collision with another object → Monster

アクション1: Monster → Destroy

アクション2: Bullet → Destroy

「弾が Monster と衝突したときに、Monster が消滅し、Bullet も消滅する。」この流れを上記のイベントで実装しています。

このように一つの条件のもとに複数のアクションを設定することも可能なんです。最初のアクションの下の add action をクリックすればアクションをどんどん追加していくことが可能です。いろいろ試しながら遊んでみるとよいでしょう。

爆発エフェクトを実装する

一度プレビュー画面で遊んでみてください。ちゃんと弾が銃の先端から発射されて、弾が敵に当たったときに敵と弾が消えていますか?

せっかく爆発エフェクトも画面外に準備してあるので、これも使ってあげましょう。

先ほどの条件(弾が敵に当たったとき)に以下のアクションを追加します。(add action をクリックします。)

アクション3: Bullet → Spawn another object → Explosion

これで弾( Bullet )が消えると同時に爆発エフェクト( Explosion )が生成されます。

そして、以前に爆発エフェクトに fade のビヘイビアを設定しておいたので、徐々に消えていくはずです。爆発エフェクトが消えない人はこちらを確認しましょう。

一度プレビュー画面で確認してみてください。ちゃんと爆発していますが、爆発エフェクトの黒い部分が気になりますね。これを改善します。

一度 layout 画面に戻り、画面外に置いてある爆発エフェクト ( Explosion ) を選択(クリック)し、左のプロパティウインドウ内に Effect → Blend mode という欄を探してください。

デフォルトでは normal になっていると思います。これを additive に変更しましょう。詳しいことは省きますが、こうすることで画像の黒が消え、ほかの部分がハイライトされます。これは爆発エフェクトなどに効果的なので覚えておいてください。

敵に動きをつける

前回の記事で敵( Monster )を複製し配置しましたが、みんな同じ方向を向いていて、Bullet movement を設定してあるので、同じ方向にまっすぐ進んでいくだけでゲーム性ゼロの状態です。

ゲーム開始と同時に、ランダムで向きを変えて、かつ画面の外に出た場合は向きをプレイヤーの方に向かせるようにしましょう。これでちょっとはエキサイティングなゲームになってくれるはずです。

まずは以下のイベントを加えます。

条件: System → On start of Layout

アクション: Monster → Set angle → random(360)

System → On start of Layout これはゲーム開始と同時に、という意味になります。

Set angle を選択すると数値を入力する欄が表示されますが、ここに random(360) と入力してください。※ r を入力すると予測変換で random が出てくるはずです。

次に以下のイベントを追加します。

条件: Monster → Is outside layout

アクション: Monster → Set angle toward position  X: Player.X Y: Player.Y

Is outside layout はレイアウトの外に出た場合を意味します。Set angle toward position を選択すると数値の入力欄が出てくるので、それぞれ Player.X Player.Y と入力します。これはプレイヤーが今いる座標を表しています。

二つを追加し、イベント画面はこのようになっているはずです。

確認ができたらプレビュー画面で敵の動きを確認してみましょう。いい感じにそれぞれが違う方向を向いて前進しているはずです。

そして画面の外に出たら、プレイヤーの方向に向きを変えていることも確認できると思います。かなりゲームらしくなりましたね。

今回はここまでです。次回は敵にHPをつけて一撃で倒れないように設定をしてみます。

メンタルハックWEB
Construct 3 の基本操作を学ぶ(5)~敵にHPを設定する方法 | メンタルハックWEB 前回はプレイヤーに弾を発射させる方法について、簡単に解説いたしました。今回は敵にHPを設定して一撃では倒れないようにしてみたいと思います。インスタンス変数という新...
Menu