VR・Unity開発の学習におすすめの本・サイトをまとめ

f:id:nepio:20180924015615p:plain

仕事で一時期VR・Unityを触る機会があったので勉強していました。学習する中で読んだ本、サイトなどを思いつく限り紹介します。

本記事は、完全なプログラミング初学者向けではありません。・他の言語の経験はあるがUnityやC#の勉強がしたい!という方向けのまとめです。

書籍編

VRコンテンツ開発ガイド 2017 おすすめ度:★★★☆☆

VRコンテンツ開発ガイド 2017

VRコンテンツ開発ガイド 2017

  • 作者: 西川善司,古林克臣,野生の男,izm,比留間和也
  • 出版社/メーカー: エムディエヌコーポレーション
  • 発売日: 2017/05/16
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

VRを利用するために必要なアイテムであるHMD(ヘッドマウントディスプレイ)の種類や分類、仕組みといった内容から、VRコンテンツの分類、開発方法などの全般的な説明があります。

VRの全体像、歴史などをまず頭に入れたい場合おすすめできる本です。VRに関する知識0の状態なら非常におすすめできますが、ある程度知識がある人、開発をゴリゴリ始めたい人向きではないです。

最初に読む本としてはおすすめ

Unity5 3D/2Dゲーム開発実践入門 作りながら覚えるスマートフォンゲーム開発 おすすめ度:★★★★☆

WebなどのプログラミングとUnityにおけるゲームプログラミングの一番大きな違いは、

GUIを使ってグラフィックの編集をする必要があるという点ではないかと思います。

3Dモデルや物体を空間に配置してフィールドデザインしてから、ソースコードを書いて動きを制御する必要があるわけです。

Webのプログラミングに習熟した人でもグラフィックの編集方法やフィールドデザインの方法は0から勉強するしかないわけです。

この本は、そのようなUnityに固有の要素について、実際に手を動かしてサンプルアプリケーションを作成することで丁寧に解説しています。

C#のプログラミングに関する基礎的な解説はないのでプログラミング初学者におすすめできる本ではありませんが、他の言語で経験がありUnityに固有の要素を効率よく覚えたいという人にはおすすめできる本だと思います。

VRを気軽に体験 モバイルVRコンテンツを作ろう! ThinkIT Books おすすめ度:★★☆☆☆

VRを気軽に体験 モバイルVRコンテンツを作ろう! ThinkIT Books

VRを気軽に体験 モバイルVRコンテンツを作ろう! ThinkIT Books

VRコンテンツをUnityで作る本って非常に数が少ないです。何故か考えてみるとVRコンテンツは表示方法がVRなだけで普通の3Dゲームを作成するのとそれほど作り方が変わらないからだと思います。

本書は、VRコンテンツを作る本となっていますが、内容は殆ど3Dゲーム作成でしかないし、それほど書かれている内容も高度ではないのでおすすめしません。

ユリイカ 2018年7月号 特集=バーチャルYouTuber おすすめ度:★★★☆☆

ユリイカ 2018年7月号 特集=バーチャルYouTuber

ユリイカ 2018年7月号 特集=バーチャルYouTuber

  • 作者: キズナアイ,届木ウカ,月ノ美兎,赤月ゆに,万楽えね,みゅみゅ,皇牙サキ,広田稔,じーえふ,海猫沢めろん,ばるぼら,さやわか,黒瀬陽平
  • 出版社/メーカー: 青土社
  • 発売日: 2018/06/27
  • メディア: ムック
  • この商品を含むブログを見る

VRともUnityともちょっと違うがそれほど遠くもないVTuberの特集号です。

VRやUnityのことはちょっとわかったけどVTuberのことはようわからん!って場合に読んでみると楽しいかもしれません。

キズナアイのインタビューとか結構すごいこと書かれていて単純に興味深いです。(キズナアイって動画自体は全然おもしろくないんですが、キャラ設定は秀逸ですよねぇ・・・。)

まあ、VTuberに興味がある場合、実際に動画を見てみた方が早いのではないかと思いますが・・・。

個人的には輝夜月ちゃんが大好きです・・・。

Game Programming Patterns ソフトウェア開発の問題解決メニュー impress top gearシリーズ おすすめ度:★★★★☆

Game Programming Patterns ソフトウェア開発の問題解決メニュー impress top gearシリーズ

Game Programming Patterns ソフトウェア開発の問題解決メニュー impress top gearシリーズ

Unityやゲーム関連の書籍などってとりあえず動くサンプルコードを提示しているものの、どのようにコードを書いていくかという設計思想みたいなものを解説している本ってほとんど見つかりませんでした。

実際に製品レベルでプログラミングをしようとした場合、サンプルコードの継ぎ接ぎではソースコードの品質に不安がありますよね。

じゃあ実際にゲーム開発現場でUnityはどういう風に使われているの?っていう部分の情報が圧倒的に少ないです。

本書はUnityの本でもVRの本でもないためその直接的な解決にはなりませんが、それよりも一般的な設計思想・デザインパターンに関する解説書です。

Unityで開発をしていると必ず頭を悩ます問題、例えばシングルトンによるデータの永続化や共有、UniRXによるオブザーバパターンなどの可否についてこの本を読むと検討できるようになるかと思います。

ある程度開発に慣れてきた段階、Unityの周辺ツールに関する学習が進んできた段階で読むといいと思います

サイト・記事編

Web出身のUnityエンジニアによる大規模ゲームの基盤設計 おすすめ度:★★★★☆

developers.cyberagent.co.jp

近年、UnityではMVPと言われる設計思想が流行っていて、その発端となったポスト。読んでおいて損はないです。

MVPというのは、Ruby on RailsにおけるMVCのようにソースコードの機能を役割ごとに分類して整理する設計方針です。

Web開発者にとっては慣れ親しんだ設計思想なため飛びつきたくなりますが、なんでもかんでもMVPという設計思想に落とし込むべきかはよく考える必要があります。

本記事は、ソーシャルゲーム開発にUnityを利用した事例であるため、Webアプリと機能が大きく変わらないため、Webで一般的な設計思想がうまくワークするかもしれませんが、VRや3Dゲームにもその理屈が当てはまるかはかなり疑問です。

とはいえ、紹介されているUniRXやzenjectなどは有用なツールなので記事を参考に手を動かしてみるのはおすすめです。

まあ、意識の高いデザインパターンというのはそもそも多くのプロジェクトでオーバースペックなものなので、適切に利用しないと学べば学ぶほどコードが長くなるみたいなことになるので気をつけたいところです・・・。

テラシュールブログ おすすめ度:★★★★☆

tsubakit1.hateblo.jp

Unityで何かを作ろうと思ってgoogle先生で検索すると必ずお世話になるブログです。圧倒的コンテンツ量・・・。Unityに関する大体の情報は個々に詰まってます・・・。

もうなんかググれば必ずお世話になるので紹介する必要もないような・・・。

VRコンテンツのつくりかた3 おすすめ度:★★★★☆

github.com

VTuberのような3Dモデルをどのように動かすかどういう実践的で網羅的な解説書。技術書店で販売されていた内容みたいですが、githubで無料で公開されています。

YVTuberというライブラリも公開されていて、簡単に試せるのですごく勉強になります。

github.com

はじめてのVR開発 おすすめ度:★★★★★

unity3d.com

Unity公式のVR開発のチュートリアルです。あんまりわかりやすくも簡単でもないですが、まずはこれを動かしてみて記事を読んでみないことには何も始まりません。

ツール編

よく使うライブラリなど。

Zenject

https://github.com/svermeulen/Zenject

Unityでは、プロジェクトの規模が大きくなってくると「コードのある部分が別のある部分に定義されているクラスを呼び出す」といった参照関係を管理することが難しくなります。

参照関係をUnityエディタ上で管理する場合はなおのことです。コードベースで依存関係が整理されていないと、何かの弾みにGUIのどこかのパラメータを変更されて、プログラム全体が動かなくなって動かない、みたいな事になりがちです。

Zenjectを利用するとコンテナと呼ばれるクラスにそれらの参照関係をまとめて定義することができるので管理が楽になります。

UniRx

https://github.com/neuecc/UniRx

UniRXは、結構機能が沢山あるライブラリっぽいのですが、現段階では筆者はそんなに使いこなせていません。

個人的には、単純なオブザーバパターンならC#のデフォルト機能であるEventで十分じゃね?って気がするので、ちょっとオーバースペックかなと思います。

↓以前書いた記事。

sodefrin.hateblo.jp

まとめ

というわけで筆者的におすすめの学習プロセスは、

VRコンテンツ開発ガイド → Unity5 3D/2Dゲーム開発実践入門 → Web出身のUnityエンジニアによる大規模ゲームの基盤設計 → (関連ライブラリの学習) → Game Programming Patterns

という感じでしょうか。今後VRとかUnityとかまた触ることあるのかわかりませんが、知識に進捗が出たらこのブログでもまとめていきますね。