アプリ制作②Unityの基本操作
Unityのインストールが完了し、アプリ制作の環境が整ったところで、次はUnity Editorの使い方の基本について見ていきます。
Unity Editorのウィンドウ
まずは、Unity Editorを使ってアプリ制作を行う際に使う、編集ウィンドウの種類について知っていただきたいと思います。Unity Editorでよく使われる基本的なウィンドウには、5つの種類のものがあります。プロジェクトウィンドウ、シーンビュー、ゲームビュー、階層ウィンドウ、インスペクターウィンドウです。
プロジェクトウィンドウ
プロジェクトウィンドウ(Project Window)には、C#コードのスクリプトや写真、3Dモデル、オーディオファイル、マテリアルやテクスチャなど、プロジェクトを構成する全てのパーツが表示されます。 プロジェクトを構成するパーツのことを総称して「アセット(Asset)」と呼びます。
このウィンドウではプロジェクト内のアセットにファイルやフォルダとしてアクセスすることができます。アセットを整理したり、検索したり、フィルタリングを行ったりするのに使います。
アセットの追加、削除、編集、およびメタデータの設定もこのウィンドウを使って行います。新しいアセットを追加する際は、このウィンドウにドラッグ&ドロップするだけで、簡単にプロジェクトにインポートすることができます。
シーンビュー
Unity Editorにはシーンビューとゲームビューという2種類のプレビュー機能があります。シーンビューは、ゲームのシーンやレベルを3D空間内で視覚的に編集するためのツールです。このビューを利用しながら、アプリを構成する要素の配置や、カメラの設定、ライトの配置などを操作します。
リアルタイムでアプリの構成要素に加える変更を見ながら、アプリのビジュアルと挙動を確認できるため、シーンを設計したり、編集したり、調整したりする際に、便利なツールとして利用されます。
ゲームビュー
シーンビューと並ぶもう一つのプレビュー機能がゲームビューです。ゲームビューは、アプリを立ち上げた際にどのように見えるか、実際のプレビューを確認することのできる画面です。このビューを使用するとアプリがどのようにユーザーに表示されるかをリアルタイムで確認することができます。
ゲームビューを利用するためには、ウィンドウの上にある再生ボタンを押してプレイモードに入ります。ゲームビューはプレビュー専用のウィンドウなので、プレイモードに入るとUIやツールバーなどは非表示になります。プレイモードでは、アプリの実行を一時停止、再開、ステップ実行して確認することができます。
階層ウィンドウ
階層ウィンドウは、シーン内のオブジェクトの階層表現を表示し、操作するためのウィンドウです。このウィンドウでは、シーン内のすべてのオブジェクトの一覧が表示され、その親子関係やオブジェクトの配置順序がわかります。
この階層を利用して、オブジェクトを選択したり、整理したり、オブジェクトの表示や順序をコントロールしたりできます。オブジェクトの名前の変更などもこのウィンドウで行います。
インスペクターウィンドウ
インスペクターウィンドウは、シーン内にあるオブジェクトの中で、選択されたもののプロパティやコンポーネントを表示し、編集できるウィンドウです。後ほどゲームオブジェクトのところでもう少し詳しく説明しますが、プロパティやコンポーネントは、オブジェクトの性質を表すものです。
対象のオブジェクトにスクリプトやコンポーネントを追加したり、そのパラメータを調整したり、そのオブジェクトの挙動や外観をこのウィンドウの中でカスタマイズすることができます。テクスチャやマテリアル、アニメーションなどをプレビューしながら、変更や調整などを行うのもこのウィンドウです。
コンソール
ここまで5つのウィンドウについて見てきましたが、もう一つ追加しておきたいのが、コンソールです。コンソールは、デフォルトのレイアウトだとプロジェクトウィンドウの裏にあり、アプリケーションの実行中に発生するデバッグ情報やエラーメッセージが表示される場所です。
アプリを制作していく中で、コードが正確に書かれていない場合などに、エラーの特定と修正に役立つスクリプトの問題点や改善方法のヒント、警告メッセージがコンソールに表示されますので、頻繁に確認するウィンドウとなります。
アプリを構成する要素
ここまでのところで、Unity Editorがどのように成り立っているのかについてはご理解いただけたのではないかと思います。今度は、アプリを制作するのに必要な要素について見ていきたいと思います。ウィンドウの説明でいまいちぴんと来なかったものも、アプリを構成する要素について理解できると、もう少しわかりやすくなるはずです。
ゲームオブジェクト
ゲームオブジェクトは、Unity内でアプリの要素やオブジェクトを表現する基本的な単位です。ゲームオブジェクトという言葉は、アプリに使われるアイテム、キャラクター、環境要素など、アプリ内のあらゆるものを表現するものとして使われます。
ゲームオブジェクトには、スクリプトやコンポーネントを付けることで、挙動や機能を追加することができます。例えば、ゲームオブジェクトに「画像(Image)」コンポーネントを追加することで、このオブジェクトは画像として機能するようになります。また、ゲームオブジェクトは、3D空間内で位置、スケール、回転を持ち、これらの属性を変更してオブジェクトの配置や外観を調整することができます。
ゲームオブジェクトは階層構造を持つことができ、他のオブジェクトと親子関係を持つことができます。ペアレント(parent)オブジェクトに加えられた変更は、チャイルド(child)オブジェクトにも影響します。例えば、ペアレントオブジェクトが10センチ移動すると、チャイルドの方もペアレントと共に移動します。
スクリプト
Unityは、C#やUnityScript (JavaScript の亜種) などのプログラミング言語を使用したスクリプトに対応しています。 スクリプトの基本を理解すると、アプリ内でカスタムの動作やインタラクションを作成できるようになります。
Unityでは、スクリプトをゲームオブジェクトにコンポーネントとして付けることで、アプリの挙動をコントロールします。スクリプトはアプリ内のオブジェクト間の相互作用、プレイヤーの入力処理、AIの制御、アニメーション、ゲームルールの実装など、アプリのロジックを実現するために不可欠な要素です。
コンポーネント
コンポーネントは、ゲームオブジェクトに付けることで、そのオブジェクトの挙動や属性を制御するものです。これらを使用すると、オブジェクトの動作、物理的な物体の振る舞い、アニメーションなどを追加することができます。
Unityのコンポーネントは、独自にスクリプトを書いて機能を追加することもできますが、既製のコンポーネントもたくさん提供されているため、それを手軽に再利用することもできます。よってコンポーネントはアプリのオブジェクトの挙動、外観、相互作用をカスタマイズし、アプリ開発を効率化します。また、ゲームオブジェクト間の相互作用を実現したり、データを共有したりする手段としても機能します。
プレハブ
プレハブは、アプリ内のオブジェクトやアセットのテンプレートで、類似したオブジェクトのバリエーションを作成したり、同じオブジェクトをインスタンス(複製のようなもの)として生成して使ったりするのに便利です。
プレハブは再利用可能で、同じ設定やコンポーネントを持つ複数のオブジェクトを生成できます。また、プレハブに変更を加えると、それを基にして作成した他のすべてのインスタンスに自動的に反映されるため、一元管理が可能です。
アセット
アセットは、アプリケーションに使用されるリソースやデータを表す言葉です。アセットには、画像、音声、3Dモデル、テクスチャ、スクリプトなど、さまざまな種類のデータが含まれています。
Unityには、アセットストア(Asset Store)と呼ばれるマーケットプレイスが存在しています。アセットストアでは、3D モデル、サウンド エフェクト、スクリプト、あるいはプロジェクト丸ごとなど、非常に幅広い既製のアセットが売られています。既存のリソースを活用すると、アプリの開発プロセスをスピードアップすることができますので、ぜひうまく利用してください。
Unity Asset Storeの使い方については以下の記事に詳しく載せていますので、合わせてご参照ください。
まとめ
いかがでしたか?これで、Unity Editor の大まかな見方と、アプリ制作の基本用語とアプリの構成要素についてご理解いただけたかと思います。まだいまいちピンと来ないという人もいるかもしれませんが、レッスンを重ねていくうちにだんだんと感覚が掴めてきますので安心してください。
小テスト
ここで小テストです。
問題:ゲームオブジェクトとコンポーネントはどんな関係にあるか、ご自身の言葉で説明してください。
次回のレッスン3では、C#の基本について見ていきます。プログラミングに抵抗のある人も多いと思いますが、わかりやすく進めていきますので、肩の力を抜いて臨んでくださいね。