見出し画像

スマホで遊べる!Unityジャンプゲーム制作講座 解説編 | Input System・時間管理・ステージ管理を学ぶ

本講座は、Unityの基本操作やC#の基礎を学んだ方を対象にした、スマホ対応ジャンプゲーム制作講座です。

UnityやC#の基礎を学習したい方は、こちらのマガジンがおすすめです。

「次は、実際に遊べるゲームを完成させてみたい」
「作ったゲームをスマートフォンで動かしてみたい」

と思ったことはありませんか?

本講座では、主人公をジャンプで上空へ進ませ、さまざまな仕掛けを乗り越えてゴールを目指す、スマホ対応のジャンプゲームを制作します。

全8回の記事を順番に進めることで、プレイヤーの移動やジャンプだけでなく、ブロックの自動配置、動く足場、障害物、ステージ管理、クリア演出まで実装します。

ご興味がある方は、こちらのマガジン8回セットに空くセ氏してみてください。

最終的には、Androidスマートフォンで実際に遊べる、1本のゲームとして完成させることが目標です。


さまざまな仕掛けを持つブロックを作成

ゲームには、通常の足場だけでなく、さまざまな特徴を持つブロックが登場します。

  • 滑りやすいブロック

  • 高く跳ねるブロック

  • 幅の狭いブロック

  • 下から通過できないブロック

  • 左右に動くブロック

  • 円を描いて動くブロック

  • 乗ると時間差で落下するブロック

  • 一定時間ごとに点滅するブロック

講座が進むにつれて新しい仕掛けが増え、ゲームらしいステージへと少しずつ発展していきます。

単に完成済みのコードを書き写すのではなく、各機能がどのような仕組みで動いているのかを確認しながら制作します。


Androidスマートフォンで実際に動かす

本講座では、Android端末での実機確認を前提に進めます。

Unity上で動作を確認するだけでなく、スマートフォン向けの操作ボタンを作成し、Android端末へゲームをインストールして遊べる状態を目指します。

iPhone向けのビルドにはMacやXcodeなどの環境が必要になるため、本講座では、Windows環境でも進めやすいAndroidビルドを中心に解説します。

PCのキーボード操作とスマートフォンの画面操作の両方に対応させるため、制作途中の動作確認も行いやすくなっています。


この講座で身につくこと

本講座では、1本のゲームを制作しながら、次のようなUnityの機能やプログラミングを学びます。

  • Input Systemを使ったプレイヤー操作

  • PCとスマートフォンの両方に対応した入力処理

  • スマホ用の左右移動・ジャンプボタンの作成

  • Androidビルド環境の構築と実機確認

  • Rigidbody2DやCollider2Dを使った物理処理

  • Physics Material 2Dを使った滑りや反発の表現

  • 配列とfor文を使ったブロックの自動配置

  • InstantiateによるPrefabの生成

  • Time.deltaTimeを使った時間管理

  • 三角関数を使ったブロックの移動

  • コルーチンを使った時間差処理

  • ステージごとの難易度管理

  • スタート・ステージクリア・ゲームクリアシーンの作成

個別に学ぶと使いどころが分かりにくい機能も、実際のゲームに組み込むことで、その役割を理解しやすくなります。


「動かす」だけでなく「遊びやすさ」も考える

ゲームは、キャラクターが動けば完成というわけではありません。

本講座では、プログラムを作成するだけでなく、

どうすればゲームとして遊びやすくなるのか
どうすればスマートフォンでも操作しやすくなるのか

という点も考えながら制作を進めます。

たとえば、プレイヤーの移動範囲、ジャンプできる条件、カメラの追従方法、ブロックの配置間隔、スマートフォン用ボタンの押しやすさなども調整します。

ゲームを作る技術だけでなく、実際に遊ぶ人の立場で考えることも、本講座の大切なポイントです。


こんな方におすすめ

この講座は、次のような方におすすめです。

  • Unityの初級講座を終えて、次のステップへ進みたい方

  • スマートフォンで遊べるゲームを作ってみたい方

  • Input Systemを使った操作方法を学びたい方

  • Rigidbody2DやCollider2Dをゲーム内で活用したい方

  • Time.deltaTimeやコルーチンの使い方を学びたい方

  • 三角関数をゲーム内の動きに利用してみたい方

  • ブロックや障害物を使ったジャンプゲームを作りたい方

  • Android端末で自作ゲームを動かしてみたい方

  • 複数のステージを持つゲームを完成させたい方

UnityやC#を初めて使う方向けではなく、基本的な操作やスクリプト作成を経験した方を対象とした、ステップアップ講座です。


講座のゴール

全8回を終えるころには、Androidスマートフォンで遊べるジャンプゲームが完成します。

ステージごとに登場するブロックの種類や数が変わり、プレイヤーはさまざまな仕掛けや障害物を乗り越えながらゴールを目指します。

ゴールへ到達するとステージクリア画面へ移動し、次のステージへ進みます。最後のステージをクリアすると、ゲームクリア画面が表示されます。

「キャラクターを動かせる」だけで終わらず、

  • ステージ構成

  • スマートフォンでの操作

  • 難易度の変化

  • 障害物や特殊ブロック

  • ステージクリア判定

  • シーンの切り替え

  • 最後まで遊べるゲームの流れ

まで含めて、1本の作品として仕上げていきます。


全8回の講座内容

第1回|Androidビルド環境とInput Systemの準備

最初に、Androidスマートフォン向けのゲームを制作するための環境を整えます。
また、新しい入力システムであるInput Systemを導入し、プレイヤー操作に必要な設定を行います。

主な内容

  • Android Build Supportの確認

  • Android SDK・NDK・OpenJDKの確認

  • Android向けビルド設定

  • Input Systemの導入

  • Action Mapの作成

  • Move・Jump Actionの設定

  • InputActionReferenceの基本


第2回|Playerの移動・ジャンプ・スマホ操作

Playerを左右に移動させ、ジャンプできるようにします。

キーボードだけでなく、スマートフォン画面に表示したボタンからも操作できるようにし、PCとスマートフォンの両方に対応させます。

主な内容

  • Playerの左右移動

  • ジャンプ処理の作成

  • 接地判定の作成

  • アニメーションとの連携

  • スマホ用UIボタンの作成

  • 左・右・ジャンプボタンの操作

  • PC操作とスマホ操作の両対応

  • Playerの移動範囲の制限


第3回|特徴の異なる物理ブロックを作る

ジャンプゲームの足場となる、さまざまなブロックを作成します。

Physics Material 2DやPlatform Effector 2Dを利用し、滑る、跳ねる、下から通過できるといった違いを表現します。

主な内容

  • BaseBlockの作成

  • HardBlockの作成

  • NarrowBlockの作成

  • SlipBlockの作成

  • BoundBlockの作成

  • GoalBlockの作成

  • Physics Material 2Dの活用

  • Platform Effector 2Dによるすり抜け設定

  • TagとLayerの整理

  • 背景画像の作成

  • カメラ追従プログラムの作成


第4回|配列を使ってブロックを自動配置する

ブロックを1つずつ手作業で配置するのではなく、スクリプトから自動で生成します。

配列、for文、Instantiate、Random.Rangeを組み合わせ、複数種類のブロックを上空へ並べていきます。

主な内容

  • ブロックPrefabの準備

  • 配列によるブロック管理

  • for文を使った繰り返し処理

  • Instantiateによるブロック生成

  • Random.Rangeによる位置調整

  • 上空に向かってブロックを並べる処理

  • 最後にGoalBlockを配置する処理


第5回|Time.deltaTimeで動くブロックを作る

静止したブロックだけでなく、左右や円形に動くブロックを作成します。

Time.deltaTimeを使い、パソコンやスマートフォンの性能に左右されにくい、時間を基準にした動きを実装します。

主な内容

  • SlideBlockの作成

  • 三角関数を使った左右移動

  • CircleBlockの作成

  • 円を描くブロックの動き

  • Time.deltaTimeによる時間管理

  • 動くブロック上での着地判定


第6回|コルーチンでFallBlockを作る

Playerが乗ったあと、一定時間が経過すると落下するFallBlockを作成します。

コルーチンを利用し、「1秒待ってから処理する」といった時間差のある動きを実装します。

主な内容

  • FallBlockの作成

  • 乗ってから1秒後に落下する処理

  • StartCoroutineの使い方

  • IEnumeratorの基本

  • WaitForSecondsによる待機処理

  • 一度だけ処理するためのフラグ管理

  • Time.deltaTimeとコルーチンの違い


第7回|BlinkBlockと障害物を追加する

一定時間ごとに表示と非表示を繰り返すBlinkBlockを作成します。

さらに、鳥、UFO、飛行機などの障害物を追加し、避けながら進むゲームらしいステージへ発展させます。

主な内容

  • BlinkBlockの作成

  • 表示・非表示の切り替え

  • Time.deltaTimeを使った時間管理の復習

  • Collider2DのON・OFF

  • 鳥・UFO・飛行機などの障害物作成

  • Enemyの移動処理

  • Layer Collision Matrixの設定

  • Playerとの接触判定


第8回|ステージ管理とシーン演出

最後に、複数ステージを管理する仕組みを作成します。

ステージが進むにつれてブロックの数や種類が変わるようにし、スタート画面、ステージクリア画面、ゲームクリア画面も追加します。

主な内容

  • ステージ番号の管理

  • ステージごとのブロック数の変更

  • ステージごとのブロック種類の変更

  • クリア判定の作成

  • スタートシーンの作成

  • ステージクリアシーンの作成

  • ゲームクリアシーンの作成

  • 次のステージへ進むボタンの作成

  • Android実機での最終確認


料金とサポートについて

本講座は、全8回セットで5,980円です。

ご購入いただいた方には、講座を進める中で分からない点や、記事どおりに進めても動作しない場合などについて、メール等によるサポートを行います。

記事は順次公開・更新予定です。マガジンをご購入いただくと、購入後に追加された記事も引き続きお読みいただけます。

※サポート内容や連絡方法、回答までの目安などは、あらかじめ案内しておくと購入者にも分かりやすくなります。


Unityで「自分のゲーム」を完成させよう

Unityの機能を個別に学んでいると、

「この機能を、実際のゲームでどう使えばよいのだろう?」

と迷うことがあります。

本講座では、Input System、物理処理、配列、三角関数、Time.deltaTime、コルーチン、ステージ管理といった機能を、1本のジャンプゲームの中に組み込んでいきます。

学んだ機能が実際に動き、ゲームが少しずつ完成に近づいていく過程を楽しみながら進められる講座です。

Unityの基礎を学び終えた方は、次のステップとして、スマートフォンで遊べるゲーム制作に挑戦してみましょう。

ここから先は

0字
Unityの基礎を学んだ次のステップとして、Androidスマホで遊べるジャンプゲームを全8回で完成させます。 Input System、スマホUI、物理演算、配列による自動配置、Time.deltaTime、三角関数、コルーチン、ステージ管理まで、ゲーム制作で役立つ仕組みを実践的に学べます。

Unityの基本操作やC#の基礎を学んだ方向けの、Androidスマホ対応ジャンプゲーム制作講座です。全8回を順番に進めながら、Input…

よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!