Unity勉強会0527
これはプログラミング初心者向けのゲーム制作勉強会資料です
プログラミング初心者でも扱えるUnityを使って、実際に3Dゲームを作る方法を学んでもらおうと思います
この記事ではUnityのバージョンインストールから簡単な3Dゲームを作るまでを説明します
実際に頭を使いながら手を動かしてもらいたいので、一部説明を省略しています
それでは、よろしくお願いします
Unityって?
- 2D/3Dゲームが簡単に作ることができるゲーム制作エンジン
- それ以外にも、プロジェクションマッピングや最近話題のVR/AR、シミュレーションなどいろんな場面で利用されている
- とりあえずゲームが作りたいなら、Unityを使っておけば間違いない
ゲーム制作の準備
Unityのバージョンインストールをしよう
1. UnityHubを開く
↓こんな感じ
2. 左側にある「installs」を選択する
3. 右上の青いボタン「install Editor」からバージョンを選択する
今回インストールするのは 2021.3.45f1
(今回は弊学の授業のカリキュラムに合わせているのでこのようなバージョン選定になってます)
注:Windowsの方はIntelを、Macの方は各自でチップを確認してからインストールすること!!
4. 追加モジュールはいらないので何にもチェックを付けずに右下の青いボタン「install」を押す
5. バージョンのインストールが始まるので待ち
6. バージョンが追加されたら準備完了!!
プロジェクトを作成しよう
1. UnityHubを開く
2. 右上の青いボタン「New project」を押す
3. 今回は3Dゲームを作るので「3D」を選択して右下の青いボタン「Create project」を押す
Hello Unity!!
Unityの画面について知ろう
画面の説明
左 上:ヒエラルキーウィンドウ - 画面上のオブジェクトを管理する
中央上:シーンビュー/ゲームビュー - オブジェクトを配置したりテストしたりする
右 :インスペクターウィンドウ - オブジェクトの設定をする
中央下:プロジェクトウィンドウ - フォルダ、スクリプト、オブジェクトなどを管理
ちなみにシーンビューの上にある三角ボタンはプロジェクト実行ボタン
オブジェクトを作成してみよう
ヒエラルキーウィンドウを右クリック
3D object > Cube を選択
キューブ生成 オメデトー
他の3Dオブジェクト紹介
Cube:立方体/直方体
Sphere:球
Capsule:カプセル
Cylinder:円柱
Plane:板
Quad:画像貼ったりするときに使う
めっちゃ簡単にツールバーを説明
よく使うのは上から1番目と2番目
上から1番目はカメラの座標を変更する
ちなみにタッチパッドを二本指で触ったり、右クリックしながらカーソルを動かすとカメラが回転
上から2番目は選択しているオブジェクトの座標移動
プレイヤーを作ってみよう
0. 先に床を作っておく
省略(どんな方法でもいいよ、わからなかったら聞いてね!)
1. Sphereオブジェクトを作成
省略(わからなかったら聞いてね!)
2. 物理演算コンポーネントを持たせる
- ヒエラルキーウィンドウでSphereを選択する
- インスペクターウィンドウの一番下にある「Add Component」
- 「Rigid body」を追加
- 完了
この段階で実行するとSphereが重力に引っ張られて落ちる
3. スクリプトを書く
実際にSphereを操作するためにプログラミングしてみるよ
- ↓これをPlayerスクリプトにコピペ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
if(Input.GetKey(KeyCode.W))
{
rb.AddForce(Vector3.forward);
}
if(Input.GetKey(KeyCode.S))
{
rb.AddForce(Vector3.back);
}
if(Input.GetKey(KeyCode.A))
{
rb.AddForce(Vector3.left);
}
if(Input.GetKey(KeyCode.D))
{
rb.AddForce(Vector3.right);
}
}
}
4. スクリプトをオブジェクトに持たせる
PlayerスクリプトをSphereにドラッグ&ドロップ
この時点で一度実行してみよう
WASDキーでSphereが移動するはず、、、
カメラをプレイヤーに追従させよう
1. Cameraスクリプトの作成
省略(わからなかったら聞いてね!)
2. カメラにスクリプトを持たせる
スクリプトはこれ↓
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Camera : MonoBehaviour
{
private GameObject player;
void Start()
{
player = GameObject.FindGameObjectWithTag("Player");
transform.LookAt(player.transform);
}
void Update()
{
transform.position = new Vector3(player.transform.position.x, player.transform.position.y + 2, player.transform.position.z - 8);
transform.LookAt(player.transform);
}
}
3. Player.csの修正
カメラに対応させるためn修正
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
private Rigidbody rb;
private GameObject mainCamera;
void Start()
{
rb = GetComponent<Rigidbody>();
mainCamera = GameObject.FindGameObjectWithTag("MainCamera");
}
void Update()
{
if(Input.GetKey(KeyCode.W))
{
rb.AddForce(mainCamera.transform.forward);
}
if(Input.GetKey(KeyCode.S))
{
rb.AddForce(-mainCamera.transform.forward);
}
if(Input.GetKey(KeyCode.A))
{
rb.AddForce(-mainCamera.transform.right);
}
if(Input.GetKey(KeyCode.D))
{
rb.AddForce(mainCamera.transform.right);
}
}
}
4. SphereのTagをPlayerに変更
ヒエラルキーウィンドウでSphereを選択 > インスペクターウィンドウの上の方にある「Tag」を選択 > Playerに設定
ここで実行してみるとWASDキーでSphereが操作できて、移
動方向にカメラが向く、、、はず、、、、、
ゲームを作ってみよう!!
今まで学んだことを活かして自分のオリジナルゲームを作ってみよう
※ いろいろできすぎちゃって暇な人へ、
こんなもの実装してみたらどう??
- 動く床/壁
- プレイヤーのジャンプ
- 十字キーでカメラ操作
- ゴール判定
- 落下/ゲームオーバー判定
こんなことができる
ひたすら上に登るゲーム(ジャンプ必要)
迷路(カメラ操作必要)
さいごに
ここまで読んでいただき、ありがとうございました
今回はUnityのバージョンインストールから簡単な3Dゲームの作成までを説明しました
もしゲーム制作に興味があったり、将来ゲーム業界に進みたいという人がいれば、引き続きUnityを学んでもらえたらいいかなと思います
また、この記事や勉強会が好評でしたら次の開催があるかもしれないです、気分次第です
以上でUnity勉強会の資料を終わりとします