ゲームアプリが意外と簡単に作れるUnityというゲームエンジン(開発環境)を知っていますか?
ゲームを起動した時に画面の隅にロゴを目にすることがあるUnityは、マルチプラットフォームに対応したゲームエンジンで、スマホアプリからパソコン、パチスロまで幅広いプラットフォームに向けたゲームやツールの開発に利用されています。

初めて触れる人でもチュートリアルに沿って進めるだけで1時間程度でシンプルなゲームアプリを作ることができるだけでなく、設定が難しそうに見える3Dゲームなども作りやすいため、今とても人気があります。
ゲーム以外にもアプリ全般が作れるUnityについて、ここでは導入の仕方からサンプルソースまで解説していきます。

Unity とは?

UnityはiOSやAndroidのようなスマホ向けアプリや、Windows、MacOS、Linux向けのデスクトップアプリ、さらにPlayStationやXbox、WiiUなどの家庭用ゲーム機、アーケードゲーム、パチスロまで、非常に幅広いプラットフォームに向けたゲームやツールを開発できる言語です。
エンジンはC言語とC++で記述され、スクリプトはC#、Javascript、Booに対応しています。C#と言うと途端にハードルが高いイメージがある方もいるかもしれませんが、視覚的に理解しやすいIDE(総合開発環境)と公式のeラーニング講座が充実しているため、初めてC#に触れる初心者でもサンプルを見ながらすぐに簡単なアプリが開発できます。

登場当初はMacOSでのみ動作し、3Dのゲームに強い言語でしたが、現在では2Dのゲームやツールも作りやすくなりました。
個人での使用はライセンス料がかからず、すべて無料で開発できます。さらにアセットストアと呼ばれるUnity内で利用可能なプログラムを販売するストアがあり、3Dモデルやテクスチャ、マテリアルはもちろん、画面演出に使うパーティクルシステムや音楽、効果音などのゲーム開発に必要な素材が手軽に入手できます。

Unityのダウンロードとインストール

まずUnityを公式ページからダウンロードします。
「Unityを選択+ダウンロード」をクリックし、「個人向け」タブの「Personal」プランを選択します。


無料で使える条件は年商10万ドル以下であることなどいくつかの条件があります。マルチプレイも20人以下に制限されるため、オンライン要素がない商業的には小規模なアプリを作るなら無償ということになります。
今回はUnityに初めて触れるという初心者向けなので、さまざまなパッケージが一緒にインストールできる「First-time Users」を選択します。

ダウンロード完了後、起動するとまずインストールするフォルダを選択する画面になります。続いてUnityIDを設定します。このIDがUnityコミュニティでも使用されるので、わかりやすいものを入力しましょう。
最後に、初めてのゲームをどんなふうに作るかを選びます。
サンプルとしてFPSやレーシング、2Dなどのさまざまなパターンが用意されています。今回は3Dのレーシングゲームを選択しました。

選択が終わるとデータのダウンロードが始まります。必要なダウンロードが完了すると、Unityの起動ボタンが表示されるので、早速触れてみましょう。
最初は言語が英語になっているので、日本語にします。日本語化はUnityHubから行います。UnityHubを起動し、インストールにあるUnityの︙をクリックし、「モジュールを加える」から「日本語」を選んでチェックを入れ、実行します。


次にUnityに戻り、MacはUnity>Preferences、WindowsはEdit>PreferencesからLanguagesを選択。EnglishをJapaneseに変更してUnityを再起動します。メニューが日本語に変わっているはずです。仕様によって一部翻訳されていないメニューもあります。

画面説明

Unityの画面構成はこのようになっています。

各画面の内容は以下の通りです。

画面 説明
シーン 中央にある、オブジェクトなどを配置するメイン画面です。マウスのドラッグなどで画面を回転することができます。
インスペクタ 右側にある画面です。シーンやオブジェクトのプロパティを表示しています。
ヒエラルキー 左側の画面です。現在編集しているシーンに存在しているオブジェクトの一覧です。
プロジェクト 下部の画面です。今開いているプロジェクトの構成です。シーンやパッケージ等のフォルダが表示されます。
コンソール 画面下部はタブ形式で切り替えられ、コンソール画面に切り替えることで、デバッグ用のログが、シーンを実行した時に表示されます。

なにか作ってみよう!

プロジェクトの新規作成

Unityではゲーム全体の構成を「プロジェクト」、各部位を構成する独立したステージを「シーン」と呼んでいます。プロジェクトは複数のシーンで構成されており、一度に描画されるシーンは1つだけです。

では早速プロジェクトを作成してみましょう。

まずは新しくプロジェクトを作成します。
「ファイル」>「新しいプロジェクト」を選択します。
プロジェクト名やフォルダ、2Dか3Dかを選択して「Create Project」をクリックすると新しいプロジェクトが作成されます。

ボタンを設置しよう

まずは画面にボタンを置いてふわふわさせてみましょう。
ボタンはUIのパーツなので、ヒエラルキー画面で右クリック>UI>ボタンを選択します。

ボタンが置かれると、ヒエラルキーにはボタンのツリーが表示されました。また、シーン画面にボタンが登場しました。

3Dの空間に浮かんでいると平面のボタンは違和感があるかもしれませんが、スタートボタンなどの初期画面での配置にはよく使われるUIです。ボタンのコンポーネントがどうなっているのか、インスペクタ画面から確認します。最初に配置したボタンは適当な位置に置かれているので、もし中央に表示されていな場合、見やすい画面中央へ移動しましょう。

中央に移動する際は、ドラッグすることでもできますが、インスペクター画面から操作することも可能です。
まずアンカーアイコンをクリックすると「アンカープリセット」画面が表示されます。Alt+Shiftを押しながら、表示したい位置のアンカーをクリックします。今回は画面中央なので、真ん中のアンカーをクリックしてみましょう。
※すでに中央に表示されている場合は変更がありません。

続いてヒエラルキー画面でボタンのツリーを展開し「Text」を探します。このテキストオブジェクトを選択すると、インスペクタ画面にテキストの変更画面が表示されました。日本語にも対応しているので「テストボタン」と今回は名付けます。文字サイズや表示位置、行数などもここで変更が可能です。

さらに文字色も変更できるので、少し色を変えましょう。

次にTransitionタイプを変更します。ヒエラルキー画面から「Button」を再度クリックして、インスペクターをボタンの画面に切り替えます。

その後、「遷移」を「アニメーション」に変更し、「Auto Generate Animation」ボタンをクリックします。ファイル保存ダイアログが表示されたら適当な場所に保存してください。

メニューの「ウィンドウ」>「アニメーション」からアニメーションウィンドウを表示します。

NormalからHighlightedに変更し、「プロパティを追加」をクリックします。

「矩形トランスフォーム」から「拡大縮小」を選択し、+を押します。

今回は30秒周期で、大きくなったり元に戻ったりというアニメーションを考えます。まずは追加された拡大/縮小のプロパティの「Scale X」「Scale Y」「Scale Z」の数値を1.3に変更してみましょう。

数値を変更すると右側画面(表示されていない場合、画面を右側に伸ばしてみてください)の中央付近にマークが追加されました。これで、この位置(1⇒30秒)にくるまでにボタンが1.3倍になり、31秒>1分の間で、元に戻るようなアニメーションになりました。
上部にある実行ボタンを押すと、ふわふわとボタンが拡大縮小を繰り返し、ユーザーのクリックを促すようなアニメーションが確認できます。


同じ矩形トランスフォームから「位置」を選んで表示位置を移動させるアニメーションを追加すれば、ゆらゆらと移動しながら形が変わるボタンを追加することができます。使い方によっては的あてゲームなどにも応用ができます。

ここまでで、Unityをインストールしてボタンを作成、簡単なアニメーションまで追加することができました。Unityは充実した開発環境により、簡単な作業で画面を作成してくことが可能なツールであることがお分かりいただけたでしょうか。
ここからは、このUnityを使いこなしていくために、おすすめの学習サイトをご紹介していきます。

おすすめの学習サイト

UnityにはUnityLearnという公式の学習講座があります。
公式だけあって充実した内容なのですが、残念ながら英語のみでしか受講できません。

http://tutorial.unity3d.jp/

そこでいくつかのおすすめ学習サイトを紹介します。Unity自体は非常にシンプルに直感的に、サンプルに触れるだけでもわかりやすくゲーム全体の構成を把握することができますが、作り込んでスクリプトを書き込むにはある程度の知識が必要になってきます。

完全にプログラミング自体が初めてという初心者におすすめ

まずは完全にプログラミング自体が初めてという初心者におすすめなのが「[超初心者向け]Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で」です。

https://qiita.com/JunShimura/items/cbb0db8087a5cc75735e

ブロック崩しのチュートリアルをもとに、実際にすぐに動くものを体感しながらUnityとはどういうものなのかを理解することができます。

基礎から丁寧に学んでいきたい人

じっくりと基礎から丁寧に学んでいきたい人には「Unity入門」が良いでしょう。

https://openbook4.me/projects/161

Unityの導入部分から、開発に必要な基本的な操作を系統立てて学びながら、一本のゲームを完成させていきます。難易度は少し高めですが、丁寧な解説によって腰を据えて基礎力をつけることができます。

初級から中級向け

初級から中級向けの講座でおすすめは「ひよこのたまご」です。

https://hiyotama.hatenablog.com/

個人ブログですが、丁寧な解説とサンプルによって、初心者が少し難しいステップアップを目指したいときに役立ちます。Unity入門書の書評もあるので、どの本を参考に学習すればいいか迷ったときにもおすすめです。

【まとめ】ゲームはもちろん、ツールアプリなども作れるUnityにチャレンジしてみよう!

Unityはゲームを簡単に開発できる優れたゲームエンジンです。また、同時にツールアプリなどの開発も可能な汎用性の高さから、手軽に楽しくプログラミングしながらエンジニアとしてのキャリアも目指せる、今人気の高い言語でもあります。

C#でのスクリプト記述と言うとどうしてもハードルの高さを感じてしまいますが、エディタは非常に直感的に扱え、豊富な素材のあるストアやさまざまなサンプルと解説が掲載された学習サイトも充実しているので、無理なく習得することができます。初めてゲームアプリを作ってみたい人は是非、Unityに挑戦してみてはいかがでしょうか。