【Unity】たったの10分で完成!|初めてのゲーム制作編

10minute-game Unity development

Unityは、インストールしたけど、何から始めて良いかわからない…

よくある悩みだと思います。

まずは動くものを作り、成功体験を積み上げることが上達への近道です。

今回は、キーボード操作で、球が転がる「ボールゲーム」を作ります。

ゲーム作り入門者向けの解説内容になっていますので、「手取り早く動くものが作りたい!」という方はぜひ、成功体験を積んでいってくださいね!

専門用語はできる限り、解説していきますが、もしわからない用語がありましたら、用語辞典をご確認ください。

では早速、Uniyエディタを起動して始めていきましょう。

オブジェクトの追加

地面の作成

最初に球が転がる地面を作成します。

CHECKに作業を記載し、下に解説を書いていきます。解説なしで進める方は、CHECKのみご確認ください。

・Sceneビューに、平面オブジェクトを追加
・平面オブジェクト名の変更(Plane→Ground)

GameObject > 3D Object > Plane の順に選択します。
HierarchyウインドウにPlane(平面)が追加されて、Sceneビュー上に平面が出現します。

01_Plane-addon

【オブジェクト名の変更】3パターン

Hierarchyウインドウ上のPlaneを選択した状態で、

  1. (Plane上にカーソルを合わせたまま)左クリック
  2. 右クリックしてメニューから[rename]を選択
  3. Inspectorウインドウの最上部から直接変更
オブジェクトが増えてくると管理が大変になりますので、オブジェクト追加時は、名前を変更する癖を付けていきましょう。

プレイヤーの作成

ゲーム上でプレイするプレイヤーを作成します。今回は、球をプレイヤーにします。

・Sceneビューに、球オブジェクトを追加
・球オブジェクト名の変更(Sphere→Player)

GameObject > 3D Object > Sphere の順に選択します。
HierarchyウインドウにSphere(球)が追加されて、Sceneビュー上に球が出現します。

オブジェクト名の変更方法は先ほどと同様に行ってください。

2_Sphere-add

ここで問題発生!
Playerが、Groundにめり込んでしまっています。これは、平面・球のオブジェクトの中心がScene上の原点に配置されてしまうためです。Playerの方を移動して修正します。

【オブジェクトの移動】2パターン
1.オブジェクトの中心にあるシーンギズモをドラックする
2.InspectorウインドウのTransformで数値を変更する
今回は、1.の方法で移動を実施します。
移動したいオブジェクト(Player)をクリックして、アクティブにします。
オブジェクトのシーンギズモの緑色(Y軸)を上にドラック(クリックしたまま、マウスを移動)して、InspectorウインドウのTransformのPosition_Yが0.5になるように移動します。
3_SceneGIZMO-move
球オブジェクト(Player)はScale_Y:1のため、座標原点に対して、半径0.5の球です。そのため、原点に対して配置されている平面オブジェクトとの干渉を回避するには、Y方向に0.5移動することになります。

オブジェクトを動かす

Unityではオブジェクトを動かすには、「スクリプト」というプログラムを書く必要があります。

スクリプトの追加

HierarchyでPlayerを選択して、Inspectorの下の方にある[Add Component]をクリックします。
4_Script-add-Component
[New Script]を選んで、Nameを入力して、[Create and Add]をクリックします。(Name:PlayerControllerとします)
ProjectウインドウのPlayerにコンポーネントの一つとしてスクリプトが追加されます。
5_Script-add

プログラムを書く

Unityには、プログラムを書く機能はありませんので、Unityと一緒にインストールしたVisualStudioを使ってC#のプログラムを書いていきます。
Projectウインドウのスクリプト(PlayerController)をダブルクリックして、VisualStudioを起動します。骨格は予め書かれているので、必要な部分のみ追加していきます。
6_VisualStudio
  1. usingディレクティブで名前空間を読み込んでいます。ここには複数のクラスが含まれており、これを利用してプログラムを書いていきます。
  2. クラス名です。プログラムの1つの機能をグループにまとめたもの。NewScriptで指定した名前がクラス名になります。
  3. Start関数(メソッド)です。{ }で囲まれた部分がブロックで、この中に処理を書いていきます。スクリプトが実行されると最初の1回だけ呼び出されます。
  4. Update関数(メソッド)です。{ }で囲まれた部分がブロックで、この中に処理を書いていきます。スクリプトが実行されるとフレーム毎に何度も呼び出されます。
実際にプログラムを書いていきます。
ここでは、オブジェクトに力を与える役割を持つRigidbodyコンポーネントとXYZ軸の座標を取得するVector3を使用します。枠部を以下のように入力します。
//(スラッシュ×2)のある行は、コメントアウトと言い、実行はされません。後で読み返した時にわからなくならないように、メモを入力します。
7_Script-edit
入力を終えたら、[ファイル] >[保存]をして、Unityエディタに戻ります。
そして、プログラムで定義したRigidbodyを動かしたいオブジェクト(Player)に追加します。
Inspectorウインドウ下部の[Add Component]から、[Physics]>[Rigidbody]の順にクリックします。
8_Physics_add
9_Rigidbody-add
これで、プログラムの指令が動かしたいオブジェクト(Player)に伝わります。

ゲームの再生

ゲーム実行時に、Gameビューが全画面表示になる設定をします。Gameビューの[Maximize On Play]をクリックしてONにします。
10_Maximize-on-play
設定が完了したら、いよいよゲームを実行します。
Unityエディタ上部にある[▶︎:再生]ボタンをクリックします。
11_Play-button
Gameビューが全画面表示になりましたら、キーボードの矢印キーを操作します。
ボールは転がりましたか?
これで、オブジェクトを自由に動かすことができるようになりました。
このように、Unityではとても簡単に、ゲーム開発ができます。
次回からは、このプロジェクトを改良して色々な機能に触れていきたいと思います。
▼ポチッと応援お願いします▼
にほんブログ村 IT技術ブログ Unityへ
にほんブログ村
タイトルとURLをコピーしました