Unityで学ぶプログラミング

Unityは一般的にゲームエンジンと言われています。ゲームを作るための機能が満載されています。また多くの拡張機能を用意されいます。

本教室ではUNITYの機能を活用して3Dキャラクタを動かすことを中心に、プログラミングを学んでいきます。

C#

C# Script
UnityでのC#プログラミングはベクトルや回転の計算、ゲームオブジェクトの制御のためUnityEngineのライブラリーを多用します。そのため UnityでC#のプログラミング言語仕様を学ぶには適切でないと考えます。
本教室ではdotnetのコンソールアプリケーションとしてC#のプログラミング言語仕様を最初に学びます。

C#の言語学習は3か月から12ヶ月です。

ある程度、言語仕様が理解できた段階でUnityでゲームオブジェクトの制御をプログラムで動かす学習に進んでいきます。

dotnet

C# Script
dotnetコマンドで小さいプログラムをつくりながらC#のプログラミング言語仕様を最初に学びます。
dotnetはWindows11のPowerShellで実行します。 またプログラミングエディタとしてとVisualStudioCodeを使い、ショートカットを含めエディタの使い方やわかり易いプログラミング記述方法を学びます。

No Code

プログラミング言語だけ学んでもあまりおもしろくありません。プログラミング言語の学習は30分ぐらいで残りの時間は
  • Blenderでのアイテムの作成
  • Terrainを使った地形やゲームワールドの作成
  • ProBuilderでの3Dオブジェクト作成
  • 3Dキャラクタの作成
  • マテリアル、テクスチャの使い方
  • Skyboxやライティングのゲームワールドの環境の設定
  • 環境音やBGMサウンドを作成
  • キーフレームについて学び、基本的なアニメーションの作り方
  • カメラやCinemachineを駆使し複数のアニメーションやアイテムを位置を変更するなどUnityのtimeline機能の学習
などのC#スクリプトを使わない機能から学びます。

UnityのEdita画面をひらくと設定項目があまりにも多く、知識がないと途方に暮れるくれます。また多くの機能が提供され全てを学ぶには数年かかります。
本教室でゲームをつくるための機能の使い方をひとつづつ習得していきC#プログラミングでその制御方法を学んでいきます。

Input Manager

Gama Pad
入力デバイスはゲームパッドのLogicoolF310を使用します。 入力システムとしてUnityで用意されているのがInputManager です。 InputManagerでゲームパッドのジョイスティックとボタンを割り当てます。 新機能としてInputSystem が用意されていますが、プログラミング初級者にとって理解しやすいInputManager を最初に学びます。

スクリプトエディタ

Script Editor
スクリプトエディタはVisualStudioCodeを使用します。
UnityのデフォルトではVisualStudioになってますが、Preferencesの外部スクリプトエディタの設定を変更します。

Terrain #1

Terrain#1
3D環境で屋外シーンを作成するためのツールです。
地形の高さを調整: ブラシツールを使って、地形の高さを自由に調整できます。山や谷、平地など、思い通りの地形を作成可能です。
テクスチャの適用: 地形に様々なテクスチャを適用することで、草地、岩場、砂漠など、リアルな地形を表現できます。

Terrain #2

Terrain#2
国土地理院から3D地図データをダウンロードしTerrainに変換します。
リアルな地図データを元にゲームワールドを作成します。

ProBuilder

ProBuilder
Unity Editor内で直接3Dオブジェクトを作成・編集することができるプラグインです。
Terrainと合わせてゲームワールドの作成に使います。

Animationコントローラ

Animation Controller

Unityでキャラクターやオブジェクトのアニメーションを管理する重要なコンポーネントです。

State Machineと呼ばれ、複数のアニメーション状態(State)を持ち 状態間の遷移(Transition)を条件付きで定義できます。

float, int, bool, triggerの4種類パラメータを スクリプトから値を変更し アニメーション遷移を制御します。

キャラクタを動かす基本機能ですの多くの時間を学習します。

Cinemachine

Cinemachine
CineMachineはUnityのためのカメラシステムで、プロフェッショナルな映像制作のようなカメラワークを実現できるツールです。

カメラワークの学習をします。

Dolly Track

Dolly Track
Dolly Trackは、Cinemachineで提供される重要なカメラ制御機能の1つで、以下のような特徴があります:
  • 事前に設定したパス(Path)に沿ってカメラを移動させる
  • スプライン曲線を使用して滑らかな動きを実現
  • パスは3D空間内で自由に配置可能

ゲームのオープニング映像の作成に活用します。

サウンドクリエイト

DSP
効果音作成ソフトウェアDSPシリーズとオーディオ編集ツールAudacityを使い効果音を作成します。

BGM

DSP
AIで音楽が作れる時代になりました。
音楽生成サイトのひとつである suno AI を利用してBGM音楽を作ります。

Skybox

DSP
Skyboxは、3Dシーンの背景として使用される環境テクスチャです。ゲームや3D環境の「空」や遠景を表現するのに使われ、シーンに奥行きと雰囲気を加えます。
PolyHavenからHDRファイルをダウンロードし、Skyboxの変更、設定方法を学びます。

テクスチャ

DSP
テクスチャはゲームオブジェクトの表面に適用される2D画像で、3Dモデルに詳細や色を追加するのに使用されます。
テクスチャファイルの意味とマテリアルへの設定方法を学びます。また、3DペイントツールのInstaMatを使って写真からテクスチャファイルを作成します。

Raycast

Raycast
UnityのRaycastは3Dゲーム開発において非常に重要な機能です。
Raycastとは、指定した方向に仮想的な光線(Ray)を飛ばし、それが何かのオブジェクトに当たったかどうかを検出する機能です。主な用途は:
  • 衝突検出
  • オブジェクトの選択
  • 視線や射撃の判定
  • 地形との接触判定
基本的な使い方を学びます。

NavMesh

NavMesh
NavMeshは、3Dゲームやアプリケーションでキャラクターや敵のナビゲーションを効率的に管理するためのUnityエンジンの重要な機能です。 基本的な使い方を学びます。