ヤクとアヒル

日常の問題を解決したときにつけるログ

吉谷幹人『Unity5 3D/2Dゲーム開発 実践入門』を読んだ

プログラミングは初心者ではないけど、Unityは初めての人がとりあえずUnityでどんなことができるのか知りたいときに良さそうな本でしたので紹介します。 本書では4つのスマホ向けゲーム製作を通してUnityの使い方を学ぶことが出来ます。

なんで読んだの?

VR開発者として信頼している@izmさんがUnity本のおすすめ 2016年版 - izm_11’s blog という記事を書いていて、その中で紹介されていたのでやってみました。

どんな本なの?

単純なスマホアプリを4つ作りながらUnityでのゲーム制作の過程を体験できる本です。1ヶ月ほど毎日30分-1時間ぐらいかけて読みました。

この本で作るゲーム

ざっくりと各ゲームについて説明します。

1つめのゲームでは単純なプリミティブ形状(球とか立方体)をつかって、ステージとオブジェクトを自分で作成します。

次のようなことが学べます。

  • 単純なゲームで、Unityにおいてゲーム全体のコントロール方法をどのようにするのか。
  • アセットの作成方法
    • アセットを使うと、同じオブジェクトを大量に生成することができ、オブジェクトを変更する際には一括して変更を加えることができるようになります。
  • Unity5から搭載された間接光などの光源をリアルタイムで計算するGIのモデルをつかって、映像的にリッチな表現を学びます。

2つめのゲームはゲームセンターにあるcoin dozerのキャンディ版です。

1つめのゲームよりもゲームっぽい制御が入ってきます。次のようなことが学べます。

  • オブジェクト(ドーザー)のスクリプトによる移動
  • 連続して発射できるキャンディの個数の制御やスコアのカウント
  • キャンディが落ちたららポイントを加算するというようなロジック
  • 用意した画像をオブジェクトに付ける方法
    • ゲームはで映像はすごく重要な要素ですが、この本はデザイナー向けの本ではないため、画像自体の作成の解説は無いです。
  • ちょっとしたエフェクトの作成やアニメーション、SEの付け方
    • ただしアニメーション素材や画像素材の作り方はこの本で学ぶことは出来ません
  • キャンディの複製方法(キャンディを発射したときにインスタンスを生成する方法)
  • キャンディを大量に作るとがばがばメモリを消費するので、画面外に落下したキャンディを解放する方法
    • 接触判定をトリガーにしてオブジェクトを開放します

3つめのゲームは奥へスクロールしていく昔懐かしいクラッシュ・バンディクーのようなゲームです。

次のようなことが学べます。

  • 遠影をぼかす方法
  • 幾つかのステージを自作し、それをランダムに出現させる方法
  • メカニムをつかったアニメーションの制御(歩いているアニメーションから走っているアニメーションに状態を切り替えるとか)
  • スタート画面とプレイ画面の遷移
  • スコアの保存(永続化。ゲームを落としても次回起動時にハイスコアが表示される)

4つめのゲームは2D横スクロールゲームです。

次のようなことが学べます。

製作難易度的には3つ目のゲームのほうが高いと感じました。

著者さんのブログでも紹介記事がありました。

Unity5の入門書を書きました。アセット付き! - Mikimemo

読む前に期待していたこと1:基本的なツールの使い方が理解したい

どのようなことが学べる本なのか紹介するために、僕がこの本を読む前に期待していた点と実際に読んだあとの感想を思いつくままに列挙してみます。

わかったこと
  • 3Dや2Dのゲームでどのようにステージやオブジェクトをつくるか作成方法
  • 画面外のものは省メモリのために削除する方法
  • OnGUIを使ったスコア表示
  • どのようにキャラクターをスクリプトで制御するか
  • 接触判定をしてイベントを発生させる方法
わからなかったこと
  • 広大なフィールドを持つようなゲームでのオブジェクト出現のコツ

読む前に期待していたこと2:ゲームのルーチンと開発フローが理解したい

わかったこと
  • ゲームスタート時や終了時のシーンの切り替える方法
  • フレームレート(fps)に影響されずに実時間をつかってオブジェクトのライフタイムやを制御する方法
わからなかったこと
  • 複数人で作る中規模以上なゲームでのノウハウ
    • 1人で作ることが想定されているので、説明はないです。
    • この本を通して作るゲームは小さいので、管理もあまり大変ではありませんでした。しかし、エディタ上のGUIスクリプト糖をアタッチしたりするので、オブジェクトが増えると管理が大変になる予感がしました。大規模ゲーム開発ではどのように管理しているのかちょっと気になりました。

この本を読むために必要な知識は?

全くのプログラミング初心者がやる本ではないという感触でした。 もし全くの初心者でUnityを触ってみたいという方izmさんが一番初めに紹介されている本をやるのがいいと思います。

UnityはC#の開発がデファクトスタンダードのようで、この本でもC#が推奨されています。 C#に関しては特に知らなくても、文法をググって理解できれば特に躓くところはないと思います。 筆者のC#の経験は、昔Unity4をいじったことがある程度です。エディタもVisual Studioが使えたのであまり不満はなかったです。 (そのときはUnity入門 (全26回) - プログラミングならドットインストール をやった)

Unity上での手順もカラーでキャプチャ付きなのでUnity上での操作が困ることはありませんでした。

本の内容に関する補足

全体

Windowsなんですが大丈夫ですか?

本書はMacでの説明。キャプチャもMac。ただしWinでも同様と書いてあり、実際僕はWindowsでやりました。

ショートカットを覚えよう

ショートカットをざっと見ておくと作業が効率化できる

Unity - マニュアル: Unity のショートカットキー

本と食い違ったことをやってしまってよくわからなくなった

だいたい Debug.Log() を使って文字列を出力してデバッグしました。

本に書いてある○○がない

この本の想定バージョンはUnity5.1ぐらいのようで、現在のバージョン5.5では非推奨の関数が一部利用されていたりします。 95%ぐらいは本通りの手順で進むことが出来ましたが、幾つかできないこともありました。公式ページに正誤表があるので、何か変だと思ったら目を通すといいかもしれません。
僕のTwitterでの製作実況でもつまったことは書いたので、参考になるかもしれません。

読者サポート | Unity5 3D/2Dゲーム開発 実践入門 | ソシム

Chapter 1で起きた問題

サンプルプロジェクトで遊べなかった

インストール時にチェックボックスに入れてなかったから入っておらず遊べなかった。遊びたい人は注意。

Chapter 3で起きた問題

マテリアルのリネーム方法が右クリックででてこない

Windowsだとダブルクリックでできました。

Changing material name - Unity Answers

実機確認

実機確認の詳細な手順はこの本には書いてないのでググる必要があります(大まかな流れだけ書いてある)。
iOSの場合、iOS7から実機確認も無償でできるようになっていました。例えば次のような記事を参考にするといいでしょう。

[Xcode][iOS] 有料ライセンスなしでの実機インストール 全工程解説! | Developers.IO

購入するなら達人出版会のPDF版がおすすめ

電子書籍版はkindleでもでていますが、固定レイアウト方式で配信されており文章の検索ができなかったり、ブックマークができない(少なくともkindle for Macではできない)という欠点があります。達人出版会がPDFを販売しているのでこちらからの購入をおすすめいたします。

Unity5 3D/2Dゲーム開発 実践入門 -作りながら覚えるスマートフォンゲーム制作【委託】 - 達人出版会

製作ログ

今回はTwitterで制作過程を実況していたのでまとめました。どのようなゲームを作るのかわかると思います。
(SEやBGMがついているものもありますが2章のゲームのSEを除いて、後編集でつけているものです。)

スポンサーリンク