Unityではじめる2Dゲーム作り徹底ガイドの感想

はいどーもこんにちはニートです。
アドベントカレンダー用の記事も完成していませんが、本日は『Unityではじめる2Dゲーム作り徹底ガイド』の感想を書きたいと思います。

そして初めに宣言しておきます。
今日のニートは辛口だ!

想定読者

この本の想定読者をまとめておきます。

プログラミング入門者

プログラミング入門者とは、プログラミングを初めて一ヶ月目くらいの人を指すことにします。
 このレベルの人が本書を読破することはまず不可能です。
 本書で使用されている言語はC#ですが、C#の文法解説は一行たりともありません。
 ただコードが貼りつけられているだけです。
 コメントは書かれていますし(後ほど書きますが、このコメントも癖があります)、必要な箇所は解説も挟まれていますが、基本的には自分でコードを読み解いていく必要があります。
 少なくとも文法の解説は皆無ですので、『独習C#』レベルの本を一回は読んでおいたほうがいいかなーと思いました。

C#の入門者

 C#の入門者とは、プログラミング自体は初心者ではない(半年目~一年目くらい)が、C#は全く触ったことがない、あるいはC#を触って一週間程度の人のことを指すことにします。
 このレベルの人は問題なく読み進められると思います。
 というのも、僕がちょうどこのレベルだからです。
 C#に関する知識はかなり危ういですが、難解なコードも特に出てこないので詰まることなくコードを読めています。
 わからないメソッド(関数)があればマニュアル(ドキュメント)を読んで自力で調べるという作業を日常的にやっているなら、コードに関しては全く問題ないと思われます。
 ちなみにですが、僕は数学の素養が全くありません。詰まったのは主に数学関連の箇所ですねw

 
Unityの入門者

 Unityの入門者とは、ゲーム制作自体は初心者ではないが、Unityを触るのは初という人のことを指すことにします。
 このレベルの人は、まずはもっと新しいUnity関連の書籍を一冊読んでおくことをオススメします。
 というのも、本書には古い関数や技法(特にUI関連)が使用されており、このまま作るとマズイ(あるいはそもそもコンパイルエラーになる)場合があるからです。
 この辺はUnity自体の経験がないと混乱して嫌気が差すと思いますので、まずは最新の技法がある程度書かれている『Unityの教科書』あたりを読むのがよいかなーと思いました。
 まあ「この関数は古いので、代わりにこっちの関数を使ってくださいねー」というコメントはUnityが出してくれるので、それで大丈夫だというレベルの人はそのまま本書を読み進めていっても大丈夫です。
 

 
 以上3つのレベルにわけてみました。
 全ての課題をきちんとこなしながらですと、ほとんどの人は読破するまでに最低でも100時間は必要でしょう。ことによると200時間以上かかるかもしれません。
 それくらいの濃い内容がこの本には詰め込まれています。
 Unityに熟知した人なら半分程度の時間で読み終えられるかもしれませんが、そういうレベルの人はそもそもこの本の対象読者ではないかなーと思いました。
 あとはそうですねえ。
 ゲーム制作でよく使われているテクニックの説明が省かれていることがあるので、なんかで予習しておいた方がいいかもしれません。
 僕はツクールMVをいじっていたので、ゲーム制作に関するテクニックをコードレベルで知れていたのが役に立っていたかなーと思います。
 
 次はこの本の問題点について書いてみます。
 

問題点

 この本は100ページくらいまでは非常な良書です(全体で650ページほどです)。
 が、それ以降、誤字脱字や図のミス、あるいは致命的な設定間違いが目立ちます。
 一つ一つ見ていきましょう。
 
 誤字脱字

 おそらくこの本は推敲をしていません。
 あまりにも誤字脱字が多すぎるのです。
 これが読む分には何の問題もない程度ならよいのですが、設定するオブジェクト名にも誤字脱字があるので「書かれている通りにやってもうまく動かない」ということがしばしばあります。
 また、あまりにもミスが多いため、実行した結果が意図していたものと違ったとき「果たしてこれは僕のミスによって引き起こされたものなのか? それとも、そもそもこの本が間違っているために起こったものなのか?」の二つを常に考慮しなければならないのも厄介です(ミスの少ない本なら自分のミスだけを疑えばいい)。
 僕はこれらのことが非常なストレスでした。

 
 図のミス

 こちらも本質的には誤字脱字と同じです。
 図の通りに設定しても動かないことがあります。

 
 正誤表が役に立たない

 公式サイトの正誤表に書かれていない間違いが多すぎます。
 http://negilab-unity.com/archives/18587781.html
 このサイトがなければ僕は詰んでいたと思います。
 また、このサイトにも書かれていないミスも複数箇所あるので要注意です。

 
 設定の詳細を省略しているものが多い

 これは意図的なものなのでしょうが、オブジェクトの設定の詳細を省略している箇所が大量にあります。
 特にMecanim(後述します)の部分で困りました。
 また、そもそも説明が一切ないままオブジェクトが作成されていたことも数回あり(意図的なものではなくミスだと思われます)、こういった諸問題を自力で解決する能力が求められるかなーと思いました。
 サンプルプロジェクトの参照は必須です。

 
ゲームの設定が多すぎて面倒

 この本はゲーム制作の本です。
 必然的に「ゲームの設定」(HPの計算や敵の動きやマップの作成などなど……)が非常に多くなるのですが、これが「プログラミングの勉強としてUnityをしたい」という僕のような人間にとっては厄介でした。
 とどのつまり面倒なんですねw
 これらの設定はプログラムとして面白いところは一切ありませんし、ただただ面倒な作業でしかありませんでしたw
 まあこれはゲームの解説書なので仕方がないですが……。

 
Mecanimが複雑

 Unityにはゲームのアニメーションを作成するための機能としてMecanimというものがあります。
 これがかなり複雑でして、解説なしではまず理解できないだろうなーという代物です。
 僕は『Unityの教科書』や自作ゲームの制作を通じてある程度Mecanimを予習していましたが、それでもこのMecanimの複雑な設定には参りました。
 Mecanimを使ったことのない方は、このMecanimでのアニメーション設定で相当の時間を取られることを覚悟しておいたほうがよいです。
 また、本書でのMecanimの解説もごくわずかです。
 自分で調べるしかありません。

 

プログラムについて

本書のコードはおおむね理解しやすい平易なコードだと思います。
 ただ不満点がないわけではありません。
 Update関数やStart関数などに、多くのコード(機能)を詰め込んでいるのです。
 各機能ごとに空行を作ったり、コメントで「これは○○」と説明しているのですが、それでも読みにくさは否めません。
 もちろんこれはゲーム制作解説書として、プログラムを単純化した結果なのでしょうが、「機能ごとに関数でわけとけばそのコメントいらなくね?」と思うコメントも多いです(つまり可読性を下げるだけのコメント)。
 また、一つの関数がやたら長くなった弊害として、「この変数は一体どこまで使用されるんだ?」ということを常に気にしなければならなくなります。
 解説の少なさもあいまって、非常に読みにくいです。
 とはいえ初めにも書いたとおり、コメント自体は非常に丁寧に書かれているので、丁寧に読んでいけばコード自体が理解できないということはないと思います(斜め読みでサッと確認したい、という場合はイライラしながら読むことになると思いますがw)。
 

それでも得られるものは多かった

 ここまで不満をたらたらと書きましたが、それでも得られるものは多かったです。
 著者が次のUnity関連の入門書を出してくれたなら、僕は間違いなく購入するでしょう。
 それくらい、内容自体はいいんです。
 誤字脱字や設定画面のミスがなければ……と非常に惜しい本でした。
 まあその誤字脱字や設定画面のミスのおかげで、色々と調べて知識も増えたんですがw
 
 と、そんなわけで、「人にはあんまり勧められないけど個人的にはよかったかなー」と思った一冊でした。
 

フォローする