「Unity(ユニティ)(= Unity3D)」とは、
プログラミングを行う環境のことです。
様々なOSやデバイスに対応したゲームエンジンでもあります。
「ゲームエンジン」とは、
ゲーム開発を行うためのプログラムが集められたライブラリ(プログラム集)のようなものです。
モバイルゲームやブラスザゲームを、
Webやデスクトップ、ゲーム機、スマホ向けに、作成するために使われています。
- 2次元や3次元のグラフィックスのレンダリング
- 物理シミュレーションや衝突検出
- サウンド
- アニメーション
などを提供しています。
Unityは、これらの高度な技術を無料で使えるので、
100万人以上が使っている人気の「ゲーム開発環境」となっています。
なので、
- ゲーム開発をしたい!
と思って調べていたら、Unityに出会うことも多いのでないでしょうか。
ゲーム開発やプログラミングをするときには、
- 使っている人が多い
というのは、メリットの1つです。
なぜかというと、
- 多くの人が情報共有している
- 問題点が現れやすい
- わからないことがあった時、相談できる人が多い
といった点が挙げられます。
プログラミングでは、
- これ自分だけ?
- 正しくやってるはずなのにうまくいかない
のような、
自分1人で解決できないことが起こることがあります。
こういったとき、同じ問題を経験した人がいれば、解決法を知ることができるわけです。
なので、ゲームプログラミングをしたいなら、
よく使われているUnityを採用してみるのは、
賢い選択の1つと言えます。
といっても、
- Unity未経験の初心者だし、
- 勉強法もわからないし、
- Unityはどう学習したらいいの?
といった方も多いかと思います。
そこで、本記事では、Unityを使ってみたいんだけど、
- Unityってなに?
- Unity学習におすすめの参考書や入門書ってある?
といった、Unity初心者の方向けに、
わかりやすい入門本などをご紹介します。
加えて、Unityの使い方だけでなく、
- 将来は、Unityエンジニアになれたらいいな
といったあなたのために、
- レンダリング(Rendering)
- シェダー(Shader)
- コンピュータグラフィックス(CG)
など、Unityの重要な仕組みの概要や周辺知識などを、あわせてサクッと解説します。
本記事を読めば、
- Unityに入門してUnityプログラミングができるようになるおすすめの本・参考書を知ることができます
それに加えて、
- Unityがどういうものかを理解でき
- どんな感じで学習していけばいいかわかり
- 周辺にどんな知識があるとよりいいかを把握できる
内容となっています。
本記事の概要
Unityとは?未経験から入門してUnityエンジニアを目指したい初心者のあなたにおすすめの本や入門書はこちらです
具体的なUnityの使い方に興味がある方は、以下の入門本がございます↓
スラスラ読める UnityふりがなKidsプログラミング ゲームを作りながら楽しく学ぼう! (ふりがなプログラミングシリーズ)
本書はUnityの初心者向けに、Unityの使い方を、
- とことん優しく
教えてくれる1冊です。
Unityの使い方(プログラミング)にふりがながふってあり、
ブロック崩しやFPSなどの
- 基本的なゲームを作りながら
Unityプログラムの基本を優しく理解できます。
タイトルにあるように、小学5年生でも理解できるので、
- 小学高学年や中学・高校生のお子様
はもちろん、
- Unity初学者の方
- 一度使ったけど挫折した方
にもおすすめの1冊となっています。
【★特典付き】楽しく学ぶ Unity 2D超入門講座(特典:姉妹本の特別試し読みPDF)
本書は、
- 初めてゲームを作る
- 初めてプログラムをやってみる
といった方が、
Unityでわかりやすくゲーム作りを体験できる1冊です。
- どういう考え方でゲームを作ればいいの?
初心者の方が見落としがちな、プログラミングの考え方の部分への解説も充実しています。
シンプルな機能をプログラムで実現
それらを組み合わせていく
といった基本的な考え方をゲームを作りながら体得できます。
Unityだけでなく、他のプログラミング言語にも通じる
- プログラミングのやり方・考え方
も身につくおすすめの1冊となっています。
本書で2次元ゲームを作ったら、
3次元ゲームはこちらで学ぶのもおすすめです↓
たった1日で基本が身に付く! Unity 超入門
本書は、Unityをサクッと体験できる1冊です。
3次元の障害物レースゲームを
Unityで手を動かしながら学ぶことできます。
- 1時間に1つの単元
という感じで、スケジューリングもしやすく作られているので、
タイトルにあるように、1日で終わらせてもいいですが、
- 1日1単元
のようにコツコツ進めていくことも可能です。
初学者の方でもわかりやすいように、
- 操作画面を示しながら解説
がされているので、
- とりあえずUnityを触ってみたい
- 忙しい中、短時間で感じをつかみたい
- Unityに挫折したことがある
といったあなたにおすすめの1冊となっています。
Unity2020入門
本書は、プログラミング未経験の方でも、
- Unityを通じてゲームとプログラミングの第一歩
を手を動かしながらつかめる1冊です。
Unityのインストールもしっかり解説されているので、環境構築もつまずかずできます。
またサンプルもダウンロードでき、ゲーム素材が用意されているので、
手間をかけずに、サクッとゲーム制作を体験することができます。
Unity2020に完全対応しており、
- 2D, 3Dゲームだけでなく、
- スマホでの動かし方
についても一通り体験できます。
手間をかけずに、サクッとUnityを体験したいあなたにおすすめの1冊となっています。
Unityの教科書 Unity 2020完全対応版 (2D&3Dスマートフォンゲーム入門講座)
本書は、初めてゲーム制作してみたい方向けのUnity入門書です。
サンプルゲームを作りながら、
- ゲームの作り方
- Unityの使い方
- C#のプログラミングの基礎
を自然に身につく構成になっています。
説明もわかりやすく、コードも見やすくまとめられているので、
初学者の方でも本書に従って手を動かしてみることで、
- Unityの使い方
- Unityでのプログラミング
- ゲーム制作
についてスムーズに学習できる1冊となっています。
ただしC#のプログラミングなどの経験がある方がより理解が進むかと思いますので、
プログラミングが全くの未経験の場合には、
以下の書籍などでC#の基礎を身につけてから本書を読むと理解がより進むかと思います。
Unityのために C# を学ぶならこちらがございます↓
スラスラ読める Unity C#ふりがなプログラミング (ふりがなプログラミングシリーズ)
UnityではじめるC# 基礎編 改訂版
Unityの寺子屋 定番スマホゲーム開発入門
Unityを使いこなすにはこれらもどうぞ↓
ステップアップUnity ──プロが教える現場の教科書 (WEB+DB PRESS plus)
スタートアップ・個人で作れる スマホ向けUnity ソーシャルゲーム開発ガイド
Unityで神になる本。
Unityゲーム プログラミング・バイブル
現場ですぐに覚える! Unity2019逆引き大全 319の極意
ちなみに
- Unityってどうやって使うの?
といったあなたのために、
Unityの使い方の考え方を説明しますね。
Unityの使い方
Unityは、ゲームエンジンと呼ばれる、
ゲーム開発でよく使われるプログラム集と言えます。
Unityの中には、たくさんのプログラムがあるということです。
(ちなみに、Unityの内部のプログラムは、C言語やC++で書かれています。)
Unityでは、基本的な部分はGUIで作ることができます。
しかし、例えば、ゲーム内のオブジェクトを制御するための命令を自分で指定しないといけないとします。
Unity内部にない、オリジナルの動きなどは、
自分でスクリプトを書いて制御することができます。
その際に、Unityの中にあるプログラムを活用して、
新しいプログラムを作ることもできます。
Unityの中のプログラムを使うには、
- C#
- JavaScript
- Boo(Pythonの影響を受けた言語です)
といったプログラミング言語が利用できます。
C#, JavaScript, Booなどの言語を使うことで、
Unity内部にすでにあるプログラム(ライブラリ)を呼び出すことができます。
ちなみに、「プログラムを呼び出す」ってなに?
ってことですが、少し説明しますね。
(わかっている方は下に進んでくださいね)
プログラムを呼び出すとは?
同じような処理をする場合に、
毎回似たようなプログラミングをキーボードから打ち込んでいたら大変ですよね。
プログラミングでは、同じ処理がある場合には、
以前書いたプログラムを再利用する仕組みがあります。
世の中で多くの人が書いたプログラムをうまく活用すれば、
プログラミング量を少なくして、より効率的に開発を行うことができて、みんなうれしいですよね。
ゲーム用によく使われるプログラムが多くまとまっているのがゲームエンジンでして、
Unity中にすでにあるプログラムを再利用するためには、
C#やJavaScriptとBooなどの言語が使えますよ
って話になります。
Unityを使うと、ゲーム開発がラクになるわけです。
というわけで、Unityを活用していくには、
Unityの使い方を学ぶのと同時に、
プログラミングして、オリジナルな処理をさせることもできます。
ゲームを作成する際には、
キャラクターや物体のイメージを作成する必要があります。
これを「レンダリング」と呼んでいます。
そこでレンダリングの概要についてサクッと解説しますね。
その後、レンダリングしたオブジェクトを使って、
UnityでのゲームUI作成をするための入門本などをご紹介します。
Unityでのレンダリング
「レンダリング」とは、
物体や形のないものなどについて、
形や状態を示す情報やデータを使い、
その物体などの画像や映像、音声などを
コンピュータで生成すること
を言います。
元となるデータや情報には、
- 物体の形や物体を見ている視点
- 物体表面の質感
- 光源や影
といったものが挙げられます。
これらを使い、物体などのイメージを作成するのがレンダリングになります。
特に3次元のレンダリング(3D レンダリング)は、
ゲームだけでなく、以下のような場面でも使われます。
- 映画
- 建築
- シミュレーション
レンダリングの種類には、例えば、
以下のような技術があります。
- 明暗をつけて立体感をつける「シェーディング」
- モデルの表面に質感を与える「テクスチャマッッピング」
- 動いている対象の被写体のブレを作る「モーションブラー」
といったものがあります。
レンダリングを使いこなすことで、
- ユーザーを引き込める
- 見栄えのいい
- 高品質の
ゲームを作ることができます。
以下で、
- シェーディング
- テクスチャマッピング
- モーションブラー
について説明します。
まず、シェーディングからです。
「シェーディング(Shadnig)」とは?
「シェーディング」とは、
3次元コンピュータグラフィックス(3DCG)において、
物体に影をつけたり、グラデーションをつかたりすること
を指しています。
これにより物体に立体感が出て、リアリティが増し、
より臨場感のあるゲームが作れるメリットがあります。
シェーディングで作られた、
- 物体表面の模様の情報を「シェーダー」
と言います。
表面の模様(シェーダー)は、シェーダー言語というプログラミング言語を使って操作することができます。
Unityでのシェーダーの定義は、
「モデル表面のピクセルの見え方を決めるための、
数学的計算とアルゴリズムを格納したスクリプトのこと」
となっています。
シェーダー言語には、例えば、
- 「Unity」での「Cg(C for Graphics)」
- 「OpenGL」での「GLSL」
- 「Direct3D(DirectX)」での「HLSL」
などがあります。
詳しく学びたい方はこれらをどうぞ↓
(ちなみに、Unity のシェーダープログラムは独自の構文「ShaderLab」で記述します。)
「テクスチャマッピング(TextureMapping)」とは?
「テクスチャ(Texture)」は、一般的には、
物体の表面の質感を表す言葉です。
コンピューターグラフィックスの分野では、
3次元物体の表面に貼り付けられる模様のことを指します。
模様は、シェーダーで記述できることを上で説明しました。
記述したシェーダーを使って、モデル表面の質感を、
シェーダーで指定した内容にすることができます。
これを「テクスチャマッピング」と呼びます。
テクスチャマッピングを行うことで、
モデル表面の質感を、
シェーダーで指定した内容にすることができます。
物体の表面の質感を思いどおりに作成するには、
シェーダー言語で模様を記述(シェーディング)し、
それをモデルに対応させればいい(テクスチャマッピング)
ということになります。
詳しく学びたい方はこちらをどうぞ↓
ちなみにこれら2冊は、Kindle Unlimitedの登録することで、無料で読むことが可能です。
Kindle Unlimitedに登録したことないあなたは、
お試し登録をしてみてはいかがでしょうか。
(初回30日間無料で体験できます)
新機能「シェーダーグラフ(Shader Graph)」
Unity2018 での新機能として、
「シェーダーグラフ(Shader Graph)」
が使えるようになりました。
シェーダーグラフは、新しいシェダーの仕組みで、
プログラミングなしで、シェーダーを作成することができます。
プログラミングが苦手な方も、
シェーダーグラフを利用すれば、ラクにシェーダーを作ることができます。
詳しくはこちらをどうぞ↓
最後に、モーションブラーについてです。
モーションブラーとは?
「モーションブラー」とは、動く物体へのブレを表現する技術です。
Unityでは、モーションブラーのことを「エフェクト」と言えるかと思います。
(ただ、Unityでのモーションブラー(エフェクト)という場合には、キャラクター以外の動くものへの効果を指す言葉になります。)
Unityでのモーションブラー(エフェクト)の例は、
- 炎がメラメラ燃える動きの様子を表現
- 呪文を唱えたときに現れる魔法陣の動きを表現
- 敵に攻撃したときのヒットの動きを表現
など、物体などの動きをより効果的に表現するために使われるのがエフェクトになります。
Unityでモーションブラー(エフェクト)
Unityでモーションブラー(エフェクト)をつけるには、
パーティクルシステム(Particle System)が使えます。
「パーティクルシステム(Particle System)」とは、
コンピューターグラフィックスの技術の1つです。
グラフィックス内の粒子に対して、エフェクトを加えるシステムの総称になります。
例えば、ゲームでよく使われるような、
炎、爆発、煙、呪文の視覚効果などに使われます。
Unityのパーティクルシステム(Particle System)には、
「シュリケン(Shuriken)」があります。
「Shuriken」は、パラメータを調整しながら、
作成したエフェクトをリアルタイムで見れるので、
エフェクトの勉強にも便利な開発環境となっています。
ご興味のある方はこちらをどうぞ↓
これらの「レンダリング」を実現するには、
数学や物理を用いた計算を行う必要があり、
その効率的な計算は「グラフィックエンジン」を用いて行われます。
Unityで使われているグラフィックエンジン
- OpenGL(Windows, Mac, Linux用)
- OpenGL ES(iOS, Android用)
- Direct3D / DirectX(Windows用)
などがあります。
「OpenGL」は、2次元/3次元コンピュータグラフィックス(2DCG/3DCG)のためのライブラリです。
- Windows、Mac、Linux向けの「OpenGL」
- スマホや家電など組込み向けの「OpenGL ES」
などがあります。
OpenGLでは描画演算には、「GPU」を効率的に使えるので、
より詳細な三次元モデルを作成できるといったメリットがございます。
「GPU(Graphics Processing Unit)」とは?
「GPU」とは、リアルタイム画像処理のための演算を効率的に行うプロセッサのことです。
ゲームなどのグラフィックスのために使われますが、
近年では、ディープラーニングなどAI(人工知能)での高速計算の需要にもこたえる形でよく使われるようになっています。
ご興味のある方は、こちらをどうぞ↓
これまで説明したように、
ゲームで使用するオブジェクトには、
レンダリングなどの様々な工夫がされていることがわかりました。
こうして作られたオブジェクトは、
ゲームのユーザーインターフェイス (UI)
の中で活躍します。
ここからは、UnityでのゲームUIを構築について説明したいと思います。
UnityでのUIデザイン(uGUI)
Unityには、UIデザインを行うために、
公式のGUIツール「unity GUI(uGUI)」があります。
「uGUI(ユージーユーアイ)」を使うことで、
Unityを使ったゲームのUIの構築を効率的に行うことができます。
uGUIの基本を理解するには、
- Canvasオブジェクトの下層にUIオブジェクトが階層構造になっていること
- 同じCanvas内では、階層の上のものほど手前に描かれる
といったオブジェクトの階層性が重要な考え方です。
他にも、オブジェクトは組み合わせることで対話型の機能を追加できます。
例えば、ボタンなどの表示用オブジェクトを作成できる、
といったことがあります。
オブジェクトは組み合わせることで、機能を付け加えることができるという考え方があります。
こういった考え方を意識しながら操作方法をマスターすることで、
より効率的にUnityをマスターできるかと思います。
詳しく学びたい方はこちらをどうぞ↓
というわけで、本記事では、
- Unityってなに?
- Unity学習におすすめの参考書や入門書ってある?
といった、Unity初心者の方向けに、
わかりやすい入門本などをご紹介しました。
加えて、Unityの重要な仕組みの概要や周辺知識なども、
あわせてサクッと解説しました。
ゲームプログラミングをUnityで学びたいならこちらもございます↓
『「ゲームプログラミング」に「Unity(ユニティ)」で、プログラミングの基礎から未経験で入門したいあなたにおすすめの本や参考書にはこちらをどうぞ』
こちらもございます↓
Shading
GLSL
HLSL
こちらもございます↓
『プログラミング超初心者のあなたが、独学で基礎から入門するのに役立つ、プログラミング勉強法、おすすめの本はこちらをどうぞ』
『「ゲームプログラミング」をやりたいプログラミング初心者の方向けのおすすめのプログラミング言語と参考書や本はこちらです』