70
67

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TISAdvent Calendar 2020

Day 25

XR 開発を始めたい方への個人的 Unity Learning Roadmap 2020

Last updated at Posted at 2020-12-24

TIS Advent Calendar 2020 の最終日担当の @xrdnk です.

緒言

軽く自己紹介を.
TISのインキュベーションセンターという部署でXR開発の仕事にしてます.
こんなののとかこんなものを作ってたりしています.

コロナ禍に入り,XR(AR/VR/MR)が以前より身近な技術になってきたと感じており,
XR開発をしてみたいと興味・関心を抱く方々が増えている印象があります.

本稿はそんな方々のためのUnity学習ロードマップを個人的にまとめてみた記事になります.
(※飽くまでも個人的です.これをやれ!という強制的な意味合いを持つものではありません.)

Unity ってなに

ゲームエンジンです.クロスプラットフォームに対応で,モバイル,ブラウザ,PCなどのゲーム製作,XR,アニメや映画製作に用いられたりしています.それほど機能が豊富ということです.

今回はXR開発向けのロードマップなので,主にXRに関わる部分だけ取り上げていきます.(とはいえゲーム開発知識を持っているとアドなのは間違いない.)

プログラミング言語は C#

C#でプログラミングをします.別言語に触れたことがある場合はすぐに取っ掛かりやすいですが,プログラミング初心者の方は1冊C#の本を進めるといいと思います.

幾つか出版されておりますが…,以下の本が初心者におすすめです.

シンプルでわかりやすく説明しています.

C#8まで対応しています.文章が多めで,少し難解な部分はあるかもしれません.
デリゲート,ラムダ式,イベント,非同期処理などの高度なプログラミングについての説明があります.
中級者向け?(こちら飛ばして,下に説明する本にすぐ入ってもいいかも)

Unity 2020.2 からは C# 8 が対応するようになっているので,C# 8 まで履修しているとよいでしょう.

C#のより深い知識が必要になる場面もあり,以下の本を読むといいと思います. [実戦で役立つ C#プログラミングのイディオム/定石&パターン 出井 秀行](https://www.amazon.co.jp/dp/B06WP7HJ27/) 約750ページで分厚いので全部でなくても,以下,やったほうがいいChapterを記します.
  • ラムダ式とLINQの基礎(後述のUniRx, UniTaskなどに関わる)
  • 基本イディオム(null条件演算子,プロパティ,using文,キャスト etc.)
  • 文字列の操作(Stringのメソッドたち,StringBuilder etc.)
  • 配列とListの操作
  • ディクショナリの操作
  • ファイルの操作(IO操作)
  • シリアル化,逆シリアル化(JSONのシリアライズはよく使います)
  • LINQを使いこなす(後述のUniRx, UniTaskに関わる)
  • 非同期/並列プログラミング(UniTaskに関わる)

Unity 最初の取っ掛かり

最初にUnity公式が出しているYouTube動画をご覧ください.
あなたもUnity、はじめてみませんか?(字幕版)
Unityの概要を凡そ把握できると思います.

次にまずUnityがどんなものか手を動かして覚えていきます.
初心者向けの本は色々あります.以下紹介しますが,1冊いずれかやればよいかと思います.

いわゆるひよこ本.

個人的にねこ本って呼んでる.

いわゆる和尚本.

上記3冊の本に比べて少しレベルが高い印象なので,いずれか1冊終わったらこちらをやるのもあり.

Unity 実践入門的な

Unityの参考書の問題として,中級者・上級者への道標となる参考書があまりない問題があったりします.
上の本1冊終えたら,スタジオしまづの嶋津恒彦氏のUdemyコースを幾つか行うとよいと思います.
セール時を狙えば1コース,1200円~1500円程度で購入できます.

個人的オススメコースは以下の通り.

2D実践入門向け.

3D実践入門向け.

ここまでの中級者向けの日本語コースはないと感じるレベルです.
ScriptableObjectやDoTween,ModelやViewの概念等を把握できたり,実践的なUnityC#コーディングを追えることができます.

(2021.03.28 更新)

実践的と言える本が最近出版されました.
著者の方々は Cyber Agent グループの方々で,実践的な内容を学ぶことが出来ます.

ここまでゲーム向けのUnity開発ばっかりやんけ~と思われる方が多いと思いますが, XR開発はゲーム制作の延長というのが実感としてあります.

VR開発 最初の取っ掛かり

ここからVR開発,最初の取っ掛かりです.
正直この記事執筆段階では,UnityのVR開発本はないと思っています.
(あるにはあるけどUnityのバージョンが低かったり…個人的にうーんという感じのものだったり)

そこでですが,以下のUdemyコースをオススメします.
VR開発をやるからには,Oculus Quest / Quest 2 を所持しているとみなします.

VR Development Fundamentals With Oculus Quest / Quest 2 And Unity
全て英語ですが字幕付きです.動画を追って手を動かすだけでも把握できると思います.
ハリーポッターのクィディッチを題材に,Oculus Integration,XR Interaction Toolkitの使い方を説明し,
ジェネリックBeat Saberっぽいのを作りながら,Oculus Quest を用いたVR開発の事始めを身に着けることができます.

Multiplayer Virtual Reality (VR) Development With Unity
上のコースと同じ講師で,VR × マルチプレイ開発を身に着けることができます.
現在Unityでマルチプレイといえば,Photonがよく使われており,使い方も知ることができます.
コースではOculus IntegrationのAPIではなくXR Interaction ToolkitのAPIをメインで実装しています.
キャラクターの頭部や腕の動き,移動の同期,ボイスチャット機能などを学ぶことができます.

ここまでやれば,Quest / Quest 2 での開発は大丈夫だと思います.

AR開発 最初の取っ掛かり

iOSに対してはARKit,Androidに対してはARCore...という時代がありましたが,
現在はAR Foundationをまず触れるのがAR開発の初歩ではないかなと思います.
Mac機がない場合はiOS対応できませんが,Androidには対応できますので,Windows機があれば大丈夫です.

今現在出ているAR参考書なんですが,古いものでは以下の本が出版はされております….

ただ上記の本はAR Foundationが登場する前の情報になっており,今のUnity 2019 LTSでは対応していません.購入をおすすめしません.

以下の技術書がおすすめです.

日本語でAR Foundationを学べる本はこのじゅこやさんが出している本しか私は知らないです.
ARとは何か,開発環境の手順,サンプルアプリの作り方の説明も丁寧なので,まずは手を動かして一通りAR開発を知りたい方に打って付けです.

MR開発 最初の取っ掛かり

MR開発 = HoloLens開発 を前提に説明すると,Microsoftが出しているHoloLens チュートリアルをやるとよいかと思います.

HoloLensチュートリアル

つい最近 Microsoft Learn で Mixed Reality 入門チュートリアルも出てます.

Mixed Reality 関連の Microsoft Learn のまとめ

HoloMagiciansというHoloLensアプリ開発者グループみたいなのがありまして,
ここで登壇しているつよつよな方々の資料がとても詳しいので,そちらを参考にするのを激しくオススメします.

HoloMagicians

後はMixed Reality Toolkit(MRTK)に沢山触れればいいんじゃないかな….(投げやり)
MRTKのドキュメント,HoloLabの方々が翻訳して下さっております.(大変感謝)

Mixed Reality Toolkit Official Document

XR開発 もっといろいろ勉強したい場合は…

チュートリアル,基礎レベルまで終えたら,自分でオリジナルアプリを作りながら,
詰まったら調べる…を繰り返していくのがスキルアップへの道だと思います.

どうしても不安という方は,Unity Learn Premiumというのオススメです.Unity公式が出している学習コンテンツです.

Unity Learn Premium (XRで検索)

こちら今まではUnity Personalだと閲覧可能なコースは限定されていたのですが
今年の春くらいからコロナの影響もあるのか,Unity Personalでも全部解放されるようになりました.
欠点といえばだいたい英語というところですが,Unityに触れる以上は英語は必須だと思いますので乗り切りましょう.

日本語で書かれているのもあります.

(追記)

ここ最近,Unity Premium の日本語対応されました.殆ど日本語で読めるようになっています.

初心者向け VR 開発入門:エスケープルーム
内容としては,VR Development Fundamentals With Oculus Quest / Quest 2 And Unity の前半と同じ感じです.

その他インプット

以下からはプラスアルファ要素になります.

ソーシャルゲームのクライアント入門以前

izmさんのこちらの記事がとてもタメになります.
[ソーシャルゲームのクライアント入門以前]
(https://neon-izm.github.io/before_join_socialgame/docs/)

UniRx/UniTask本

UniRx/UniTask完全理解 より高度なUnity C#プログラミング

とりすーぷさんのUniRx/UniTask本です.
UniRx, UniTaskのリファレンス本になります.

UniRxを利用すれば,Unity でリアクティブプログラミングが出来るようになります.
とはいえ,2023年現在は Rx は主流ではなくなりつつあります.
MVRPというデザインパターンを知っていればいい程度でよいかなと思います.

UniTaskを利用すれば,Unityでasync/awaitを使った高パフォーマンスな非同期処理を記述することができます.
(さようならコルーチン)

Extenject(旧 Zenject)本

ZenjectチョットワカルBook

いもさんのExtenject本です.
Extenject(旧 Zenject)はUnity用のDIフレームワークのライブラリです.
必須までは行かないんですが,DIを使っている現場では参考になる本でしょう.
Extenjectの使い方について日本語で書かれている貴重な本です.

VContainer

UnityでDIライブラリといえばExtenjectがメジャーでしたが,VContainerが最近登場しました.

その他アウトプット

個人開発なんも思い浮かばないどうしよう…….でも何か作ってみたい…
そう思った場合は以下のゲームジャムに出てみるのはどうでしょうか.

1週間でUnityでゲームを作ります.別に締切過ぎても大丈夫.
Unityの新機能を試したり,アウトプットの機会の場として利用していいんじゃないんでしょうか.
ガチ勢がすごすごゲームを投稿しますが,気にしなくていいです.だいたい本業ゲームプログラマーなので….
基本的に3か月スパンで開催されている認識です.

clusterはマルチデバイス、マルチプレイのゲームを制作できるプラットフォームです.
2日間でclusterのワールド制作を行います.
今年夏と冬に開催されました.来年以降もやりそうな気配….半年スパンという認識.
clusterはCluster Creator Kitを利用して開発します.(C#ランライムスクリプトが使えない)
Cluster Creator Kitにはアイテム、トリガー、ギミック、オペレーションの4つのコンポーネントがあり,
これらを主に組み合わせて制作していきます.
3Dのワールド制作,レベルデザインのアウトプットの場としてうってつけです.
VRのコンテンツ制作にも生かせますし,つよつよワールドを作れたら,賞も貰えるチャンスもありますしね.

結言

以上,XR開発始めたい方への個人的Unity Learning Roadmap 2020でした.
全てこちらに記述されていることを実践しろといえばそうではなく,各個人参考程度になれば幸いです.
他にこんなのがあるよ!!これもおすすめだよ~~!!というのがあればコメント頂けると嬉しいです.

70
67
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
70
67

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?