Unity ロックマン風2Dアクションゲームの作り方9 マップのギミックを全種類実装 | Unity入門の森 ゲームの作り方

Unity ロックマン風2Dアクションゲームの作り方9 マップのギミックを全種類実装

Unity 2Dアクションの作り方 ロックマン風横スクロールアクションゲームを作る


Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

この講座はロックマン風2Dアクションの作り方講座の第9回です。

前回は様々な行動パターンを持つ敵を一通り実装しました。

前回の記事:

Unity ロックマン風2Dアクションの作り方8 敵キャラを増やす 7種類の行動パターンを実装する
この講座はロックマン風2Dアクションの作り方講座の第8回です。 前回はショットや敵キャラクターや被弾処理などの戦闘システムの実装を開始しました。 前回の記事: 今回は様々な行動パターンを持つザコ敵を増やしていきます。多くの種類の敵を作成して...

今回はステージ上に配置する障害物(ギミック)を増やしていき、より遊びごたえのあるゲームに仕上げていきます。

開発するギミックは以下。

  1. 透明壁:プレイヤーが通れない場所を作る
  2. トゲ:プレイヤーが触れるとダメージを受ける障害物
  3. 即死ゾーン:空中から落下した時などに活用
  4. ジャンプ台:踏みつけるといつもより高くジャンプ
  5. 一方通行の足場:Platform Effector 2Dの使い方
  6. 往復リフト:空中を往復で移動する浮遊床
  7. 円運動リフト:空中で円形に移動する浮遊床
  8. 自動開閉扉:スイッチによって開く自動扉

ジャンプ台、空中で移動する床やスイッチで開閉する扉などアクションゲームでおなじみのギミックを実装していきます。


【Line登録者限定のプレゼントもあるよ!】

ギミック1:透明壁 プレイヤーが通れない場所を作る

透明壁はプレイヤーであるActorの行動範囲を制限するための透明な壁です。

シーン編集中は任意のスプライトを表示して分かりやすくし、ゲーム開始時には透明化する処理を行います。それでは以下のスクリプトを作成していきましょう。

Gimmic_HiddenWallクラスを作成

ScriptsフォルダにGimmicsフォルダを作成し、フォルダ内にギミック関連クラスをまとめていきます。

まずはGimmic_HiddenWallクラスを作成します。

 

HiddenWallオブジェクトを作成

続いてHiddenWallオブジェクトを作成します。

ヒエラルキー画面で右クリックし、2D Objects > Sprites > Squareでオブジェクトを新規作成。名称をHiddenWallに変更。Sprite Rendererに以下の画像を設定。

サンプル画像:Textures/MapAreas/HiddenWall.png

 

ギミックオブジェクトはArea/Gimmicsフォルダ以下に作成・配置しましょう。(Gimmicsフォルダ未作成ならAreaフォルダ直下でも大丈夫です。)

このあとのギミックも全てSpriteオブジェクトとして作成してOKです。

BoxCollider2Dと上記クラスをアタッチすればそれで必要な機能は揃います。

ギミック系のプレハブはPrefabsフォルダにGimmicsフォルダを作成してまとめることを推奨します。

 

透明壁は最初以外のエリアの、進入してきた方向に設置することを推奨します(下図エリアは左から侵入するので左端に設置)。

ただし、ScrollEnterオブジェクトを過ぎてからアクティブになるようにします。すなわち、AreaからArea(1)に入る際は非アクティブ。そしてArea(1)に入った後はArea(1)から左側に戻れなくするようにHiddenWallを設置するということです。

こうすることでステージの逆走防止になります。

↑ScrollEnterによりAreaからArea(1)に移行したことでArea(1)のHiddenWallが出現しプレイヤーが後ろに戻れなくなっています。

また、最初のArea内ではプレイヤーの後ろ側にもHiddenWallを設置することでステージ場外に落ちることを防ぐと良いでしょう。

HiddenWallオブジェクトを忘れずにプレハブ化してPrefabs > Gimmicsフォルダに保存しておきましょう。

ギミック2:トゲ プレイヤーが触れるとダメージを受ける障害物

触れたActorオブジェクトにダメージを与えるオブジェクトです。

Is Triggerがオンでもオフでも作動するように設計します。

Gimmic_DamageBlockクラスを作成

トリガーでないColliderオブジェクトの接触時判定はOnCollisionStay2Dなどが有効です。

Spikeオブジェクトを作成

続いてSpikeオブジェクトを作成し、Collider2D系コンポーネントと先ほど作成したGimmic_DamageBlockクラスを追加します。

サンプル画像:Textures/Gimmics/Spike.png

当たり判定はBoxCollider2D以外でも可能です。

IsTriggerはオンでもオフでも大丈夫ですが、オフの場合はGroundタグを付与しておく事を推奨します。

 

Gimmic_DamageBlockのdamageパラメータには1回触れた時に受けるダメージを設定します。敵にはダメージを与えません。

 

これで触れることでダメージを受けるオブジェクトの完成です。

作ったオブジェクトはプレハブ化してPrefabs > Gimmicsフォルダに保存しておきましょう。

ギミック3:即死ゾーン 空中から落下した時などに活用

触れたらアクターを即座にHP0にさせるオブジェクトです。

Gimmic_DamageBlockクラスを使いまわせるので新規スクリプト作成は不要です。

 

DeathZoneオブジェクトを作成

今回は初期スプライトの非透明度を0にして最初から非表示にして作成します。

ステージの落とし穴より下に配置する事が多いと思うので、IsTriggerはオフにしておき判定漏れを防ぎます。

ダメージは適当に最大HPより高い値を入力しましょう。

 

これで触れただけでゲームオーバーとなるオブジェクトが出来ました。

作ったDeathZoneオブジェクトはプレハブ化してPrefabs > Gimmicsフォルダに保存しておきましょう。

ギミック4:ジャンプ台 踏みつけるといつもより高くジャンプ

乗ったActorオブジェクトを上方向に吹っ飛ばすオブジェクトです。

スーパーマリオなどでも多くの2Dアクションゲームでおなじみのギミックですね。

続きを読む

このコンテンツはパスワードで保護されています。 コンテンツを読みたい方はUnity入門の森ショップ(https://unityforest.shop/)で講座閲覧権を取得してね。

作成したギミックを配置する

ギミックをステージに配置する時は、Area/Gimmicsオブジェクト以下にインスタンスを生成して座標を整えます。

(Gimmicsオブジェクト未作成の場合はAreaオブジェクト直下に配置しても大丈夫です。)

ギミックは主にプレイヤーの移動を助けたり妨げたりすることで、ステージ攻略にパズルを解くような楽しさを与える効果があります。

エネミーの配置と同様、序盤はギミック単体を配置してギミックの効果がわかりやすいようにし、後半にはギミックを適切に利用しないと前に進めないように少しずつ難易度を上げていきましょう。

 

ラストステージではリフトで飛び乗った先の狭い足場にエネミーが待ち構えている、くらいの難しい局面を作ってみるのも面白いでしょう。

 

まとめ

ここまでで計8種のギミックを作成できました。ギミックはあればあるだけステージに個性を持たせることができ、プレイヤーの遊びごたえ向上につながります。

今回の講座で作成したギミックを組み合わせてステージを作成していきましょう。また、あなた独自の新しいオリジナルギミックを思いついたらぜひ開発に挑戦してみましょう。

 

次回はここまで構築したシステムを活かして残りのステージを作っていく作業を行っていきます。

次の記事:

Unity ロックマン風2Dアクションの作り方10 ステージを全種類作成・水中判定・氷床ステージの実装
この講座はロックマン風2Dアクションゲームの作り方講座の第10回です。 前回まででザコ敵からギミックまで、ステージを構成するゲームシステムを一通り開発しました。 前回の記事: まだボス敵は未実装ですが、ここまでの機能を活かして本格的なゲーム...

Unity 2Dアクションゲームの作り方講座に戻る>>



Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

コメント

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