Unityに関連する記事です

製作物


 おはじきとビリヤードのルールを合わせた2Dアクションゲームを製作します。スマホで動作します。

 このゲームの素材にはぴぽや様とイラストAC様の素材を利用させていただいております。
ぴぽや様
https://pipoya.net/sozai/
イラストAC様
https://www.ac-illust.com/

メインのゲーム画面の動画
動画ファイルへのリンク


システムとルール


 手球であるキャラをスワイプ操作ではじいて、的球(以下、敵キャラ)に当てて体力を減らしていきます。体力が 0 になると消えます
画面をビリヤード台に見立てた作りになっており、画面の端に当たると手球も的球も跳ね返ります。

 この操作を繰り返して、制限時間内にすべての敵を消すとゲームクリアになります。

 プレイヤーには持ち球が3球あります。制限時間が 0 になるか、持ち球がすべてなくなると、ゲームオーバーになります。

 ポケット(穴)に手球が接触すると持ち球が減少します。そのため、ポケットには手球を当てないように工夫する必要があります。
敵キャラをうまく弾いてポケットに接触させると、体力の残りに関係なく1回で倒すことが出来ます。
ステージごとにポケットの位置を変更するようにします。

 敵キャラ以外に障害物(壊せるものと壊せないもの、移動するもの、しないもの)を登場させることによって、はじいた手球の跳ね返りを上手く使う操作をユーザーに要求します。

 適当に弾いても面白く、しっかりと考えて弾けばさらに面白く、という形で、ユーザーのプレイスタイルに合わせた遊び方を提供する設計とします。

 発展要素としては、アニメ演出の挿入、手球であるキャラの変更や成長(RPG要素)、ルールの追加(ステージ制、フェイズ制)、
手球や的球のデータベースの管理といった要素を追加していきます。


完成図


 この教材をすべて完成させると、以下のような画面構成を持つゲームになります。

バトルゲーム画面(基礎編で製作します)



ステージ選択画面(発展編で製作します)


キャラ選択ゲーム画面(発展編で製作します)



1.ステージ選択シーン


 ゲームを起動すると、ステージの選択画面になります。ピンのある場所をタップするとステージを選択したことになり、
キャラ選択ポップアップが開きます。

ステージ選択シーン 動画
https://gyazo.com/b28f41a4703daf180cfe8dd2873931d5

 キャラ選択ポップアップでステージで使用するキャラをタップで選択(選択しない場合には初期設定キャラを自動選択)し、スタートボタンを押すとバトル画面のシーンに遷移します。


ステージ選択シーン 動画
https://gyazo.com/b035d718cd53025fd9ac63e6898a8304

2.バトルシーン


 バトルの目標は、制限時間内に手球のキャラを弾いて敵にぶつけて攻撃し、すべて消すことです。
画面をスワイプすることでバーが生成されて、このバーと手球が接触するとはじくことが出来ます。ブロック崩しの応用です。

 バトル終了の条件は、時間切れによるゲームオーバーか、敵をすべて消してバトルクリアのいずれかになります。


バトルシーン 動画
https://gyazo.com/e0ecf981a95ec7d8fb6a20c4686f3784

バトルシーン 動画
https://gyazo.com/0811c13f053eab6b2313398cd22f0b1e


(中級者以上 発展編)

 キャラにスキルを追加し、敵に攻撃をするたびにゲージがたまっていって、満タンになったときにキャラをタップするとスキルを使用出来るようになります。
スキルの効果は、周囲の敵にダメージをあたえ、破壊できない障害物を壊せるという内容です。 

3.リザルト表示


 バトル終了の条件を満たすと、リザルト(バトル結果)表示を行います。
残り時間が多いほどスコアに反映されるようにします。

4.ステージ選択シーンへ戻る(ゲームサイクル化)


 バトル終了後、リザルト表示後に、画面タップを誘導するメッセージが表示され、タップすると徐々に白い画面へとフェイドアウトし、最初の【1】の画面に戻ります。


学習内容


 2Dおはじきゲームを製作していくことで、習得することを目標とする技術を記載しておきます。

・Canvasのみでゲーム製作を行う方法について。
・MonoBehaviourを継承していないEnumについて。
・Raycast2Dを使った画面タッチの取得方法について。
・スワイプ処理の実装方法について。連動した処理の実装方法について。
・シングルトンのデザインパターンを利用したクラスの作成方法と利点、使い方について。
・ゲームサイクルを生成する方法について。
・DoTweenの使用方法について。SequenceやOnComplete、AppendCallBack、Ease、Loopsなどの使用方法について。
・Tweenerの説明と使用方法(主にKill)について。
・コルーチンの使用方法について。yield return と while文を利用した待機処理について。
・IEnumerator型変数を使用したコルーチン処理の使用方法について。
・Dictionaryの説明と使い方について。
・Listの説明と使い方について。
・foreach文の使い方とコレクションの検索方法について。
・キャストの説明と使い方について。
・1つのプレファブから複数の同じ種類のゲームオブジェクトを生成して、その値を変更する方法について。
・Textプレファブの利用方法について。
・GridLauoutGroupの使い方について。
・ContentSizeFiterの使い方について。
・ScrollViewの使い方について。
・CanvasGroupの使い方について。スクリプトからの制御方法について。



発展・応用編として、以下の技術についても学習します。

・クラスの継承と実装例。多態性によるメソッドの変化について
・DoTweenの使用の応用実装例
・Linqの説明と使用方法の実装例。ラムダ式の記述方法について
・スクリプタブル・オブジェクトによるデータベース構築
・複数のデータベースを用意し、それらを参照してゲーム内にデータを反映する方法
・UnityActionを使ったUnityEventの登録方法と使用方法の実装例
・幕間のトランジション処理(フェイドイン/フェイドアウト)の実装例
・SoundManagerによる音源管理の方法



重点学習箇所

クラスの継承


 親クラスの製作方法、子クラスでメソッドを使用する方法(多態性)を学習します。
継承したクラスによるインスタンス時の特徴なども合わせて説明します。


DoTweenの使い方


 メソッドチェーンの使い方、シーケンスによる処理の実装方法、OnCompleteやAppendCallbackなどのコールバック処理の実装方法などを
実際の画面の演出に合わせて学習していきます。

 バトルシーン開始時の以下の動画はすべてDoTweenで制御しています。

https://gyazo.com/5ec4880cd7b60f59a2abdc1637c9da2b

 ・敵がアニメーションしながら表示される
 ・障害物もアニメーションしながら表示されるが、敵とは違うアニメーションで表示される(ユーザーが敵か障害物かを見分ける基準にもなる)
 ・ReadyやGoの文字もアニメーション表示される
 ・障害物は一定時間ごとにアニメーションを繰り返している

 また敵や障害物に接触した際にもアニメーションが行われます。

https://gyazo.com/9e4255e96742c4dd68243fac8461df01

 ・手球と敵とが接触すると敵はくるくる回転する。また倒された際には小さくなって消える
 ・手球が障害物やポケットに接触すると、こちらもくるくる回転する


 このように演出を加えると画面が華やかになるとともに、一気にゲームの見た目のレベルがアップします。


データベースの製作と活用方法


 Excel、あるいはJsonファイルからデータベースを作成し、それをゲーム内で利用出来るようにします。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



プログラムの基礎学習

コード練習

技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

3Dトップビューアクション(白猫風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます