こんにちは!
子供向けプログラミング教室kobakoスタッフです!
最近Unity(ユニティ)の学習相談をよく受けます。
他のプログラミング教室でもUnityを教えているところはちらほらとあるようですね。
今回はプログラミング教室kobakoとしての立場として、小中学生のUnity学習についてお話ししたいと思います。
ところで・・・
この記事を書いている人はだれ?
子供向けプログラミング教室です!
JavaScriptを使ったゲームプログラミング、ゲーム企画が得意な教室です。
プログラミング教室で実際に使用している、学習成果のある教材をYouTube無料配信しています。
Unity(ユニティ)とは?
Unityというのは、ゲームを作るのに特化したゲーム開発ソフトです。
よく、Unityをプログラミング言語として扱っているところもあるのですが、厳密には、
C#(シーシャープ)というプログラミング言語を使って、ゲームを作りやすくしたのがUnityというソフトです。
ソフトなので、お使いのパソコンにインストールして使います。
Unityはどんなことができるのか?
Unityは最近では主に、スマホゲームの開発に使われる場面が非常に多いです。
本来、iPhoneやAndroidといったスマホアプリは、SwiftやJavaといった別のプログラミング言語で、別々に作らないといけません。
ですが、Unityはそこをうまくコンバートしてくれて、1つゲームを作ったら、iPhoneやAndroid、さらにnintendo switchまで対応してくれます。
これをマルチプラットフォームといったりします。
また、カジュアルなゲームから、本格的な3Dゲーム。ちょっと懐かしいレトロゲームまでなんでもできちゃうのがUnityの良いところです。
プログラミング不要でゲームが作れるって本当?
「Unityはプログラミングしないでゲームが作れてしまう」
という声を聞いたりします。
それは半分当たっていて、半分外れています。
Unityには物理エンジンと呼ばれる、現実世界の物理挙動をシミュレートした機能が備わっています。
例えば、ボールを投げたら、リアルな軌道を描いてボールが飛んでいくわけです。
床に置いたボールが、床を傾けたら、リアルにボールが転がっていきます。
こういった物理エンジンが自然と備わっているので、
これだけでもちょっとゲームっぽくなります。
ですが、ゲームっぽいだけであり、それ以上のことはやはり、プログラミングが必要になります。
おそらくですが、Unityを推している子供向けプログラミング教室でも、
物理エンジンで玉転がしのようなものを作って終わり
というのが実情ではないでしょうか。
難しいので仕方ありません。
Unityを使えば面白いゲームが作れる、わけではない
Unityはいろんなゲームに使われています。
だから、Unityを使えば面白いゲームが作れるのでは?と思われることも多くあります。
どちらかというと、Unityは、
面白いゲームをさらに面白くする
ツールかなぁと個人的には思っています。
Unityは特に演出が得意です。
演出はゲームにおいて重要な要素です。
面白いゲームを、さらに面白くする演出
これが得意なのがUnityなのであって、
簡単に面白いゲームを作れるのがUnity、というわけではないかなぁと思っています。
プログラミング初心者からUnityを覚えられるのか
正直言って、プログラミング初心者がUnityを学習するのは、非常に難しいです。
オブジェクト指向、コンポーネントパターン、アニメーション、GUI、
こういった要素がふんだんに含まれており、いきなり高いハードルが待ち構えています。
例えるなら、
英単語も知らない人がいきなり英語の論文を読み始めようとする
ようなものかなぁと思います。
泣きながらUnityを勉強した思い出
僕はUnityを泣きながら勉強しました。
仕事でPHPやJavaScriptなどをプログラムするエンジニアでしたが、
そんな僕が、
「わからない・・・わからない・・・難しすぎる・・・」
と泣きながら勉強して、少しずつ少しずつものにしていったのがUnityです。
はっきりって、Unityは、
プログラミング経験者でも難しい
と言えます。
実際、Unityを扱える現役エンジニアの数はそれほど多くありません。
Unityを習得するためには
Unityを学習することは難しいと脅すような記事を書いてきました。
ですが、Unityを学習することに反対というわけではありません。
Unityを学習するにあたって必要なものをお話しさせていただきます。
なぜUnityであるか、確固たる理由が必要
なぜUnityを勉強したいのか?
なぜUnityでなくていはいけないのか?
この理由がしっかりと明確でないと、高いハードルを乗り越えるモチベーションが不足します。
もし、ゲームが作りたい、ということであれば、
kobakoでは、
Processingでのブラウザゲーム、
もうちょっと初心者であればScratchでのシンプルゲーム、
をお勧めしています。
予習、復習をする覚悟が必要
Unityは覚えることがたくさんあります。
簡単なことがしたくても、複雑なプログラミングを余儀なくされます。
教えて欲しいことを予習してくる
教えてもらったことを復習してくる
こういうモチベーションがないとUnityは正直厳しい印象です。
例えば、以下のコードは、クリックしたらキャラクターが前に進む、というシンプルなものです。
前に進ませるだけでも、これだけの複雑なコードが必要になります。
void Update(){
if(Input.GetMouseButtonDown(0)){
float speed = 5f;
Vector3 direction = new Vector3(0, 0, 1);
Vector3 pos = transform.position + direction * speed * Time.deltaTime;
transform.position;
}
}
とにかく作りまくることが大切
Unityの基本がわかったらとにかく作ることです。
完成度は30点ほどでいいので、いろんなゲームを作るといいでしょう。
作るゲームが変われば必要な知識も変わってきます。
そうやって知識を蓄えて、自信のある一本のゲームが作れるようになっていきます。
最初は風呂敷を広げすぎず、
「ジャンプして敵を避ける」
だけのゲームでも四苦八苦するはずです。
少しずつ少しずつ、
たくさんのゲームを作って覚えていくのが結果的に近道になります。
kobakoでのUnity学習提案
kobakoではUnityの学習もサポートしています。
プログラミング初心者だけどUnityをやりたい!という相談も受けます。
そういったとき、kobakoではどう提案しているか。
実際のゲームのUnityプログラムを見せて納得につなげる
まずは僕の作っているゲームのプログラムコードをお見せしてます。
500行近いコードが書かれたファイルが、100ファイルくらいあります。
別に大規模ゲームというわけではありません。どちらかと言えば小規模ゲームです。
これを見せた時点で、生徒としては、
「思ってたんと違う・・・」
となります。
これは別に意地悪がしたいわけではありません。
難しいことを納得して欲しいんです。
「Unityがやりたいのにまだ難しいと言われてやらせてもらえない」
という不満があるのは、
生徒にとっても講師にとっても良いことではありません。
みんなが気持ちよく、納得して学習してもらうことが大切だと僕は考えています。
もっと簡単なものを見せて提案する
Unityが難しいことに納得してもらったら、
Processingなどのもうちょっと簡単なコードで、ちゃんと面白いゲームを提示します。
今度は200行くらいのコードが1ファイルです。
Unityと比べれば可愛く見えます。
「これくらいならできるかも・・・」
こうやって、難易度を落としたプログラミング言語で納得してもらうのが次のステップです。
ScratchやProcessingでゲーム作りを実践してもらう
Unityが難しいことを納得してもらいつつ、Unityを目指して少しずつステップアップしてもらいます。
中学生だったらProcessing。小学生だったらScratchからでしょうか。
(もちろん、ご要望に応じてこのあたりは適宜変えていきます。)
特にProcessingでゲームが作れなければUnityは到底難しくなります。
そのことも納得してもらっているので、Processingを乗り越えようと努力してもらいます。
kobakoでUnityを学習してみませんか?
kobakoでUnityを学習してみませんか?
お伝えした通り、最初からUnityということは難しいです。
ですが、Unityに向かうためのロードマップを提示できるのがkobakoです。
少しずつ少しずつ、Unityを目指していきましょう!
無料体験へのお申し込みはこちらから!
kobakoのゲームプログラミング教材もYouTubeで無料配信中です!
初回の授業料(体験)は無料です。
※現在はオンライン授業でのみ対応しています。通学型ではありません。