皆さんいかがお過ごしでしょうか。
はらぺこグリズリーでございます。
少し前のことですが、筆者は将棋について熱く語った記事を書かせて頂いたことがありました。
cheap-delicious.hatenablog.com
で、筆者その記事の最後らへんでうっかり「おすすめのUnity本についてもいつか記事を書いてみたい」なんて書いてしまっているんですよね…。
そうしたら意外にも「Unity記事を書くとしたいつぐらいですか?」「はらぺこさんUnity本の記事まだですか?」というお問い合わせを数多く頂きました。
前々からはてなユーザーはプログラマが多いと噂半分には聞いていましたが、だとしても需要があるならありがたいことです。
料理ブログが急にプログラミング本のことを書くのもあれかな、
と思ってこれまではプログラミングメインの記事を書くつもりはなかったのですが、
それなりにUnity本は読み漁ってきているので、
せっかくの問い合わせということもあり、
「これは書くしかないっしょ!」
と思い、今回はUnityの入門者や初心者向けのおすすめの本について書かせて頂きます!
実は先日Unityの記事投稿したんですが、過去記事を整理する際うっかり削除してしまい、
今回再投稿する羽目になりました…。
バックアップもなかったため0からほぼ書き直し、
それはいいとしてせっかくはてブやスターを付けてくださった方申し訳ございませんでした…。
- Unityって何?
- 今回扱うUnity参考書は全てC#
- レベル:Unityというかプログラミングって何?
- レベル:Unity入門、初心者を脱出したい!
- レベル:洗練されたUIのゲームにしたい!(ユーザーのことまで考えたゲームが作りたい!)
- レベル:オンラインゲームを作ってみたい!
- レベル:コードは書けるようになった!次はゲームの企画もマスターだ!
- レベル:正直Unityは余裕。でももっと成長したい!
- レベル:いや、いきなり本買うとかハードル高すぎ…無理…
- アセットストアで買えるおすすめのエフェクトやスクリプト
Unityって何?

すごくざっくり言うと、Unityは超カンタンにゲームが作れるゲーム開発ツールです。
キャラクターや街並みをドラッグアンドドロップのような直観的な操作で配置できたりします。
あとUnityは基本無料です。すごい。(有料版もありますが、ほとんどの機能が無料で使えます)
長らくゲーム会社独自のゲームエンジンなどでしかそれなりのゲームが作れない時代が続いてきましたが、
Unityの登場によって一般人でも無料で手軽にゲームが作れるようになりました。
「Unityはゲーム開発の民主化をもたらした!」とまで言われているそうです。
UnityはスマホアプリのようなカジュアルゲームからPS4やPS3、Wii Uといった本格的なゲームまで作ることができるクロスプラットフォームであるというのも大きな特徴です。
有名どころでは、最近よくCMで観るコロプラの「魔法使いと黒猫のウィズ」や「白猫プロジェクト」もUnityで開発されたものです。
今回扱うUnity参考書は全てC#
Unityにおいては3種類のプログラミング言語がサポートされています。C#、JavaScript(型付、正しくはUnityScript)、 Boo(Pythonライク)がサポートされています。
ここで一つ言わせて頂くと、Unity上でどの言語を使うべきかというのは非常に重要な問題です。
JavaScriptはあまりおすすめしません
多くのWebプログラマーのような人にとっては、おそらく馴染みのあるJSを選びがちだと思います。
しかしUnityで書く時にJavaScriptを使うことはあまりおすすめできません。
理由は以下の3つです。
・UnityのJavaScriptはUnity独特の仕様(静的型付)なのでWebで書くJavaScriptとは異なる。つまり通常のjsを書き慣れている方ほど混乱しやすい。
・Unity独特のJavaScriptであるため、学習するための情報も調べにくい。
・Unity上にC#では利用できて、JavaScriptでは利用できない機能がある。結局C#を使うことになる。
以上の理由から筆者はUnityにおいてJavaScriptはおすすめしません。
Booはそもそもサポートがなくなる可能性がある
Unityが4から5になり、Unityを起動して新しくProjectViewからスクリプトを作る際選択肢からBooが消滅しました。
.boo拡張子を自分で作れば一応使うことはできますが、
jsよりBooの方が遥かに情報も利用者も少ないので、そのうちサポート言語からも消えるではないかと筆者はにらんでいます。
よってBooもあまり選ぶべきではないでしょう。
UnityではC#1択
これらの理由により、Unityで使うプログラミング言語はC#を置いてありえないと思います。
体感としてもC#はUnityでも非常に書きやすいですし、情報量もかなり揃っています。
というわけで、今回紹介させて頂く参考書は全てC#で書かれたものを選ばせて頂きました。
入門書として名高い「ひよこ本」も素晴らしい本だと思いますが、
下手にjs本を触るよりもC#1本に絞った学習の方が効率的だと考え、今回は省かせて頂きました。
では、お待たせしました。
筆者のおすすめの本をご紹介させて頂きます。
レベル:Unityというかプログラミングって何?
見てわかるUnity4 C#超入門
Unity入門者のみならず、プログラミングそのものが初めての方にもおすすめできる本です。
前半部分は「int?文字列?なんじゃそりゃ」というUnity以前のプログラミングの基礎からしっかり解説してくれています。
そして後半部分はVector3やGameObject、「Transform」と「transform」の違いなど、
Unity独特のクラスやプロパティについて図解しながら実際に簡単なゲームを作れるようになっています。
「1冊でC#の基本とUnityの基本を押さえられる良書であり、入門者や初心者には非常に頼もしい1冊。」だと思います。
一応「見てわかるUnity5 C#超入門」という最新のUnity5に対応した本があるにはあるんですが、
「Unity4 C#超入門」の方が入門者向けにしっかりと書かれている印象があったのこちらを紹介させて頂きました。
Unity5 3D/2Dゲーム開発実践入門 作りながら覚えるスマートフォンゲーム開発
この本もUnity入門に非常に向いた本です。
また、注目すべきはUnity5に対応した本だということ。
意外と前提として省略されがちなUnityのダウンロードの仕方という本当に最初のところから始まり、
比較的簡易な2Dゲーム、そして3Dゲームの作り方、そしてゲーム開発の最終段階でもあるストアへのアップの方法までカバーしています。
この本で作ることになる4種類のアプリにおいて、
各章で3D物理エンジンと衝突、Prefab、GUI、2D物理エンジンなど様々分野に焦点をあてて説明しています。
そのため体系的にUnityを理解する助けとなることでしょう。
1冊でUnityに関した知識が包括的に学べるという意味でこちらも非常に初心者向けの本だと言えます。
さらに、Unity5対応の本としても非常に優れた1冊です。
確かにUnity5対応の本が続々と出版されている状況にありますが、
「現状で本気でおすすめできるUnity5関連の本は筆者の中でこれだけ」
だと筆者が思うほどです。
レベル:Unity入門、初心者を脱出したい!
Unityで作るスマートフォン3Dゲーム開発講座
様々なジャンルのゲームを実際に作りながらUnityへの理解を深めさせてくれる一冊と言えます。
この本で作ることになるゲームは
「シューティングゲーム」
「パズルゲーム」
「ピンボールゲーム」
「ラジコンカーゲーム」
「プラットフォーマーゲーム」
とバリエーション豊富です。
まだそこまでUnityでゲームを作っていない人には、少し難しそうに感じるかもしれませんが、
全ページオールカラー、見やすい図解も豊富なため、意外となんとかなります。
そうしてなんとかこの1冊をやりきったその時には、Unityに関する理解はかなり深まっているはずです。
「ある程度UnityやC#の基本が分かった上で、次のレベルに行きたい!」という人に非常に向いた本だと言えるでしょう。
Unityではじめる2Dゲーム作り徹底ガイド スマートフォンでも遊べる本格ゲーム開発に挑戦
Unityは3Dゲームを作るゲームエンジンとして広く知られていますが、実際にゲームを作るとなるとほぼ、2Dです。
3Dモデリングは非常に難しく、そもそも作ることの出来るエンジニアが少ない上に、
処理が重くなる、ドローコールが増えてしまう、といった多くの問題が生じる可能性が高まります。
流行りのソシャゲもほとんどは2Dですし、
仮に3Dに見えるゲーム、例えば有名なスマホアプリ「クラッシュオブクラン」でも実装上の画像は2Dを使っていたりします。
つまりUnityにおいて、2D機能をうまく使える能力も求められるということなのです。
そして現状で一番Unity2Dについて詳細に書かれたのがこの本です。
とにかくUnityでの2D機能の使い方を、かなり詳細に記述してくれているのがポイントです。
ちなみにこの本で作ることになるゲームは1種類です。
1種類と聞くと少なく感じるかもしれませんが、
本1冊をかけて解説し、作り上げることになるので、
この記事で紹介している中で随一のビジュアルが仕上がります。
タイトルに「本格ゲーム開発」と書いてありますが、それに違わず普通に商品として成立するビジュアルのゲームが作れます。
内容としては解像度設定、Unity2D特有のコンポーネントについてなど、
2Dだからこそのことに関して丁寧に解説されているのでとても理解が深まります。
豊富な図解、丁寧な作りにより、筆者として現状でUnity 2Dを学ぶならこの本しかないと思います。
レベル:洗練されたUIのゲームにしたい!(ユーザーのことまで考えたゲームが作りたい!)
UnityゲームUI実践ガイド 開発者が知っておきたいGUI構築の新スタンダード
それなりにUnityに対する知識や技術が身に付いてくると、ゲームのUIをもっと改善したくなります。
UIというものはゲーム以外にもwebサイトやwebサービスといった様々な分野でとても重要な要素です。
そしてこの本は「ゲームのUI作成に完全特化、しかもUnity向け」というまさにうってつけの本です。
具体的にはUnityの4.6以降の機能uGUIの基礎基本から応用についてまで解説されています。
説明も簡潔で非常に分かりやすいのがいいと思います。
筆者はこの本のおかげでダサいレイアウトがバッチリ決まるようになりました。
レベル:オンラインゲームを作ってみたい!
Unityゲーム開発 オンライン3Dアクションゲームの作り方
章ごとに異なるゲームを作るのではなく、
1冊を通してネットワークを使ったマルチプレイの3Dアクションゲームを作る内容の1冊です。
13章のOnGUIで実装する箇所は、当時UnityでuGUIが登場する以前のためこの章は読み飛ばしても良いと思います。
ですが、Unityのネットワーク機能についてきちんと書かれている書籍は少ないので非常に貴重な情報が多く得られます。
この本で通して作成するゲームは、
Unityの入門書でよくあるキューブを落としたりするゲームと比べると格段に難易度が上がります。
しかし「俺は絶対ネットゲームを作りてえんだ!」という人には絶対助けになるであろうおすすめの1冊です。
レベル:コードは書けるようになった!次はゲームの企画もマスターだ!
ゲーム作りのはじめかた Unityで覚える企画からレベルデザインまで
大手ゲーム会社のバンダイナムコさんが出版した本です。
これまで紹介してきた本はいわば知識、技術的な面に特化した内容であり、
厳密に言えば「0からのゲームづくり」を扱う内容ではありませんでした。
そして「0からのゲームづくり」を、
アイデアの考え方、企画書の書き方、プログラムの書き方といったあらゆる面で取り扱ったのがこの本に他なりません。
著者は現役のゲームプランナーであり、具体的で広範囲の内容が書かれています。
間違いなく「自分だけで作り上げる初めてのオリジナルゲーム」を完成まで漕ぎつける助けとなる1冊だと思います。
レベル:正直Unityは余裕。でももっと成長したい!
実例で学ぶゲームAIプログラミング
AIを実装するにあたって関係してくる三角法やベクトル、質量などといったことに関して、数学や物理の基礎からしっかり学べる本です。
いろいろなAIについて解説されていますが、
中でも序盤にあるステート駆動エージェントの設計は知識として知っておくだけでも非常に有益だと保証します。
実際のAI実装においても幅広く応用が利くため、これだけでも読む価値があるのではないかと思います。
ゲームプログラマになる前に覚えておきたい技術
この本は、大手ゲーム会社セガの新人研修用カリキュラムに使われた内容をまとめたものです。
本の開発環境はWindowsとDirectX、プログラミング言語はC++です。
ゲームプログラミングの初級者を中級者以上へと成長させることを目標にした本ですが、
その内容はかなり網羅的であり、この本の内容を完全に理解できている人は、実際に現場で働いているプログラマでも少ないと思います。
確かにUnityと直接的な関係こそありませんが、間違いなくためになります。
あらゆるゲーム開発必要とされる技術の基礎を学ぶことの出来る良書です。
本気でもっと早い段階で出会っていればよかったと今でも悔しく思う本です。
この2冊を完全に理解することが出来たとしたら、
妙な表現ではありますが、仮にUnityが滅んでロストテクノロジーになってもゲーム開発に困りません。
この2冊をちゃんと理解して読破できればおそらく今後ゲーム作りに困ることはないでしょう。
レベル:いや、いきなり本買うとかハードル高すぎ…無理…
「Unityやってみたいけど、いきなり本を買うのはちょっとなあ…」
と思われる方も多いと思いますので最後に動画を1本ご紹介させて頂きます。
iPhoneゲームを20分間で作る【メダルプッシャー編】
1番はじめに紹介した本より先に正直みて欲しい動画です。
内容は
20分で、完全に無の状態から、メダルプッシャーのゲームを作る
というものです。
最初から最後まで遠くで犬がワンワン吠えている以外特におかしい所はない、
ごく真面目なプログラミング動画です。
「Unityなんて今日初めて聞いた、そんなのがあるんだ」
という方もおそらくぼんやり見ているだけで面白い動画だと思います。
画面中央では次から次に
円柱が縮められてメダルになったり、
直方体が組み合わさってプッシャーになったり、
プッシャーに押されてメダルが落っこちていって投稿者の方が
「メダルは世界の果てまで落ち続ける」
と言ったりで全然飽きることなく観られます。
また、プログラミングの視点からこの動画を見ると
オブジェクトに物理演算を適用してくれるRigidbodyコンポーネントや当たり判定のコライダーの付け方、
衝突判定のOnCollisionEnterやOnTriggerEnter、
オブジェクトを生成するためのプレハブの使い方など、
Unityを学ぶ上で必須の基礎全てを視覚的に分かりやすく理解できる非常に素晴らしい内容です。
20分という短時間でこれだけ凝縮したプログラミング動画は滅多にありません。
ちなみに某大手ゲーム会社の研修ではデザイナーもエンジニアも最初に必ずこの動画を観させられます。
とりあえずこの動画を通しで1回見て、その後この動画の通りに実際に作ってみて、
最初は「Unityでゲームつくるってこんな感じなんだーふーん」程度で十分です。
まず20分では絶対に作れませんが、これをUnityの入門書籍に入る前にやっておくだけでかなり得るものが多いと思います。
アセットストアで買えるおすすめのエフェクトやスクリプト
なんだかんだUnityでは1から実装するよりアセットストアで買ったほうが圧倒的にラクで早いものもあります。
ついでにいくつか筆者が実際に買って良かったおすすめのアセットをご紹介します。
FingerGestures
フリックとかスワイプってUnityの標準機能で実装されていない割に意外と実装が面倒なんですよね。
そのくせ使用頻度はめっちゃ高い。
FingerGesturesを使えばいとも簡単に実装できちゃいますよ!
https://www.assetstore.unity3d.com/jp/#!/content/1044
iTween
https://www.assetstore.unity3d.com/jp/#!/content/84
Unityにおけるtransformのpositionやscale、rotationなどの各プロパティを自在にアニメーションさせることができるAssetです。
すごい高機能なのになんと無料。
Magic Sword FX Pack
https://www.assetstore.unity3d.com/jp/#!/content/28950
RPGや対戦ゲームなどで使う電撃や炎、水しぶきや吹雪、爆発などこれ1個で全て完結しちゃいます。
パーティクルってパラメータがめちゃくちゃあるので、正直買っちゃったほうが早いです。
Particle Scaler
パーティクルって複雑で単純にtransformのscaleをいじるだけじゃ大きさ全く変わらないんですよね。
そこでこのAsset。これで簡単にエフェクトの大きさが自由自在です。
https://www.assetstore.unity3d.com/jp/#!/content/4400
NGUI
https://www.assetstore.unity3d.com/jp/#!/content/2413
UnityのUIといえばやっぱりコレ。
グリッドやパネル、フォント、スクロールなどあらゆるUnityのUIを制御できる超優秀アセット。
なぜこんなに便利なのに日本語の書籍がほとんどないのか不思議なくらい。
機会があったらNGUIをめちゃくちゃ詳しく解説したいです。
まとめ:ゲーム作るってめっちゃ楽しいよ!
いかがでしたでしょうか!
たくさんあるUnity本の中から筆者が厳選したものをご紹介させて頂きました。
「Unity本ってかなりたくさん出版されていてどれを買って良いか分からない!」という方の参考になれば幸いです。
これは筆者個人の考えでしかありませんが、
ゲームづくりって、まずは自分が楽しめるゲームを楽しく開発できれるのが一番いいんじゃあないかと筆者は思います。
難しいことは考えずとりあえず作ってみるくらいの気持ちで、
その結果誰かが喜んでくれれば一番いいんじゃないかな、と。
はじめはクオリティは全然低くていいと思います。
筆者がUnity初めて1週間程度で作ったゲームはひどいクソゲーです。(美味しいトマトソースが完成した喜びと記念に作りました。犬が台所を走っていくアクションゲーム。)
まずは自分が作りたいものを作って自分自身が楽しむだけで全然いいと思います!
筆者が感じた楽しさは
「ここにこんなギミック置いてみたらどうだろう!?」
「敵の動きはこんな感じかな!」
「バグって壁の中めり込んでる(笑)」
「このステージ構成だとここで絶対死ぬ、どうすれば…?!」
「どういう設定があったら面白いかな…」
「バグって永遠に落下し続けてる(笑)」
「バグってスタート直後に死ぬ(笑)」
「バグって絶対にクリアできない(笑)」
「バグって(ry」
などいろいろでした。
「トマ犬」をつくるまではUnityは全然知らなかった筆者ですが、
本当に未知の分野だったため、新鮮な楽しさを見出すことができたのだと思います。
やると分かるんですが、めちゃめちゃ面白いですよ!!
みんなゲーム作ろうぜ!!!