
Unityとは?
2004年から始まったゲームエンジンです。2018年現在では、ゲーム制作のディファクトスタンダードになっています。
「ゲームエンジン」とは?
簡単に、ゲームで必要な3D計算、影の表示、サウンド、メニュー遷移等のゲーム作りに良く使う機能をまとめたもののことです。
最大の利点としては、下記でしょう。
ゲーム開発の難しいことを考えなくても良くなる。
ゲームエンジンを利用しない従来のゲーム開発では下記のことを学ぶ必要がありました。
- ゲーム企画
- プログラミング
- ゲーム数学
- 3DCG(3Dゲームを作るなら)
- グラフィックス
- エフェクト
- サウンド
しかし、Unityを利用すれば下記のことだけ学べば、ゲーム開発をすることができます。
- ゲーム企画
- プログラミング
これによって、ゲーム開発の専門知識がない一般人でもゲーム開発を行えるようになりました。
Unityの特徴
簡単操作で配置が作れる。
ゲームエンジンは、Unity以外にもありますが、Unityの優れている点として、下記の事が簡単に視覚的に行えるように設計されていることです。
- オブジェクト(ゲーム上に配置された物体)の配置
- 照明の設定
マルチプラットフォーム対応
Unityは、WindowsとMacそれぞれに対応していますが、PC、スマホ、ゲーム機、Web等幅広いプラットフォームで動くゲームを作ることができます。
なので、パソコン用に作成したゲームでも、簡単な設定変更でスマホ等に移植することができます。
iOS用のゲームを作りたい場合はMacが必要になる。
ただし、iPhoneに転送して動作テストしたかったり、App Storeにアップロードするという作業にはMacが必要になるので注意です。
ゲーム素材も簡単に手に入る。(Unityアセットストア)
Unityでは、「Unity Asset Store」というゲーム素材を総合的にサポートしているサービスがあります。
基本有料ですが、中には無料で手に入る素材もあります。Unityでは、ゲーム素材のことを「アセット」と呼んでいます。
アセットストアで手に入る素材の種類
- モデル(2D/3D)
- エフェクト
- サウンド
- スクリプト
- プラグイン
Unityのライセンス
Unityには、いくつかのライセンスが存在しますが、どのライセンスも機能的な制限はありません。
収益面での制限が分かれているので、もしUnityでゲームを作って収益をあげたいという方は、ご注意です。
ライセンスの種類 | 月額利用料 | 特徴 |
---|---|---|
Personal | 無料 | ゲーム起動画面で、Unityのロゴを表示しなければならない。 |
Plus | 月3000円 | 開発する上での制限なし。年間売り上げ100000ドルの収益制限がある。 |
Pro | 月15000円 | 開発する上での制限なし。年間売り上げに制限がない。 |
Enterprise | サポート内容による? | 大規模組織向けで、サポートをしてもらえます。 |
Unityで使えるプログラミング言語は?
Unityで使えるプログラミング言語は下記の二つがあります。
- C#
- JavaScript
C#
文法は少し難しいが、ライブラリが充実しており高速に動作します。世間的に人気なのは、JavaScriptよりはC#になりますので、よほどの理由がない限りはこちらを選ぶようにしましょう。
JavaScript
C#に比べると文法は優しいです。
2D/3Dゲーム共通
Physics
重力の計算を計算を自動で行ってくれて、オブジェクトを物理挙動にしたがって動かせるUnityの標準機能の物理エンジンです。
ただ、単純な動作ならこれを使えばよいのですが、独自のカスタマイズした特殊動作をさせたい場合には組み込みが難しくなります。
詳しくは、下記の記事で解説しています。
Prefab(プレファブ)
「ゲームオブジェクト」をアセットとして登録して複製を簡単に作れるようにする機能です。
Prefabを、Unityのジェネレータに渡すと、ゲームオブジェクトを量産してくれるので、「同じゲームオブジェクトをゲーム内で、たくさん作りたい場合」は、これを使うことになります。
元のPrefabの設定を変えるだけで、全てのプレファブのゲームオブジェクトに対してその変更が反映されるので楽なのが利点です。
色の設定について(光の三原色+アルファ)
Unityで色を設定する際は下記のように「RGBA」にて設定をします。
値 | 説明 |
---|---|
R | 赤 |
G | 緑 |
B | 青 |
A | アルファ(「不透明度」を指し、max255の値を下げるほど透明になります。) |
2Dゲーム用語
レイヤ番号
ゲームオブジェクトが持つ番号で、この番号の大小によって表示される際の前後関係が決まります。
数字が大きいほど画面の手前に表示されて、小さいほど画面に奥に表示されます。
また、レイヤ番号に同じ番号が指定されている場合は、後に追加したゲームオブジェクトの方が手前に表示されます。
ゲームを作る場合の構成要素
Unityでゲームを作成する際に意識する構成要素としては下記の図のようになります。
プロジェクト
ゲームプログラム自体を示します。これ自体に機能はありません。
シーン
1つ1つのゲームの画面を示します。この中に、キャラクターや、ゲーム部品等の「ゲームオブジェクト」を配置していきます。
ゲームオブジェクト
ゲーム内で使用するキャラクターや、ゲーム部品等を示します。
コンポーネント
「ゲームオブジェクト」に機能や、振る舞いを提供します。
例えば、下記のようなものをあげられます。
- ボタン機能
- 物理法則に沿った動作
- 当たり判定を付加する。
- エフェクトを付加する。
- 効果音を付加する。
- スクリプトでゲームルールに沿った振る舞いを付加する。
イベント
ゲームオブジェクトには、「イベント」を追加することができます。
イベントとは?
ユーザー操作がきっかけに起こる出来事のことです。イベントには様々な種類があります。
ゲームオブジェクトにイベントを付与するには?
ボタンのゲームオブジェクト
イベントに対応する仕組みがデフォルトで用意されています。
Imageのゲームオブジェクト
イベントに対応する仕組みが、デフォルトでないので、EventTriggerコンポーネント追加が必要です。
EventTriggerコンポーネント
ゲームオブジェクトに、タッチ操作等のイベントを検出する機能を与えることができます。
EventType
コンポーネントが検出するイベントのタイプです。色々な種類があります。
項目 | 説明 |
---|---|
PointerEnter(ポインターエンター) | 指がイメージ上に乗った動きを検出する。 |
BGM再生
AudioSourceコンポーネント
「オーディオの音源」という意味を示すBGM用のコンポーネントです。Unityで、BGMを再生する場合は「AudioSourceコンポーネント」を使うことになります。
AudioSourceコンポーネントで、BGMを設定する際のポイント
ゲームオブジェクトが再生途中で、消滅するとBGMも途切れてしまうので、基本的には消滅しないゲームオブジェクトに設定します。
設定項目
項目 | 説明 |
---|---|
AudioClip | 再生したいオーディオファイルを登録する。 |
Loop | BGMを繰り返し再生させるかどうか。 |
AudioListenerコンポーネント
「オーディオの視聴者」という意味を示すBGM用のコンポーネントです。
「AudioSourceコンポーネント」を追加することで、メインカメラ(Main Camera)に自動で追加されます。
AudioSource(音源)から発せられる音楽を、カメラ内の「オーディオの視聴者」に届くというイメージです。
UnityUIとは?
ゲーム画面に、ボタンやテキストボックス、チェックボックス等の画面部品を作ることができる機能です。
用途
RPG系ゲームの管理画面等を作る際に使える。
UnityUIの構成要素
キャンバス(Canvas)
ボタン等の部品を配置する土台となるパーツで、これ自体は透明でゲームオブジェクトとして使用はできないです。
キャンバスの利点
画面部品をキャンバスの上に複数配置した場合は、子オブジェクトとしてまとめて移動したりサイズ変更したりすることができます。
イメージ(Image)
キャンバスの中に配置する部品の一つです。
設定値
項目 | 説明 |
---|---|
RaycastTarget | 「オン」になっていると判定の対象になるので注意です。 |
「RectTransform(レクトトランスフォーム)」コンポーネント
通常は、UnityUIは、「RectTransform(レクトトランスフォーム)」コンポーネントを持っています。
特徴
アンカー(Anchor)によって、位置やサイズを自動調整することができます。
「RectTransform(レクトトランスフォーム)」コンポーネントの要素
Pivot(ピボット)
「軸」のことで、子オブジェクトの基準点を表し、下記のようになっています。
軸の位置 | 設定値 |
---|---|
上端 | 1 |
中央 | 0.5 |
下端 | 0 |
この記事へのコメントはありません。