Unityに関連する記事です

製作物




<タイトル 動画>
https://gyazo.com/6dc8bc1c0d7e4d2b867ba5b613b2ca73





 自分のバルーンを割らないように障害物を避けながらコインを集める、2Dの強制横スクロールアクションゲームを製作します。スマホで動作します。

<メインのゲーム画面の動画>
https://gyazo.com/49e3f4b5bbe17b6a5c69ee0387ceb97e


システムとルール


 ゲームが開始されると、ゲーム画面が強制的に左から右方向へスクロールしていきます。ゲーム画面には地面や床があまりありません。
そのため、プレイヤーを空中浮遊させて移動させて進むことが、ゲームの基本操作となります。
敵やコインがランダムで生成されてスクロールしてきますので、敵を上手くかわしつつ、ゴールまでにコインをたくさん集めることが目的になります。

 プレイヤーは空中や地面や空中の床を左右に移動できます。空中の場合には慣性が働くため、操作が難しくなります。
画面の左端、右端と上には制限があり、画面外には移動できません。また上で浮遊を連続して押しても溜めることはできず、浮遊をやめると自然落下します。


<移動と移動範囲(左端、上) 動画>
https://gyazo.com/bb57db44e0f59cb55af204b60f9cbe74


<移動と移動範囲(右端) 動画>
https://gyazo.com/795a42a19bc908cd4693fd7d814ed73b


 プレイヤーの背中にはバルーンがついており、ジャンプ用のボタンを押すことで、空中にジャンプし、浮遊することが出来ます。
空中浮遊中には何度でもジャンプを行うことが出来、ジャンプをやめると重力によって自然落下します。
なおジャンプボタンは押しっぱなしでは動作せず、連続で押すことで浮遊します。


<空中を浮遊して移動 動画>
https://gyazo.com/de110d3925563f07bc1c9b148e1e0c1b


 地面や床ではない場所にプレイヤーが落下した場合にはゲームオーバーとなります。


<空中浮遊、自然落下、ゲームオーバー 動画>
https://gyazo.com/3516d482c7165dbd878bed61a275fd3d


 プレイヤーが空中で浮遊するには、背中にバルーンが必要になります。
最大2つあり、敵とバルーンが接触すると1つ割れてしまいます。2つとも割れてしまうと落下してしまいます。
バルーンがない場合には、バルーンがあるときよりも落下速度が速くなります。
バルーンは1つでも浮遊できますが、浮遊する力が2つの時よりも弱くなります。


<バルーンの破壊 動画>
https://gyazo.com/a4e48e89bc2d375648f36ad950d60260


<1つだと浮遊する力が弱くなる 動画>
https://gyazo.com/553adbb3229f9527ad7129dd2cdd076e
 

 プレイヤ―本体は敵に接触してもバルーンは割れません。その代わり、敵の反対方向に弾かれます。
プレイヤーには敵を倒す手段はありませんので、上手く避けていく必要があります。


<敵と接触して弾かれる 動画>
https://gyazo.com/b4eb4ae6c820fc60661d836c524d8257


 地面、あるいは床の上にプレイヤーがいる場合には、新しいバルーンを膨らませて、元の数(2個)まで増やすことが出来ます。
1つ膨らませるのには一定の時間がかかります。バルーンがないと空中にジャンプや浮遊できません。


<地面、床でバルーンを1つ生成する 動画>
https://gyazo.com/45b339919a5da73b360ba30d3063f398


 またプレイヤーは空中でバルーンを切り離して、強制的に落下することも出来ます。


<バルーンを空中で切り離す 動画>
https://gyazo.com/86a0ee8a6bd2b58397676b61a9601d45



 空中を浮遊して移動する感覚を楽しむとともに、空中浮遊という特徴によって、通常よりもプレイヤーの制御が難しくなっていますので
それを考えた上で、コースをどのように進むか、敵をどうやってよければいいか、ということをユーザーに要求します。
また、プレイヤーではなくバルーンと障害物とが接触することでペナルティを負うようになっているので、通常とは異なる操作感が求められます。

 アクションゲームですので、プレイヤーのアクションに合わせたアニメーションが連動して動きますので、動かすだけでも充分に楽しめます。

 発展要素としましては、タイトル画面において、ゲームのモードをゴール制にするか、あるいはゴールのない、ゲームオーバーになるまで続けるか、という分岐を作って
ユーザーが遊ぶときにゲームモードを選択出来るようにします。


完成図


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


1.タイトル


 タイトルにボタンを2つ設置し、ゲームモードを選択するようにします。


タイトル表示



<タイトルシーン 動画>
https://gyazo.com/104ff1d09c47f0d928260bf250910c3f


(発展編)
 ゲーム中に生成されるオブジェクトの種類を増やしたり、コインの種類を増やして獲得できるスコアを変化させます。


2.メインシーン


 タイトルで選択したモードに応じて、メインとなるゲームがスタートします。




<メイン 動画>
https://gyazo.com/96b6d2d0b4b86e068477f0979fd185ff


3.リザルト表示


 ゴールである家に到着するとゲームクリアとなります。獲得したスコアがリザルト表示されます。




<クリア時のリザルト表示 動画>
https://gyazo.com/61793ca887f4bc4b5028b5e0c49ee3c1



4.タイトルシーンへ戻る(ゲームサイクル化)


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

<タイトルシーンへ戻る>
https://gyazo.com/1715c7f8a7443fb25a4e3c0eef4ec5c9


学習内容


 2D強制横スクロールアクションゲームを製作していくことで、習得することを目標とする技術を記載しておきます。

 また、スクリプトに関しては、たくさん書いて覚える、ということを主軸として記述を行っています。
一見、合理的・機能的には見えない処理もありますが、あくまでも書いて覚えるための手順書になっています。

 そのため、学習状況によっては、もっとスマートに書けるのでは? と感じる方もいると思いますが
そう感じた方は「気づき」があるはずですので、自分なりの記述方法を考えて、よりよいスクリプトを書いていく練習としてこの教材を利用してください。

・背景とゲームオブジェクトとを別々に移動させる強制スクロールと多重スクロールの演出について。
・Physics.Linecastを使った接地判定について。
・プレイヤーのアクションとアニメーションとの同期処理について。
・ゲームサイクルを生成する方法について。
・DoTweenの使用方法について。SequenceやOnComplete、AppendCallBack、Ease、Loopsなどの使用方法について。
・コルーチンの使用方法について。yield return を利用した待機処理について。
・Tweener型を利用した、DoTweenのループ処理の中断方法について
・Listの説明と使い方について。
・CanvasGroupの使い方について。スクリプトからの制御方法について。
・JoyStickを利用したスマホでの操作の実装。



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

・シングルトンのデザインパターンを利用したクラスの作成方法と利点、使い方について。
・幕間のトランジション処理(フェイドイン/フェイドアウト)の実装例
・BGMの切り替え(クロスフェード処理)



重点学習箇所

アニメーション


 スプライト・アニメーションの製作方法と、プレイヤーのアクションとアニメーションの同期方法を学習します。


<動画>
https://gyazo.com/68b5a20f193f3cae0bcb1d66c60d6d40

 プレイヤーは移動やジャンプ、落下といったように、各アクションごとにアニメーションを同期して行います。
またコインや敵がアニメーションしています。これらは複数のスプライトを順番に再生することでアニメーション処理をしています。パラパラ漫画と同じ原理です。
例えば、コインであれば3枚のスプライト画像を1枚目から順番に再生し、それを最後まで再生したら、また最初から再生を繰り返すようにしています。


DoTweenの使い方


 DoTweenの基本的な使用方法について学習します。


 ・敵のループ移動(上下移動を繰り返す)
 ・タイトル表示の橋のアニメ演出、文字のループ点滅
 ・ゴール演出(画面の下から床がゆっくりと移動して表示される)


<動画 敵のループ移動(上下移動を繰り返す)>
https://gyazo.com/28bf50f1e14a7f7d2363c55ffa8225c8


<動画 タイトル表示の橋のアニメ演出、文字のループ点滅>
https://gyazo.com/2def709e01744885f185ec7df13fc14d


<動画 ゴール演出(画面の下から床がゆっくりと移動して表示される)>
https://gyazo.com/366cdfa0dc9b351bd23f8d8ff8d6e31e


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



 以上でこの手順は終了です。

 次は 設計を考える です。

コメントをかく


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

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

Menu



プログラムの基礎学習

コード練習

技術/知識(実装例)

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

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

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

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

レースゲーム(抜粋)

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

3D脱出ゲーム(抜粋)

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

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

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

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

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

VideoPlayer イベント連動の実装例

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

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

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

private



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

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