UnityEditorとプログラムの役割と必要なチームメンバー - Unity開発PMのための知識-
最近ではゲームはもちろんVR/ARやデジタルツインなどのアプリをUnityを使って開発することがおおくなっているかとおもいます。しかし使いたくてもUnityのようなゲームエンジンを使ったことがないという人が大変なのではないかなと思います。そんな中、Unityを使った開発のプロジェクトマネジメントでどんなことを知ってなければいけないのか、という質問を頂くことが多かったので、その内容についてまとめてみようと思いました。
ポイントは、「Unityで開発したことない、プログラミングしたことない人」「抑えておくべき最低限の知識」という感じで、最初の最短のゴールをお示ししようと思います。
まず押さえておくべきは、Unity Editorとプログラムの役割の違いではないかと思います。逆に言えば、これがわかっているとUnityを使ったプロジェクトでの役割分担のイメージを大きく掴めるのではないかと思います。まずはそこから学んでみましょう。
Unity Editorの役割
Unity Editorは、**ゲームやアプリを開発するための統合開発環境(IDE)**です。プログラミングだけでなく、ビジュアル的な操作でプロジェクトを作成・管理できます。
主な機能
1. シーンの構築
• 3D/2D空間を視覚的に構築する。
• オブジェクト(キャラクター、背景、アイテムなど)を配置する。
• カメラやライトなどの設定を行う。
2. アセットの管理
• テクスチャ、3Dモデル、サウンド、スクリプトなど、プロジェクトに使用する素材(アセット)を整理・管理する。
• アセットストアから素材を追加する。
3. 設定の編集
• プロジェクト全体の設定(解像度、プラットフォーム)や、個々のオブジェクトのパラメータを編集。
4. プレイモード
• プロジェクトをエディタ内で実行し、ゲームやアプリの挙動を確認する。
5. ビジュアルスクリプト的操作
• コードを書かなくても、インスペクターでオブジェクトの動作や特性を変更可能。
プログラムソースコードの役割
Unity Editorだけでは、オブジェクトの動きや複雑な処理を作成することはできません。そのため、ソースコードを使ってロジック(動作のルール)を定義します。
主な機能
1. 動きの指示
• オブジェクトを動かす(例: キャラクターがジャンプする)。
• ユーザーの操作に応じて動作を変える(例: ボタンを押すと音が鳴る)。
2. ゲームやアプリの状態管理
• スコアの管理、タイマー、ゲームの進行状況など。
3. データの操作
• 外部データ(ファイルやクラウド)とのやりとり。
• 動的にシーン内のオブジェクトを生成・変更する。
4. イベント処理
• 特定のタイミングで処理を実行する(例: 敵がプレイヤーに接触したらゲームオーバーになる)。
チームメンバーの役割と、Unity Editorとソースコードの関わり方
Unityプロジェクトでは、Unity Editorとソースコードが密接に連携し、ゲームやアプリの動作と見た目を作り上げます。それぞれの役割に応じて、Editorを使う範囲やソースコードに関わる度合いが異なります。以下に、チームメンバーの役割とUnity Editor、ソースコードとの関わり方を整理します。
プロジェクトマネージャー(PM)(必須度:★★★★☆)
役割
プロジェクト全体の進行を管理し、チーム間の調整を担う。
Editorとの関わり
Unity Editorの基本的な操作(シーン構成やアセットの配置状況の確認)。
チームで統一する設定や命名規則を管理。
ソースコードとの関わり
コードの直接編集はしないが、実装タスクの優先順位付けや仕様調整を担当。
シーンデザイナー(必須度:★★★☆☆)
役割
Unity Editorを使い、シーンを視覚的に構築する。
プログラマーや3Dモデルクリエイターがこの仕事を兼ねる場合があります。
Unity Editorとの関わり
オブジェクト(キャラクター、背景、アイテムなど)の配置。
ライトやカメラの設定、インスペクターを使用したオブジェクトのパラメータ編集。
プレハブを作成して再利用可能なオブジェクトを管理。
プログラマー(スクリプトエンジニア)(必須度:★★★★★)
役割
ソースコードを使い、ゲームロジックや機能を実装する。
Unity Editorとの関わり
Editor内でスクリプトをオブジェクトにアタッチし、挙動を確認
Playモードでのデバッグや動作検証。
ソースコードとの関わり
MonoBehaviourを基にしたC#スクリプトの作成。
入力処理やゲーム進行のロジックを実装。
データのやりとり(API通信やデータベース操作)。
3Dモデルクリエイター(必須度:★★★★★)
役割
3Dモデルやアニメーションの作成、最適化を担当し、プロジェクトのビジュアル面を構築。
高品質なビジュアルデザインやゲーム・アプリの視覚的魅力を向上させる。
Unity Editorとの関わり
3Dモデルの作成
外部ツール(Blender、Mayaなど)で制作したモデルをUnity Editorにインポート。テクスチャ・マテリアルを設定。プレハブ化して再利用可能に。
アニメーションの作成
Animator Controllerでアニメーションを設定。動作をシーンに適用。
モデルの最適化
ポリゴン数やテクスチャ解像度を調整し、パフォーマンスに配慮。
テストと調整
Unity Editorでプレイモードを使い、見た目や動作の確認。
テクニカルアーティスト(必須度:★★★☆☆)
役割
アートとプログラムの橋渡し役として、ビジュアルとパフォーマンスを両立。
求めるクオリティ次第では必要な役割。プログラマーや3Dモデルクリエイターが兼ねる場合があります。
Unity Editorとの関わり
Shader GraphやParticle Systemを使ったビジュアルエフェクトの作成。
モデルやマテリアルの調整を行い、見た目を向上。
ソースコードとの関わり
スクリプトからShaderやエフェクトを制御するための連携仕様をプログラマーと調整。
UI/UXデザイナー(必須度:★★★★☆)
役割
ユーザーインターフェースを設計し、使いやすさを追求。
Unity Editorとの関わり
UnityのUIツール(CanvasやRectTransform)を使ってレイアウトを設計。
アニメーションの設定(UIトランジションやインタラクション)。