PHP エンジニアが Unity を覚えた際に読んだ本

みなさまはじめまして。ポケラボエンジニアのY.Oです。

私は現在、創れる人を増やすという全社目標の一環として社内向け Unity 講座の講師をやっております。

といっても、もともと 3DCG やネイティブ技術のノウハウがあったわけではなく Unity に触れる以前は PHP のエンジニアをやっていました。

今回は PHP エンジニアが Unity を使えるようになるまでに読んだ本を紹介していきたいと思います。

これから Unity を覚える PHP エンジニアの一助になれば幸いです。

ゲーム制作者になるための3Dグラフィックス技術

Unity にかぎらず近年のゲームがどのように画面を構築しているか? という基礎に始まり、高度な質感表現までをカバーする 3DCG の入門書ともいえる内容でした。

本書ではつぎのことを学びました。

  • 近年のゲームはどのようにして画面を描画しているのか?
  • レンダリングパイプラインとはなにか?
  • 3DCG に使われている用語はどういった意味なのか?

PHP エンジニアが初めて Unity を勉強しようとした際、まず最初に専門用語が学習の妨げになると感じていますが、この本で 3DCG の輪郭を掴んでおくと後の学習がスムーズに進むかと思います。

3DCG の基礎がイラストを交えて丁寧に解説されている点でオススメできます。

OpenGL ES 2.0 Androidグラフィックスプログラミング

エンジニアとしてのアンテナにゲーム開発 = OpenGL という等式がおぼろげに残っておりまして、 3DCG プログラミングの基礎を理解するために OpenGL というキーワードで何冊か読んでみました。中でもこちらの本が OpenGL と 3DCG の基礎について非常に丁寧に解説されていたと感じました。

本書ではつぎのことを学びました。

  • OpenGL とはなにか? どうやって使うのか?
  • シェーダーとはなにか? どうやって使うのか?
  • ゲーム画面のピクセルはどのように描画するのか?
  • どのようにして思い通りのポリゴンを描画するのか?
  • OpenGL に使われている用語はどういった意味なのか?
  • 市販のゲームのあの画面はどうやって実現しているのか?

反面、読むのに手間取ってしまったのは 3D 数学の部分です。

特に文系の私には 3D につきものの数学(線形代数学)の概念がゲーム開発のノウハウ中に突然現れたように思え、ここで挫折を味わいました(この挫折については続く本で克服となります)。

OpenGL 1.x 系の機能をバッサリ割愛してシェーダー言語への解説に振り切っている点が Unity との親和性を生んでいてオススメです。

実例で学ぶゲーム3D数学

そもそも 3D ゲームを作るために必要な基礎知識がなっていないと痛感した私は、 3DCG の基礎の基礎を固めたいとの思いでこちらの書籍を読んでみました。タイトルから分かる通りこちらの本は前述の基礎知識を真っ向から解説してくれる、和書では数少ない本かと思われます。

本書では次のことを学びました。

  • 座標系とはなにか?
  • 行列とはなにか? どうやって使うのか?
  • べクトルとはなにか? どうやって使うのか?
  • クォータニオンとはなにか? どうやって使うのか?
  • 3D 空間での当たり判定をどうやって行うか?

残念ながら後半のより実践的な内容については理解することができませんでしたが、前半の基礎的な部分については「なぜ 3D に数学がつきものなのか」ともやもやしていた気持ちが一発でクリアになるほど詳細に書かれており、最後にはベクトル演算くらいであれば本を開くことなく実務で使えるようになりました。

なによりゲームをターゲットに数学が書かれているという点でオススメできます。

ゲームエンジン・アーキテクチャ

Unity はゲームエンジンですが、公式ドキュメント以外にもゲームエンジン自体を解説してくれる情報が欲しくなり、こちらの本を読んでみました。

本書では次のことを学びました。

  • ゲームエンジンとはなにか?
  • ゲームエンジンの要件はなにか?
  • ゲームエンジンはどのようなワークフローで使うのが効果的か?
  • Unity 以外にはどんなゲームエンジンがあるのか?
  • アニメーションのブレンドとはなにか?
  • アニメーションのレイヤーとはなにか?
  • Unity の GameObject と Component はなぜ1対多の関係になっているのか?
  • Unity の Rigidbody とはなにか?
  • その他 Unity に使われている用語はどういった意味なのか?

本書が扱う内容はこれだけにとどまらず、前述の3冊の内容と重複する部分も多くありますが、ゲームエンジン自体の教科書的な立ち位置での解説が Unity を理解しなければならない自分にとって最適と思える一冊でした。

Unity を使う中で、なにか知りたい、より深く知りたいといったことが出てきた際のリファレンスとしてオススメです。

Unityによる3Dゲーム開発入門(ほか)

前述の4冊を経てやっと Unity 自体の解説書を読もうと思い、色々と読んでみました。

ここまでに紹介した書籍を読んでおくと Unity や Unity の解説書を前にしてもひるまないだけの手応えを感じていましたので書店で見かける Unity の本を何冊か読んでみました。その中でも自分が一番最初に買ったのがこちらの本になります。

本書では次のことを学びました。

  • Unity エディタはどうやって使うのか?
  • Unity にてスクリプトはどうやって組み込むのか?
  • Camera はどうやって使うのか?
  • GameObject とはなにか? どうやって使うのか?
  • 各種 Component はどうやって使うのか?
  • Particle (Shuriken) はどうやって使うのか?

ただし、こちらの本は古い本でして Unity のバージョンも3となっております。

このように Unity の解説書に関しては内容の新旧といった問題がありますので必要になった段階でその時新しい本の中から選んでいただくことをオススメいたします。

おわりに

PHP エンジニアの私が Unity を覚えるにあたって参考にした書籍、分野はさまざまですが5冊紹介させていただきました。

どれか1冊でもこれから Unity をお使いいただくみなさまの参考になれば幸いです。

Y.O