N予備校生ノート - Unity 2D/3D 開発
これはなに?
コース
Unity で学ぶゲーム開発 入門
01.Unityについて学ぼう!
ゲームエンジンとは、ゲームの基礎となる処理を提供する、開発者向けのソフトウェア
代表的なものに、Unity、Unreal Engine
世の中には様々なジャンルのゲームがあるが、全く違うゲームにも共通した処理がある
そういった処理がゲームエンジン側である程度準備されている
3DCGの映像作品制作や、舞台演出などに採用されるケースも増えている
紅白、テーマパーク、珍しい例では医療現場での活用なども
なんでUnityなの?
1. 個人向けは無料
2. クロスプラットフォーム
3. 他ツールとの連携
4. 情報が豊富
5. アセットストア
6. 使用実績
学習はWindowsでやっていきます
Unity HubからUnity 2019.3.12f1をインストール
02.Unityのエディタ構成について
Unityでゲーム作りをするイメージ
Project -> Scene -> GameObject -> Component
Unity エディタ
シーンビュー
ゲームビュー
ヒエラルキーウィンドウ
オブジェクトの親子関係
Tips Unityで「オブジェクト」の定義とは?
単独でヒエラルキーウィンドウに追加できるもの全部
それに対し、モデルデータについてくる「テクスチャ」「スクリプト」はアセット
プロジェクトウィンドウ
ゲームを作成する際に使用するデータ全部
インスペクターウィンドウ
オブジェクトの設定状況を詳しく見る
コンソールウィンドウ
ツールバー
Unityやゲームプログラミングにおける概念
プレハブ
同じオブジェクトをかんたんにいくつも生成して使用することができる機能
オブジェクトをPrefabにすることを「Prefab化する」という
ライト
ディレクショナルライト
太陽
ポイントライト
電球
スポットライト
読んで字のごとく
エリアライト
長方形のエリアの片面から光を照らす。モニタみたいなイメージ
03.簡単なゲームを作ってUnityの基礎を学ぼう
プロジェクトの作成
必要なパッケージを追加
アセットストア
standard assets
ステージの作成
プレイヤーの配置
standard assetsについてるRollerBallがいきなり動かせる
アイテムの配置
PickupPrototype
スクリプトの追加
PickupPrototypeにAdd ComponentでScript足す
Updateを定義してtransform.Rotateで回す
OnCollisionEnberを定義してcol.gameObject.tag == "Player"だったらDestroy(gameObject, ...)で削除
カメラの設定
standard assetsのFreeLookCameraRigでプレイヤーに追従するカメラを作れる
FreeLookCameraRigはメインカメラを持っているので最初から配置されてるカメラは消す
ステージから落ちたら再挑戦
ステージの下にでかいBoxCollider置く
OnTriggerEnterを定義してSceneManager.LoadScene(SceneManager.GetActiveScene().name);でボールがコライダーのついたオブジェクトを通過したときにシーンをリロードする
ゲームUIを追加する
04.アクションゲームを作ってみよう
地形を追加する
Terrainにテクスチャ貼ってRaise or Lower Terrainモードに入りブラシでいじる
Main Cameraのいちを調整する
モデルデータをダウンロードし配置する
Unityちゃんのサイトにいろいろある
ボールを追加する
モデルで引っ張り回せるようにする
Spring Jointでつないで重さ調節してLine Rendererで見えるようにする
破壊できるオブジェクトを作成する
OnCollisionEnterを定義して、ボールがcol.relativeVelocity.magnitude > 5fでヒットしたらDestroy(...)で消滅しつつ、GameObject.Instantiate(effect)でエフェクトを生成する
05.2Dゲームを作ろう①
Sprite Editor
コライダーいろいろ
06.2Dゲームを作ろう②
コラム フォントにこだわろう!
07.3Dゲームを作ろう
NavMeshAgentで簡単なAI機能を実装することができる
Navigationコンポーネント
ナビメッシュをベイクする
ステージをNavigation Staticに設定して、ステージの形は変化しないことをUnity側に認識させる
Window > AI > Navigation を開いて、BakeタブからBakeでステージにナビメッシュが貼られる
状態に合わせてアニメーションを追加する
Mecanim:Unityのアニメーションシステム
追いかけてくるキャラクターを配置する
NavMeshAgentをキャラクターに追加
スクリプトにUpdateを定義し、agent.SetDestination(player.transform.position)でプレイヤーの位置を目的地に設定し続ける
ゲームルールを追加する
GameManagerという名前で空のオブジェクトを作成し、スクリプトを書く
おしまい