Unityの超基本的な操作方法が少しずつ分かってきたら、ゲーム画面上でオブジェクトを動く所までを実践してみましょう!これまでに解説した情報を元にして、簡単なゲーム画面を作ってみたいと思います。今回はスフィアで作ったボールが重力によって落下したり、コロコロと転がったりするシーンを作ります。
※3Dでゲームやアニメーションを作る時によくサンプルとして使われます。

単純に知識を詰め込んでもゲームを作れる様にはなりません。ゲーム開発のプロセスやゲーム画面の挙動イメージを持つ事でゲーム作りができる様になります。

今回は、コントローラーやキーボードから、キャラクター等を操作する訳ではありませんが、Unityを使ってゲームを作る流れがイメージできる様になると思います。

Unity:3Dで作る簡単なサンプルゲーム

基本通りにおよそ以下の手順で作成していきましょう。

  1. プロジェクトを作成
  2. シーンを作成
  3. オブジェクトを作成
  4. コンポーネントを作成

プロジェクト・シーン・オブジェクト・コンポーネントの作成方法が分からないという場合はこちらの記事を参考にして下さい。

Unityの基本操作とゲーム開発の流れを解説!

では実際に作成する流れを紹介していきます。

ゲーム作成の準備

まずはプロジェクトを作成しましょう。

■プロジェクト作成後

次にゲーム画面用のシーン作成を行います。プロジェクトを作成した時点でサンプルシーンが作成されていますので、今回はこのシーンに別名を付けて保存したいと思います。

「シーン名」を右クリックして「Save Scene As」を選択すると名前を変更する事ができます。

■名前を付けてシーンを保存

さて、大体の準備はできたのでオブジェクトを作成していきましょう。

オブジェクト作成

さて、今回作るオブジェクトですが、作成結果を先にお見せします!

床や斜面の上にボールを落とす様なイメージでオブジェクトを配置しています。

これを作ってみましょう。この後でオブジェクトと併せてコンポーネントも設定していきますので、ゲーム作りのイメージが湧くと思います。

■完成イメージ

床を作成

まずは床部分を作成します。

こちらは非常に簡単で、Cubeオブジェクトを作成して、大きさを変更しながら床を作れば大丈夫です!

■Cubeで作った床

斜面を作成

ボールが転がる斜面を作成します。

こちらも床と同じ様にCubeを作成して大きさを変更し、最適な場所まで移動、そしてCubeが斜めになる様に回転してあげればOKです。
※斜面を支える土台もこの後で作成していますが、そちらはCubeを作成して「大きさの変更・移動」をするだけなので割愛します。

■Cubeで作った斜面

ボールを作成

最後に斜面を転がるボールを作成します。

こちらはSphereオブジェクトを使用しましょう。Sphereオブジェクトはまん丸の球体を簡単に作れます。

SphereオブジェクトもCubeオブジェクトと作成方法はほぼ同じで以下の手順で作成できます。

  1. Hierarchy(ヒエラルキー)ウィンドウ右クリック
  2. 3D Objectを選択
  3. Sphereを選択

■Sphereの選択画面

以下の様にボールが作成されます。

■Sphereで作成したボール

画面調整(カメラの設定等)

次にカメラの設定もしておきます。

カメラについてはここまで触れてきませんでしたが、Unityのゲーム画面にはカメラというものがあります。

開発の過程ではScene画面を様々な角度から見る事ができますが、実際にゲームを実行した場合はカメラの視点=ゲーム画面になります。

仮に、様々なオブジェクトを配置したとしても、カメラの視点内にオブジェクトが収まっていなければ、ゲーム画面には何も表示されません。ですから、カメラの視点を適切な位置に調整してあげる必要があります。
※ゲーム操作者がカメラの視点を変える様に設定する事も可能です。

Hierarchy(ヒエラルキー)ウィンドウに表示されている「Main Camera」でこのカメラを操作する事ができます。まずは「Main Camera」をクリックしてみましょう。カメラの視点が表示される事が分かります。

■Hierarchy(ヒエラルキー)ウィンドウの「Main Camera」をクリック

「Main Camera」オブジェクトの移動方法は普通のオブジェクトを同じです。視点の方向に気を付けて最適な方向に移動をしてみましょう。

ちなみに、「Game」ウィンドウに切り替える事で実際のゲーム画面のイメージを表示できます。

■「Game」ウィンドウで位置・視点を確認

コンポーネントの設定

コンポーネントを設定していきます。

完成させるために以下の事をやってみます。

  • 各オブジェクトに色を設定する
  • ボールに重力を設定する
  • ボールが他のオブジェクトにぶつかった時に跳ね返る様な設定をする

各オブジェクトに色を設定

次に各オブジェクトに色を設定します。まずはボールに青い色を設定してみます。

Project(プロジェクト)ウィンドウCreateをクリックします。その後、Materialをクリックします。

■Createをクリック後、Materialをクリック

そうすると、Project(プロジェクト)ウィンドウにMaterialに関するコンポーネントが作成されます。

このコンポーネントで、オブジェクトに色を設定する事ができます。

Materialの作成時に名前を付ける事ができるので、ここでは「color1」としておきます。

■Materialが作成される(名前:color1)

作成したMaterial(名前:color1)のInspector(インスペクター)ウィンドウを見てみましょう。

Main Mapsと記載された箇所にAlbedoと記述されています。その脇の箱(以下の画面では白い箱)をクリックすると色を選択できます。

■Material(名前:color1)のInspector(インスペクター)ウィンドウ

青い色を設定したら、Project(プロジェクト)ウィンドウMaterial(名前:color1)Hierarchy(ヒエラルキー)ウィンドウSphere(名前:Sphere_Ball)にドラッグアンドドロップします。そうすると、ボールが青になると思います。

■Material(名前:color1)をSphere(名前:Sphere_Ball)にドラッグアンドドロップ※ボールが青になる

同様に床や斜面にも、それぞれのMaterialを作成して同様の操作を繰り返します。

そうすると各オブジェクトに色を設定する事ができると思います。

■各オブジェクトに色を設定

ボールに重力を付ける

次にボールに重力を付けます。

このままゲームを実行(画面真ん中上部の再生ボタンを押す)しても、ボールは一切動きません。オブジェクトはそのまま固定されているのです。

ここで、ボールに重力を設定してあげると、ボールが下に向かって落ちるという動きを付け加える事ができます。

ボールのオブジェクト(名前:Sphere_Ball)を選択して、Inspector(インスペクター)ウィンドウを開きましょう。

Inspector(インスペクター)ウィンドウにあるAdd Componentをクリックします。

■Add Componentをクリック

コンポーネントの中からPhysicsを選択して、RigidBodyを選択しましょう。

■RigidBodyを選択

これでボールに重力が設定されます。

本来は細かい設定等が必要になるのですが、ここでは重力が設定されるんだな~と思っていただければOKです。

ボールが跳ね返る設定

次にボールが落下して他のオブジェクトに衝突した際に跳ね返る設定を行います。

Project(プロジェクト)ウィンドウCreateをクリックします。その後、Physic Materialをクリックします。

■Createをクリック後、Physic Materialをクリック

Inspector(インスペクター)ウィンドウにあるPhysic Materialを見て、Bouncinessの値を「1」に設定します。
※この値によって跳ね返りの勢いが変わってきます。

■Physic MaterialのBouncinessを設定

Unityを実行してみる

オブジェクトを作成したり、コンポーネントの設定をしたり、ちょっと開発っぽい事をしましたね。

いよいよ実行をしてみましょう!!

Unity画面の上部にある実行ボタンを押すと、以下の様に設定したオブジェクト達が動き始めます。

■実行画面

自分が作ったものが動き出すというのは、なんだか感動ものですね。

昔のゲームはこれらの動作をさせるだけでも非常に大変でしたが、今はUnityがゲームに必要な基本機能を備えているので簡単にゲームが作れてしまいます。

まとめ

簡単ではありますが、Unityで3Dのボールを作成して、そのボールがコロコロと転がっていくゲーム(というよりアニメーション)を作成しました。

簡単とはいえ、ゲームを開発する流れが理解できる様になりますので、しっかりとプロセスを押さえておいて下さい。

今回の様に重力を設定したり、跳ね返りの設定をしたりする事でゲームの中の世界が躍動していくのが分かります。