たった1時間で完成!
『はじめての3D玉転がし』をつくってゲームクリエイター体験!
画面を見ながらマネするだけ!小学生でも自分の手で3Dゲームが作れます。
「Unityをダウンロードしたけれど、次に何をすればいいのか分からない…」
「難しそうな画面が出てきて、自分や子どもに扱えるか不安…」
大丈夫です!Unityでのゲーム作りは、難しい数学の計算をゼロから書く必要はありません。基本は「画面に形を置く」→「物理のルールをつける」→「命令書を渡す」の3つの作業だけです。
この記事では、超初心者や小学生向けに、キーボードでコロコロ動かす「3D玉転がしゲーム」の作り方を画面を見ながらマネできるステップ形式で徹底解説します!
目次
1. 今回作る「3D玉転がしゲーム」ってどんなゲーム?
まずは、今回作るゲームの完成イメージをつかみましょう!キーボードの矢印キーを使ってボールを操作し、ステージから落ちないように動かすアクションゲームです。
ゲームのルールと完成イメージ
操作はとてもシンプル!矢印キーを押すとボールがコロコロと前に転がります。落ちたらゲームオーバー!舞台から落ちないようにボールをコントロールします。
このゲーム作りで学べる3つのこと
- 3Dモデル(床や玉)を置く基本テクニック
- 重力や壁の当たり判定をつける方法
- キーボード操作で動かすC#プログラムの書き方
【画像挿入箇所:完成した「玉転がしゲーム」のプレイ動画/キャプチャ画面】
※青い床の上で赤いボールがコロコロ転がるイメージ画面
2. 【準備】Unityを起動して新しい世界を作ろう
まずはUnityを起動して、新しいゲームを作るための真っ白なキャンバス(プロジェクト)を開きましょう!
ステップ①:Unity Hubを開いてプロジェクトを作ろう
- 「Unity Hub」を起動し、右上の青いボタン「新しいプロジェクト」をクリックします。
- テンプレートの中から「3D」(または「3D Core」)を選びます。
- プロジェクト名に「
MyFirstGame」と入力し、「プロジェクトを作成」を押します。
ステップ②:画面の見方を覚えよう(4つの大事な部屋)
画面が開くと難しそうな記号がいっぱい出てきますが、覚える部屋はたったの4つだけです!
| 部屋の名前(表示名) | わかりやすい例え | ここでやること |
|---|---|---|
| ヒエラルキー (Hierarchy) | 舞台裏の出演者リスト | ゲームに登場するアイテム(床、ボール、照明など)の一覧表。 |
| シーン (Scene) | 撮影用の「舞台」 | 3Dのアイテムを置いたり、場所を調整したり作業する場所。 |
| インスペクター (Inspector) ★最重要 | ステータス・設定ノート | 選んだアイテムの大きさ、色、重力などの細かい設定を調整する場所。 |
| プロジェクト (Project) | お道具箱(材料置き場) | 使いたい画像、音データ、プログラムのファイルをしまっておく場所。 |
\ 準備ができたら、いよいよ3Dのアイテムを置くよ! /
3. 【見た目】ゲームの舞台と主人公(玉)を置こう
ここからはプラモデルを作るような感覚です!床と主人公のボールを置く作業に入ります。
ステップ①:床(Plane)を作ろう
- 「ヒエラルキー」の何もないところを右クリック ➔ 3D Object ➔ Plane(プレーン) を選びます。
- 画面の中央に四角い白い「床」が現れます。
- 右側のインスペクター画面にある「Scale(大きさ)」を X:2, Y:1, Z:2 に変更して、少し広い床に広げてみましょう!
【画像挿入箇所:ヒエラルキーで右クリックして3D Object➔Planeを選ぶ手順キャプチャ】
ステップ②:主人公になるボール(Sphere)を置こう
- 同じように右クリック ➔ 3D Object ➔ Sphere(スフィア) を選びます。
- これで球体(ボール)が出現しました!名前を「Player」に変更しておくと分かりやすいです。
- インスペクターの「Position(位置)」のYの数値を「1」にして、床から少し浮かせてみましょう。
4. 【物理ルール】ボールに「重力」と「転がる力」を与えよう
このままだと、上にある再生ボタン(▶)を押してもボールは宙に浮いたまま動きません。現実と同じように「落っこちるルール(重力)」をセットしましょう!
ステップ①:お道具シール「Rigidbody(リジッドボディ)」を貼る
- ヒエラルキーで「Player(ボール)」をクリックして選びます。
- 右側のインスペクターの一番下にある「Add Component(コンポーネントを追加)」ボタンを押します。
- 検索欄に「
Rigidbody」と入力して選びます。
ここで一度動かしてみよう!
画面上中央にある再生ボタン(▶)を押してみてください。空中からボールが「トントン」と床に落ちて止まりましたか?これが物理ルール(重力)の力です!確認できたら、もう一度再生ボタンを押して停止させます。
ステップ②:色(Material)をつけてカッコよくしよう
真っ白だと見にくいので、ボールに赤色を塗ってみましょう!
- 画面下の「プロジェクト(お道具箱)」で右クリック ➔ Create ➔ Material を選びます。
- 右側のインスペクターにある「Albedo」の横の白い四角を押して、好きな赤色を選びます。
- 出来上がった赤いマテリアルを、ドラッグ&ドロップでボールの上に持っていけば変身完了です!
\ いよいよ仕上げ!プログラムでボールをコントロールしよう /
5. 【プログラム】キーボードでボールを動かそう!
最後は「矢印キーを押したら動いてね」というロボットへの命令書(スクリプト)を書きます。コードはそのまま真似して書き写すだけでOKです!
ステップ①:命令書(C#スクリプト)を作ろう
「プロジェクト(お道具箱)」で右クリック ➔ Create ➔ C# Script を選び、名前を「PlayerController」と入力します。(※スペルを間違えないように注意!)
ステップ②:魔法の言葉(コード)を写して書いてみよう
作成した「PlayerController」をダブルクリックして開き、以下のコードをそのまま貼り付けて保存(Ctrl + S または Command + S)しましょう!
using UnityEngine;
public class PlayerController : MonoBehaviour
{
private Rigidbody rb;
void Start()
{
// ボールの重力コンポーネントを取得するよ
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
// キーボードの矢印キーの入力を受けるよ
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
// 移動する方向を決めるよ
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
// ★力を加えてボールを転がすよ!(AddForce=押す力)
rb.AddForce(movement * 10.0f);
}
}
コードのワンポイント解説
一番大切なのは rb.AddForce() です!これはボールに対して「手でポンと力(Force)を押す」という命令です。キーボードの矢印を押した方向に力が伝わってボールが転がります。
保存したらUnity画面に戻り、出来上がった「PlayerController」をマウスで掴んで、Player(ボール)に直接ドラッグ&ドロップして貼り付けます。
再生ボタン(▶)を押して動かしてみよう!
キーボードの矢印キー(またはW, A, S, Dキー)を押してみてください。ボールが自由自在にコロコロ転がったら、君だけの3Dゲームが完成です!おめでとう!
6. トラブル解決(FAQ):うまく動かないときはここをチェック!
プロのクリエイターでも最初は必ず失敗します!うまく動かないときは、次のポイントを確認してみましょう。
Q. ゲームを再生した瞬間にボールが落ちて消えちゃう!
ボールの位置が床の外(すき間)に出ているかもしれません。ヒエラルキーでPlayerを選び、インスペクターのPositionを「X:0, Y:1, Z:0」にリセットしてみましょう。
Q. 矢印キーを押してもボールが全く動かない…
スクリプトがボールにくっついていない可能性があります。ヒエラルキーで「Player」を選んだとき、インスペクターの一番下に「PlayerController」が表示されているかチェックしてください!
Q. コードを入力したら赤いエラーが出た!
英語の大文字・小文字のちがい(例:addforce ではなく AddForce)や、最後の「;(セミコロン)」を忘れていないか確認してみましょう。
7. まとめ:アレンジして君だけのオリジナルゲームに改造しよう!
無事にボールは転がりましたか?一度基本が完成すれば、あとはアイデア次第でいくらでもゲームを面白く改造できます!
次にチャレンジしたい改造アイデア3選
床のまわりに壁(Cube)を作る: ボールが下に落ちないようにフェンスを立ててみよう!
黄色いコインを置く: 触れたら消えるコインを散りばめて宝探しゲームにしよう!
ジャンプ機能をつける: スペースキーを押したら跳ねる仕組みを追加してみよう!