ゲームの見た目や動作を決定づける「GameObject」はUnity内でどのように使われるのか?Unityの最重要知識「ゲームオブジェクト」の基礎を解説

最終更新日:2021年8月24日

レバテックキャリアは
ITエンジニア・Webクリエイター専門の転職エージェントです

Unityは、主に3Dゲーム開発で使用されている開発用ツール(ゲームエンジン)です。Unityを扱う際に最も重要な知識と言えるのが「GameObject(ゲームオブジェクト)」です。Unityを扱う上では、まずGameObjectの理解を深めることで基礎知識の習得が進むでしょう。ここでは、UnityのGameObjectの基礎を解説しています。

1. Unityのゲームオブジェクト(GameObject)とは?

まず、簡単にUnityとGameObject(ゲームオブジェクト)の概要を紹介します。

Unityとは?

Unityは、主に3Dゲーム開発に使用されているゲームエンジンです。C++で作られたUnityは、3Dゲーム開発の他にもxR(VR、ARなど仮想現実系の開発)の分野で普及し始めています。Unityは原則として有償ツールですが、無償版(Unity Personal)を使用することで全ての機能を無料で試すことができます。

Unityの特徴

Unityの特徴は主に以下3点です。

コーディングレス開発に対応
コーディングレスとは、「コーディング作業が無い」様子を指します。Unityではプログラミング言語を用いたコーディング作業を行わずとも、直感的な操作でゲーム開発を進めることができます。これによりプログラミングスキルを持たない人間でもアイディアを具現化しやすくなるわけです。

物理エンジン
物理エンジンとは、現実世界の物理法則に従ってゲームオブジェクトを制御・操作するための機能です。物理エンジンを使えば、「重力」や「爆風」といった物理計算が必要な表現をリアルに描くことができます。Unityは物理エンジンを標準搭載しているため、単体で高品質な3Dゲーム制作が可能になるわけです。

C#による拡張と外部アセット
Unityには、ゲーム制作に必要なツールや資産が豊富に含まれています。また、C#による機能拡張・カスタマイズも可能です。さらに、外部アセット(情報資産)を取り込んで、オブジェクトをカスタマイズし、オリジナルゲームを制作することもできます。

UnityのGameObject(ゲームオブジェクト)とは?

Unityを使用した開発では、GameObjectへの理解がとても大切です。

「オブジェクト」とは日本語で「物・対象物」などと翻訳されます。かなり抽象的な概念ですが、ITの分野では「コンピューターの中で何らかの操作・処理の対象となる目標」をオブジェクトと呼ぶことが多いです。また、プログラム内部では、「実体を想像できるモデル」のようなイメージで扱われ、クラスやインスタンスもオブジェクトも一部です。

Unityでもキャラクターや構造物など、目視でも確認できるオブジェクトが多数使われています。これらは、一般的に「GameObject」を使用して作成されます。

GameObjectとは、Unityで開発するゲーム内の物体(キャラクター、背景、モノ、道具など)を定義する基礎的な概念です。Unityはゲーム開発に特化したエンジンであるため、オブジェクトの大半はGameObjectによって作成されています。GameObjectに対して「コンポーネント」を追加していくことで、さまざまな外観・動きを持ったキャラクター・道具・背景などが完成するのです。そのため、「GameObject=空の容器・部屋」と考えて良いでしょう。

2. Unityにおけるゲームオブジェクトの利用方法

では、UnityにおけるGameObjectの基本的な利用方法を解説します。

GameObjectの基礎

Unityでは、まずGameObjectを作成し、その中にオブジェクトの属性を表す「コンポーネント」を追加することで、さまざまなオブジェクトを作成します。例えば、ゲーム内に「古い民家」を作成したい場合は、古い民家の容器となるGameObjectを作成し、「屋根の色」「壁の色」「窓」などをコンポーネントとして追加していくイメージです。また、コンポーネントは見た目をだけではなく「動作」も定義可能なことを覚えておいてください。では、GameObjectの生成・削除・非表示など基本的な操作を紹介します。

3Dオブジェクトの生成

Unityには「プリミティブオブジェクト」が用意されています。プリミティブオブジェクトとは、GameObjectのテンプレートやひな形のようなものです。プリミティブオブジェクトを使用することで、簡素なオブジェクトであれば比較的簡単に作ることができます。以下はプリミティブオブジェクトの種類です。

Cube

「立方体」のGameObjectです。テクスチャを張り付けるだけで床や壁、岩などのオブジェクトを作成することができます。

Sphere

「球体」のGameObjectです。球体の表現に使用されることが多く、点滅や点灯によって灯りのようなオブジェクトを作ることができます。

Capsule

「楕円上のカプセル」に似たGameObjectです。使用頻度は高くなく、未作成のオブジェクトの位置決めや仮置きなどに使用されます。

Cylinder

「円柱型」のGameObjectです。柱など構造物のパーツとして使われることが多いでしょう。

Plane

いわゆる「横置きの平面」です。板状のGameObjectで、横幅と奥行きを持つものの「厚み」の概念はありません。床や地面として使われます。なお、裏面から見ると描画されないことに注意してください。

Quad

こちらは「縦置きの平面」です。高さと幅を持つGameObjectだと考えてください。壁などの表現に使用されます。Planeと同じように裏側の描画はありません。

GameObjectを自動生成する方法

ゲームが進行している最中にGameObjectを自動生成することを「動的生成(インスタンス)」と呼び、「Instantiate関数」を使用して行います。Instantiate関数にさまざまなイベントを指定することで、「銃から次々に銃弾が発射される」といった連続的な動きのある表現が可能になるのです。

GameObjectの削除方法

反対にGameObjectを動的に削除する場合は、「Destroy関数」を使用します。Destroy関数を使用することで、「オブジェクトが消えるタイミングや時間」などを自由に変化させることができます。

GameObjectの非表示化

生成や削除を伴わず、単に「見えない状態」を創り出す場合に使用するのが「SetActive」です。SetActiveに「false」をセットすることで、対象のGameObjectを非表示にすることができます。

スクリプトによるコンポーネント追加

GameObjectの操作とはやや趣が異なりますが、GameObjectにセットするコンポーネントをコーディングによって追加することも可能です。新しいコンポーネントをC#スクリプトで作成し、適用したいGameObjectに追加することで、独自の質感や動作などを表現できるでしょう。C#スクリプトで作成したコンポーネントの追加方法としては、以下3つがあります。

ドラッグ&ドロップ

スクリプトを選択した状態で対象のGameObjectにドラッグ&ドロップを実行します。

スクリプト検索で追加

GameObjectを選択した状態で「Add Component」から作成したスクリプト(コンポーネント)を検索し、追加します。

管理ツールによる動的な追加

前述の2つは手動による静的な追加方法です。一方、動的にスクリプトを追加したい場合は管理スクリプトを使用します。プログラム内で管理スクリプト「AddManager」が希望するスクリプトを追加するようにコーディングを行います。

こうすることで、管理スクリプトが実行されると任意のコンポーネントがGameObjectに追加されるようになります。

3.  まとめ

Unityは、3D重視のゲーム開発において普及している開発用ツール(ゲームエンジン)えです。その基礎であり最も重要な知識が「GameObject(ゲームオブジェクト)」です。Unityを扱う上では、まずゲームオブジェクトの理解を深めることで基礎知識の習得が進みます。

ITエンジニア・Webクリエイターの転職ならレバテックキャリア

レバテックキャリアはIT・Web業界のエンジニア・クリエイターを専門とする転職エージェントです。最新の技術情報や業界動向に精通したキャリアアドバイザーが、年収・技術志向・今後のキャリアパス・ワークライフバランスなど、一人ひとりの希望に寄り添いながら転職活動をサポートします。一般公開されていない大手企業や優良企業の非公開求人も多数保有していますので、まずは一度カウンセリングにお越しください。

転職支援サービスに申し込む

また、「初めての転職で、何から始めていいかわからない」「まだ転職するかどうか迷っている」など、転職活動に何らかの不安を抱えている方には、無料の個別相談会も実施しています。キャリアアドバイザーが一対一で、これからのあなたのキャリアを一緒に考えます。お気軽にご相談ください。

「個別相談会」に申し込む

プロのアドバイザーがあなたのお悩みや疑問にお答えします

- 転職個別相談会開催中 -

相談内容を選択してください

※転職活動や求人への応募を強制することはありません

人気の求人特集

内定率が高い

関連する記事

人気の記事

スキルアップ記事トップへ

Unityの求人・転職一覧