Unity Learnの初心者向けパスウェイ3つをやった感想

[UdonTech Advent Calendar 2022](https://qiita.com/advent-calendar/2022/udontech)の6日目です。

[Unity Learn](https://learn.unity.com/)というUnity公式の学習リソースのなかの初心者向けの3つのパスウェイ（=講座）をやってみましたので、感想を書きます。

# Unity Learnについて

https://learn.unity.com/

Unity公式のUnity学習リソースです。色々コンテンツがありますが、大きなコンテンツとして以下の4つのパスウェイ（=講座）が用意されています。

1. [Unity Essentials](https://learn.unity.com/pathway/unity-essentials)
2. [Junior Programmer](https://learn.unity.com/pathway/junior-programmer)
3. [Creative Core](https://learn.unity.com/pathway/creative-core)
4. [VR Development](https://learn.unity.com/pathway/vr-development)

Unityを初めて触る人はまず「Unity Essentials」を進めて、終わったらプログラマー志望の人は「Junior Programmer」を、いわゆるクリエイティブ系？（VFX, Lighting, Animation, Audio, UI and other creative skills）志望の人は「Creative Core」を進めるという流れのようです。どのパスウェイも大部分は日本語化されていました。日本語化されていないものは頑張って英語で読んだり、日本語翻訳して流し読みしたりしました。

「VR Development」は最近（2022年5月頃？）できたVR開発用のパスウェイのようです。

今回は「Unity Essentials」、「Junior Programmer」、「Creative Core」の3つのパスウェイをやりましたので、内容を紹介します。

# 「Unity Essentials」について

https://learn.unity.com/pathway/unity-essentials

「Unity Essentials」は、Unityを初めて触る人向けの講座でした。一週間程度で終わる内容でした。

内容としては、Unityを挫折せずに学んでいくための心構えとか、Unity EditorやUnity Hubの基本的な操作方法とか、Unityを学んでいく上で役立つイベントやコミュニティの情報とか、ゲーム作りをしていく上で大事な計画の立て方・プロジェクトの進め方とか、みたいなものが学べました。

Unityはゲームプログラミングをする人以外にも、人物やステージなどの3Dモデルを作ったり設置したりする人、アニメーションを作る人、ライティングやエフェクトを設定する人、BGMや音声や効果音を設定する人、ゲームのレベルデザインをする人なども使うものなので、この講座は特にプログラマーに向けた講座というわけではありませんでした。

純粋にUnityの使い方を教える講座というよりは、これからゲーム業界を目指す人、ゲーム作りを志す人に向けて、技術以前に大事な心構えや、独学で勉強していくため学習リソースを教えてくれる感じのもので良かったです。自分もこれからゲーム作りを頑張ろうと思える内容でした。

「Unity Essentials」の内容は以上です。


# Junior Programmerについて

https://learn.unity.com/pathway/junior-programmer

「Junior Programmer」は、プログラマー志望向けの講座でした。「Unity Essentials」の4倍ぐらいの分量がありました。

この講座は基本的に動画主体な作りでした。講師の人がUnityの操作を行っているお手本動画を見て、自分でも同じようにUnityを操作していく感じでした。

## [Unit 1 - Player Control](https://learn.unity.com/project/unit-1-driving-simulation-jp?contentId=5f7229b2edbc2a001f834db7&missionId=5f71fe63edbc2a00200e9de0&pathwayId=5f7e17e1edbc2a5ec21a20af)

キーボード入力を受け取って車を動かして障害物を避けるゲームを作りました。オブジェクト・カメラの動かし方、RigidBodyの追加の仕方、キーボード入力の受け取り方、基礎的なScriptの書き方が学べました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952672/309a23af-46d4-52f4-9856-3f97416c92c9.png)

## [Tutorial: Introduction to project management and teamwork](https://learn.unity.com/tutorial/5fad6521edbc2a07ae8da53e?pathwayId=5f7e17e1edbc2a5ec21a20af&missionId=5f71fe63edbc2a00200e9de0)

プロジェクトマネジメントの解説でした。プランニングとは何か、デザインドキュメントの書き方、日々のスケジュール管理、時間管理の仕方などが学べました。

## [Unit 2 - Basic Gameplay](https://learn.unity.com/project/5cdcc312edbc2a24a41671e6?pathwayId=5f7e17e1edbc2a5ec21a20af&missionId=5f71fe63edbc2a00200e9de0)

上から走ってくる鹿にピザをぶつけて消す縦スクロールゲームを作りました。ゲーム中にオブジェクトを生成する方法、乱数の使い方、メソッドの定期実行方法、衝突判定・衝突時の処理の仕方が学べました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952672/9c1444b3-4aac-7df3-d94c-0d9bb1a4e0ed.png)

## [Unit 3 - Sound and Effects](https://learn.unity.com/project/5cf9639bedbc2a2b1fe1e848?pathwayId=5f7e17e1edbc2a5ec21a20af&missionId=5f7648a4edbc2a5578eb67df)

走っているおじさんを操作してジャンプしながら障害物を避けていく横スクロールゲームを作りました。キャラクターのアニメーションのさせ方（Animatorの使い方）、パーティクルの使い方、BGMや効果音を再生する方法が学べました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952672/459f52ce-0a36-605e-10bf-33f3ed1cad8d.png)

## [Unit 4 - Gameplay Mechanics](https://learn.unity.com/project/5cf96846edbc2a2bcde6d0fc?pathwayId=5f7e17e1edbc2a5ec21a20af&missionId=5f7648a4edbc2a5578eb67df)

マリオパーティーの[「のっかれボール」](https://www.google.co.jp/search?q=%E3%83%9E%E3%83%AA%E3%82%AA%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3+%E3%81%AE%E3%81%A3%E3%81%8B%E3%82%8C%E3%83%9C%E3%83%BC%E3%83%AB&tbm=isch)みたいな、球をぶつけて敵を落とすゲームを作りました。ゲーム性を高める工夫（強化アイテムを置く、ウェーブ毎に敵を増やす等）、初歩的なベクトル計算（自分と敵の距離を求める）、コルーチンによる非同期処理（一定時間後に強化状態を解除する）などが学べました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952672/b5d2218e-82fa-a5d2-de48-70ee02c7c492.png)

## [Unit 5 - User Interface](https://learn.unity.com/project/5cf96bdeedbc2a2b475972b3?pathwayId=5f7e17e1edbc2a5ec21a20af&missionId=5f7648a4edbc2a5578eb67df)

TextMeshProによるテキスト表示やボタンのクリック処理の方法が学べました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952672/40559008-c2fb-7c19-9060-dbbf54bf18cc.png)

## [Introduction to user feedback and testing](https://learn.unity.com/tutorial/5fabdd30edbc2a2003a571d0?pathwayId=5f7e17e1edbc2a5ec21a20af&missionId=5f7648a4edbc2a5578eb67df)

構造化された（=かちっとした）ユーザーテストのやり方や、フィードバックのもらい方が学べました。結構なるほどと思う内容が多かったです。

## [Next Steps](https://learn.unity.com/project/5d092adcedbc2a0e5c02d26f?pathwayId=5f7e17e1edbc2a5ec21a20af&missionId=5f7648a4edbc2a5578eb67df)

分からないことをググりながら調べていく方法や、Unityマニュアルの見方、Windows版/Mac版/WebGL版のビルド方法、DOTSやECSの概要などが学べました。

## [Career research and preparation](https://learn.unity.com/tutorial/5fad94a6edbc2a002016e6f8?pathwayId=5f7e17e1edbc2a5ec21a20af&missionId=5f7648a4edbc2a5578eb67df)

「Junior Programmer」講座を終えた後にどんな職種につけるのか、Unityの認定資格の種類などが学べました。

## [Introduction to portfolios](https://learn.unity.com/tutorial/5fad8c71edbc2a0020bdeaa7?pathwayId=5f7e17e1edbc2a5ec21a20af&missionId=5f7648a4edbc2a5578eb67df)

ポートフォリオの作り方、ポートフォリオの参考例などが学べました。

## その他

以上で「Junior Programmer」の半分が終わりました。

残りの半分は、そんなにがっつりとUnityを触る感じではありませんでした。概念的・座学的な内容が多めでした。

雑に箇条書きすると以下のことが学べました。

- ゲーム開発プロジェクトの進め方。マーケットリサーチやプロトタイピングや開発モデル（ウォーターフォール or アジャイル or ハイブリッド）
- Gitによるバージョン管理方法（GitHubアプリの使い方）
- サンプルゲームのソースコードリーディング
- オブジェクト指向の基本的な原則（抽象化、継承、多態性、カプセル化）
- Sceneの切り替え方
- シングルトンの実装方法（DontDestroyOnLoad等）
- データの保存方法（オブジェクトのJSON化、ファイル書き込み）
- Profilerの使い方、Profiler.BeginSample、EndSampleを使って重い処理を見つける方法

「Junior Programmer」の内容は以上です。


# Creative Coreについて

https://learn.unity.com/pathway/creative-core

「Creative Core」は、クリエイティブ志望向けの講座でした。

内容としては「Shaders and materials」、「Lighting」、「Animation」、「VFX」、「Cameras」、「Post-processing」、「Audio」、「UI」、「Prototyping（TerrainやProBuilderなど）」という感じでした。

私は「Junior Programmer」を終わらせた後に「Creative Core」をやりました。多少Scriptは組めるようになったけど、それ以外の表現方法は全然分からない！という状態だったので、「Creative Core」の内容はちょうどいい感じでした。

基本的にはプログラミング要素はなく、プログラマー以外の職種の人に対して、Unityにどういう機能が用意されているかを解説したものでした。

## [Shaders and materials](https://learn.unity.com/mission/619f9b6cedbc2a39aabd7b1e?pathwayId=61a65568edbc2a00206076dd)

マテリアル（URP/Litシェーダー）の基本的な使い方や、色々なテクスチャマップの役割（Base Map、Normal Map、Metallic Map等々）、Shader Graphの基本的な使い方などが学べました。

## [Lighting](https://learn.unity.com/mission/61a106efedbc2a5554f0dcba?pathwayId=61a65568edbc2a00206076dd)

標準の各種ライトやSkyboxの使い方・設定方法や、ライトをベイクする方法、Light ProbeやReflection Probeを使ってベイクした照明からリアルタイムに動くオブジェクトへ光を当てたり鏡像を反映させたりする方法、屋内と屋外の照明の違いなどが学べました。

## [Animation](https://learn.unity.com/mission/61a64e25edbc2a0020607564?pathwayId=61a65568edbc2a00206076dd)

Animation Clipを使ってUnity上でアニメーションを作る方法、FBXのようなファイルからアニメーションをインポートして利用する方法、Animatorを使ってアニメーションの状態を管理する方法などが学べました。

## [VFX](https://learn.unity.com/mission/61a6488fedbc2a0020607444?pathwayId=61a65568edbc2a00206076dd)

Particle SystemやVisual Effect Graphの基本的な使い方やこれらを使って煙や雨や雪の視覚効果を作る方法が学べました。

## [Cameras](https://learn.unity.com/mission/61a646ceedbc2a002076823f?pathwayId=61a65568edbc2a00206076dd)

カメラの基本的な設定や、一人称視点、三人称視点、Bird's-eye view、Worm's-eye viewのようなよくある視点のそれぞれの特徴、実装例が学べました。

## [Post-processing](https://learn.unity.com/mission/61a64513edbc2a1317c57aa3?pathwayId=61a65568edbc2a00206076dd)

画面にブルーム効果、被写界深度、トーンマッピングなどを適用する方法が学べました。

## [Audio](https://learn.unity.com/mission/61a615eaedbc2a03fbc84c03?pathwayId=61a65568edbc2a00206076dd)

イベントを使ってアニメーションに合わせて音（足音など）を鳴らす方法、3D Soundの基本的な使い方、Audio Reverb Zoneの使い方などが学べました。

## [UI](https://learn.unity.com/mission/61a63fbcedbc2a0020607294?pathwayId=61a65568edbc2a00206076dd)

様々なアスペクト比や解像度の画面でも破綻しないUIの作り方（AnchorやUI Scale Mode等を使う）、ボタンやトグルやスライダーの基本的な使い方やカスタマイズ方法、World SpaceにUIを表示する方法などが学べました。

## [Prototyping](https://learn.unity.com/mission/61a617feedbc2a00253d67ee?pathwayId=61a65568edbc2a00206076dd)

プロトタイピングの進めていき方、[Startar Assets](https://forum.unity.com/threads/say-hello-to-the-new-starter-asset-packages.1123051/)や[ProBuilder](https://unity.com/ja/features/probuilder)や[Terrain](https://docs.unity3d.com/ja/2021.1/Manual/script-Terrain.html)の基本的な使い方、クリエイターとしての今後のキャリアパスについてなどが学べました。

「Creative Core」の内容は以上です。

# 終わりに

これらの講座を終わらせるとCredly（AWSの認定資格の合格証明でも使われているやつ）のバッジがもらえました。対外的な実績にもなって、ゲーム業界を目指す人には良い仕組みだなと思いました。

「Unity Essentials」のところでも書きましたが、これらの講座は純粋にUnityの使い方を教えるだけではなく、ゲーム業界に入るために必要な、Unity以外の汎用的な知識（ゲーム作りの流れやキャリアパスや心構えなど）をしっかりと教えてくれる感じで良かったです。（英語圏の情報や事情に偏っていますが、そこは仕方ないですね😇）

正直、Unityの使い方を学ぶだけなら、Unityの入門本を読んだりUdemyで入門講座を視聴したりするほうが時間効率は遥かに良いと思います。Unity Learnは、サイトは重いですし、日本語化も所々されていないですし、全部終わらせるにはそれなりのガッツが要ると思います。

それでも、ゲーム業界を目指そうとする人、ゲーム作りを頑張っていこうとする人に対するUnityの優しさやエールみたいなものが感じられて、良いものを見たな、やってよかったな、と思えました。

以上です。