(この記事の使用環境: Unity5.5.0f3 Personal、Windows10


今回は教材レビューです。やってみたのはこの本。
普通の紙の本もKindle版もあります。自分はKindle版を買いました。


Unity5ゲーム開発レシピ ハマるゲーム制作のノウハウ
翔泳社 (2016-01-22)
売り上げランキング: 20,921


■ 感想
3Dゲームでのキャラクター操作(移動、攻撃、ライフ管理)やUIの作成などに関するノウハウを効率よく、本当にたくさん学べます。
 当サイトでも当初から3Dキャラクターをあれこれ試行錯誤して動かしてきましたが、「この本をもっと早くやっておけば、学ぶのをスピードアップできたなー」という感じです。偉大な先人の知恵を見逃していました。

なお、留意事項にも書きますが「入門者」向けの本ではないので、Unityデビュー&C#デビューの人が最初にこの本を読んで学ぶのは厳しいと思います。初心者向けにはもっと親切な本があるので、まずはそちらを薦めます。( 「Unity5の教科書」とか「UnityではじめるC# 基礎編」とか)
「入門者向けの本はもう十分だけど、次に何を学ぼうか困った」というような人には特におすすめです。ただし、スマホゲームを作る本ではないので注意してください。

翔泳社のWebサイトにある 立ち読みプレビュー で詳しい目次構成が見られるので、購入の際にそちらを参考にしてもよいかもしれませんね。どういう要素を学べるかざっくり見ることができます。Unityの技術要素をできる限り幅広く取り扱おうという意思を感じました。

本に沿って途中まで実装してみた動画。かっこいいですよね!このあとさらに各種カメラエフェクトなどが追加されていきます。



 
■ 特長、参考になった箇所
  • とにかく学べる技術要素・ノウハウの数が初心者向けの本とは段違い。そのぶん説明は簡素だが、動かしながら試せるのでこれで十分だと思う。
  • ゲームパッドを使用する操作が楽しい。
  • ロボット操作の移動・モーション・射撃まであっさり実装できる。レーダーやエネルギーゲージなどのUIも。
  • アセット 「SimpleParticlePack」に収録されている数多くのパーティクル(爆発エフェクトなど)を使用するので、自分で使う際の参考になる。(「SimpleParticlePack」はUnity Technologiesによるアセットなので、ほかのアセットに比べて消されることが少ないと思われる)
  • CHAPTER 05 「敵をロックオンする」、CHAPTER06「ユーザーインターフェースを作成する」、CHAPTER11「演出を強化する」あたりが参考になった。
  • CHAPTER 06 では特にレーダーが勉強になった。3D空間上の敵との相対位置を2DのUIに表示!また、レーダーの円から外れたマーカーは表示しないなど。
  • CHAPTER 11 では敵の爆発時に画面を発光させたり、画面を揺らしたり、自機のライフが減ったときに画面にノイズを入れたりなどを、Standard Assetsのイメージエフェクトを使って実装しているのが参考になった。

■ 留意事項
  • 「入門者」向けの本ではない。Unityの導入方法・基本操作、C#の基本文法などは理解している前提となっている。「はじめに」のなかの「本書を読むための前提知識」として、以下のように記載されている。
    ・C#の基本的な文法を把握されている方
    ・Unityによるゲーム開発の経験がある方
    ・Unityの開発環境は自力で準備できる方
    → 不明点があれば、Unity公式のマニュアルやスクリプトリファレンス、C#のリファレンスなどを確認しながら進めましょう。
  • ゲームパッドを使用するのが前提とされている。キーボードでも操作できるよう設定を行うが、実際ゲームパッドを使用したほうが直観的で楽しく操作できると思う。箱コン(Xbox360コントローラー)使用の場合、ボタン設定は ここの情報 などを参照させてもらいましょう。
  • サンプルデータをダウンロードして使用することになるが、異様に容量が大きい(各章1GB弱~4GB弱)ので、ネット回線やローカルディスク容量が厳しい人は注意。なんでこんなに重いの・・・。インポートする必要がある素材・パッケージのみ切り出しておいてほしいと思った。
  • PART2の「応用編」は正直しんどい。PART1のCHAPTER01~12でロボットアクションのゲーム作りを学んだあと、PART2の「応用編」に入るが(こっちはロボではない)、PART1と違って各項目が独立し、細切れ状態になっているため、1項目学んだらプロジェクトを閉じてまた次のプロジェクトを開く、という進め方になる。PART2は5つのCHAPTERからなり、CHAPTERごとにデータのダウンロードも必要となる(とても重い)。このPART2に入ってから、進めるのが急激にしんどくなった。ようはTIPS集なので、一気に進める必要はない。PART2に関しては目次だけ見ておくか、ページをパラパラとめくってどういう内容か確認しておき、必要になったときに試す、というのがよいかもしれない。

■ 不明点、誤記等
  • P.151~152で、PlayerRotate.cs に追記する timer変数とそれを使う処理について、どのような意味があるのか分からなかった。なくても問題ない?
  • P.201で、「azalea」のインスペクタにはImageをセットする箇所がない。おそらく「ApGauge」?なお、ApGaugeのほうに画像をセットしても、セットしていないときとの違いは分からなかった。
  • (おそらく誤記)P.286の「タイトル画面を作成する」でテキストオブジェクトを作るので、「UI」→「Image」ではなく「UI」→「Text」を選択する必要がある。P.288「「Push Any Key! 」を作成する」も同じ。P.299で追加する「MessageStart」では逆に、「UI」→「Text」と指示があるが「UI」→「Image」とする必要あり。
  • (P.293あたり)シーン遷移でライティングが暗くなってしまう件(ビルドしたアプリでは問題ない。Unityエディタで実行する場合)。これはこの本に限らず発生する現象。解決方法は この記事 参照。
  • P.403で、シーン「Waypoint」にはNavMeshがベイクされていないのでベイクしてやる必要がある。
  • (バージョン差異っぽい)P.413(CHAPTER02「011 画像を元にシーンを作成する」)で、Unity5.5ではテクスチャーのImport Settingsの「Texture Type」に「Advanced」という選択肢はない(「Advanced」の各項目は「Texture Type」外に配置されており、「Texture Type」が「Default」のままでも設定可能)。
    (参照:「強火で進め」様 http://d.hatena.ne.jp/nakamura001/20170126/1485438174
  • CHAPTER02の「014 音楽と効果音のバランスを変更するには」で、音量を変更するためには、シーン上の「Music」のAudioSource>Outputに追加した「VolumeSettings」のスライダー「Music」を割り当てる必要がある。同様に、シーン上の「Voice」にも「Sfx」を割り当てる必要あり。
    また、(環境依存の可能性があるが)VolumeSettings.csで、スライダーで変更された値を正しく取得できない現象が発生した。この記事 のとおり対処した。

特に3Dでゲームを作りたいという人にはとてもおすすめの一冊です。
今回は以上です。