Unityでゲーム制作にチャレンジ!子どもの吸収力ってホントすごい…。
こんばんは、ゾノ( @ozonosho )です。
66日間ブログチャレンジは今日で13日目!
今日はフリースクール『Riz』にて毎週恒例のゲーム作り講座をおこないました。
講座とは言いつつも、僕自身ゲーム制作は未経験なので実際は子どもと一緒に楽しく試行錯誤する時間です笑
今日の講座が終わったあとに子どもが誇らしそうに「僕が作ったゲームをやってみて!」と他のスタッフに話している姿がなんとも微笑ましかったので、今日はゲーム作り講座の様子について書こうと思います。
ゲーム制作は「はじめてのUnity」を参考に実施!
今回ゲーム制作には「Unity」というゲーム開発プラットフォームを利用しています。
Unityの中には3Dゲームや2Dゲームをつくるための基本的なパーツや処理が用意されているため、それらを組み合わせたりカスタマイズしたりすることで1から作るよりも簡単にゲームを作ることができます。
Unityで開発したゲームはPCで遊べるのはもちろん、PlayStation3&4、Xbox360、WiiUなどの家庭用ゲーム機、さらにはスマホでも遊ぶことができるので、Unityを利用すれば実質的にほぼすべての端末のゲームを制作することができます。
さらに趣味レベルなら無料プランでも十分に開発することができるので、Unityはゲーム制作に興味ある方にとって必須の環境と言えるでしょう。
Unityの公式サイトではこれからUnityを勉強するための方に「はじめてのUnity」というページを用意してくれています。
ここを読む限り「まずは玉転がしゲームを作ってみよう!」とのことなので、今は玉転がしゲームにチャレンジしているところです!
4回目の講座で「玉転がしゲーム」は間もなく完成!
(実際の制作画面)
上記画面の左上が自分の作成したフィールドです。
地面や壁やボールといったオブジェクトはUnityである程度用意してくれているので、その中から使用するものを選び、色や大きさを設定し、そのうえで各オブジェクトに動きを与える処理を自分でプログラムしていきます。
ボールを転がすためには、ボールのオブジェクトにたいして「上下キーを押したら上下に進む」「左右キーを押したら左右に進む」という動きを与える必要があるので、そのプログラム部分を子どもに解説しながら一緒に書いてみました。
実際のプログラムがこちら。
using UnityEngine; using System.Collections; public class PlayerController : MonoBehaviour { void FixedUpdate () { //上下左右キーの入力を受け取り格納する float x = Input.GetAxis("Horizontal"); float z = Input.GetAxis("Vertical"); //オブジェクトに力を加える処理を持つRigidbodyコンポーネントを取得 Rigidbody rigidbody = GetComponent<Rigidbody>(); //キー入力された値の分だけx軸(横)とz軸(奥)に力を加える rigidbody.AddForce(x, 0, z); } }
要点としては、
①プレイヤーの上下左右キーの入力を受け取る(上が押されたら+1のようなイメージ)
②受け取った値の分だけ自分自身のオブジェクト(ここではボール)に力を与える
という処理になっています。
これによって上キーを押すとボールに奥へ進む力が加わるので前に進むというわけです。
プログラミング未経験の人からすると直感的に理解するのが難しい部分だと思うのですが、子どもは驚くほどパッと理解するのでホントすごいなぁと感じます。
これが若さの力なのか…w
そんなこんなで講座は順調に進んで、ボールがピンに触れると画面上からピンが消える処理を加えたり、ピンの残り数を画面に表示させる処理を加えたりして、玉転がしゲームは間もなく完成というところまできました。
できないことができるようになる喜びを誰かと一緒に体験できるのは嬉しい!
最初にも書きましたが、今日の講座が終わったあとに子どもが誇らしそうに「僕が作ったゲームをやってみて」と他のスタッフに話している姿がなんとも微笑ましかったんですよね。
あと、その気持ちすげー分かる!って思いました笑
僕自身もゲーム制作未経験なので思ったとおりにゲームが動いた瞬間はひそかに「やった!」ってなるし、できなかったことができるようになるという喜びを誰かと一緒に体験できるのは嬉しいなぁと感じます。
玉転がしゲームはあと1~2回で完成するので、次は2Dシューティングゲーム。そして、その次は子ども自身が作りたいゲームを制作する予定!
次回も良い講座ができるように頑張ろう☆