Oops! It appears that you have disabled your Javascript. In order for you to see this page as it is meant to appear, we ask that you please re-enable your Javascript!
スポンサーリンク

Unityとは?未経験から入門してUnityエンジニアを目指したい初心者のあなたにおすすめの本や入門書はこちらです(2019)

スポンサーリンク
Unity ユニティ とは 初心者 未経験 入門 エンジニア おすすめ 本 入門書  参考書 2019 Unity
Unity ユニティ とは 初心者 未経験 入門 エンジニア おすすめ 本 入門書  参考書 2019
スポンサーリンク
スポンサーリンク

 

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エンジニアを目指したい初心者のあなたにおすすめの本や入門書はこちらです(2019)

まずは、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の使い方に興味がある方は、以下の入門本がございます↓

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

 

 

 

こちらもございます↓

プログラミング超初心者のあなたが、独学で基礎から入門するのに役立つ、プログラミング勉強法、おすすめの本はこちらをどうぞ

 

「ゲームプログラミング」をやりたいプログラミング初心者の方向けのおすすめのプログラミング言語と参考書や本はこちらです