Unityとは
Unityとは、Unity Technologies社が開発・販売するゲームエンジンを指します。Unityは統合開発環境(IDE)を内蔵しており、C#を用いたプログラミングで利用されます。 【参考】:Unity
Unityは、英語では単一や統一の意味合いを持つ単語です。社名との関連性については明確に表されていませんが、おそらく同意語と考えて差し支えないでしょう。Unityは日本語の情報が多く、初心者でも学習しやすいため日本においては他のゲームエンジンと比べて人気があります。
ゲームエンジンとは
ゲームエンジンとは、ゲーム開発で利用するライブラリーに加えて、標準的に用いる開発ツールを含むフルパッケージのゲーム開発環境を指します。具体的には、ゲーム開発ミドルウェアやオーサリングツール、関連する音声・画像等が含まれます。必要なモジュールが同梱されているのですぐに開発に取り掛かることができます。
なぜゲームエンジンが必要なのか?
従来はフレームワークを定義して、独自に実装する内製ゲームエンジンが多数見られました。この時点ではフレームワークの拡張として使用されていたので、個別のゲームごとにアルゴリズムを決定しコードやツールの整備が必要でした。
しかしながらゲームの多様化が進み、汎用ゲームエンジンによるソフトウェアのアルゴリズムを含めた再利用による開発生産性の向上が見られたことから、現在では多くのゲームソフトウェアは汎用ゲームエンジンを利用して作成されています。
特にスマホやゲーム機の種類が拡大・多様化した現在では、全て内製化することは実質的には厳しく汎用ゲームエンジンの利用が主流となりつつあります。
Unityの特徴とメリット
Unityは人気のゲームエンジンで、ゲーム会社でも良く用いられています。人気の理由としては以下のメリットが挙げられます。
・マルチプラットフォームに対応 iOSやAndroid・Windows・Linuxをはじめとする汎用プラットフォームから、PS4・PS5やXBOX等のゲームプラットフォームを含む25以上のプラットフォームに対応します。そのため、PC・スマホ向けからゲーム機まで幅広く開発に活用できます。
・プログラミングが簡単 ライブラリーが豊富なため、ほとんど追加コードを記述することなく開発することができます。言語はC#をベース言語としています。
・流行りの3DゲームやVR・ARに対応 従来の2Dに加えて、グラフィックを重視する3DゲームやVR・ARに対応します。そのため、Unityを利用することで多様なゲームカテゴリに対応することができます。
・ライセンスの幅が多い 無償版から有償版まで、ニーズに合わせた多様なサブスクリプションが提供されています。そのため、個人利用からビジネス利用まで幅広い開発用途がカバーできます。
Unityのデメリット
メリット満載のUnityですが、しいて挙げるとすると以下のデメリットがあります。実際の利用上は大きな問題となることはないと考えます。
・起動時間が若干遅い Unityはマルチプラットフォームに対応していることから、起動時のプラットフォーム設定処理に若干時間を要してしまいます。これを回避するには、Unity Hubを用いてプラットフォーム別にプロジェクトを登録しておくことで起動時間短縮が図られます。または起動プロジェクトごとにターゲットプラットフォームを指定することもできます。 【参考】:Unity Hub
・開発言語がC#に限定される 以前はJavaScript系統のUnityScriptも提供されていましたが、利用者が少ないので現在提供終了となっています。スクリプト言語を利用したい場合は他のゲームエンジンを検討する場合もありますが、個別のコード開発量も多くありませんので、実質的にはC#でも問題ないと考えます。
ゲーム開発で用いるプログラム言語
ゲーム開発で用いる主要なプログラム言語は、それぞれのターゲットや用途に応じて以下のような開発言語が選択されています。
・コンパイラ言語 事前に実行コードをソースプログラムからコンパイル・リンクし格納しておきます。メリットはプログラム実行速度が早いことです。 「C#」 Unityで用いられ、ゲーム開発を行う上で最も活用されている言語です。 「C++」 市販ゲーム機でも用いられています。3Dグラフィックスに強みを持ち、UnrealEngineのゲームエンジンを活用することが多いです。 「Swift」 iOSやMacOS向けの言語です。コンパイラ言語でありながらスクリプト実行が可能です。
・スクリプト言語 実行時にソースプログラム言語の構文を解釈し、実行します。メリットは開発・デバッグが簡単なことです。 「JavaScript」 ブラウザベースのゲームに強みがあります。 「Ruby」 サーバーサイドの開発言語で、ソーシャルゲーム等に活用されています。スマホ動作アプリ開発も可能です。
Unityの入門情報
Unityはゲーム開発に幅広く活用可能で、VRやARの市場拡大に応じて用途が拡大しています。ここでは、入門情報としてインストールから利用までの流れを紹介します。加えて、利用用途や活用方法についても触れていきます。詳細は以降でお話ししていきます。
Unityのインストール方法
まずはじめに、Unity Hubをインストールします。以下のリンクからモジュールをダウンロードします。 【参考】:Unity 2021.2.16 をダウンロード
Windowsの場合はインストーラを起動します。Macの場合は、Unity Hub.appをアプリケーションにドラッグアンドドロップします。Unity Hubのインストールが完了したら、起動することでUnityがインストール可能です。「Unityエディターをインストール」の画面が表示されたら、「Unityエディターをインストール」をクリックし、インストールを進めます。
Unityインストール後は、Unity IDの登録と「ライセンス」「ライセンスを加える」からライセンス追加を行います。Windowsでは「Microsoft Visual Studio Community 2019」を、Macでは「Visual Studio for Mac」を「モジュールを加える」画面から追加します。以上で準備は完了しましたので、Unity Hubから「新しいプロジェクト」をクリックし、開発を開始します。
Unityの主な用途
Unityの主な用途は以下の通りです。ゲーム関連が多いものの、ゲーム以外でも多様な用途に活用されています。IT活用の広がりに応じて用途が拡大しています。
・ゲーム制作・運営 ゲームエンジンを活用し、効率的なゲーム開発が可能です。また、ゲーム実行環境もマルチプラットフォームに対応することで、あらゆるデバイスを活用した参加型ゲームを開催することも可能です。
・アニメーション・映画制作 効率的なレンダリング作成によるワークフローの短縮が可能です。そのため、大規模プロジェクトを共同実施することで高精度のグラフィックアニメーションを高品質・短期間に制作することができます。
・自動車・移動体シミュレーション 3Dデータを用いたVR・AR制作により、モデリングやリアルタイム3Dによるシミュレーションに活用できます。
・建築シミュレーション 建築前にARを用いたオーバーレイ情報を用いて、可視化と妥当性を検証することができます。同様に、CADデータを正確に反映した完成イメージを共有することができます。
・製造サポート 製品製造の学習システムと連動させて、リアルタイムに部品と作業情報をARで可視化させ部品交換や作業の手順をトレースし品質向上に役立てることができます。
Unityの活用事例
Unityでは実際の活用事例を広く公開しています。「ゲーム – コンソールと PC」「ゲーム – モバイル」「ゲーム – AR」「ゲーム – VR」「建築設計、エンジニアリング、建設」「自動車、輸送機器、製造」「映像制作、アニメーション、映画」「教育」の業種カテゴリー別に詳細情報を公開しています。 【参考】:Unity のケーススタディ
Unityのライセンス
個人向けとして無料のPersonal・Student、そしてTeams(ビジネス向け)としてPlus・Pro・Enterpriseが提供されています。料金プランは売上に応じたロイヤリティ料金が不要ですので、総じて低い設定となっています。 【参考】:プランと価格 個人向け 【参考】:プランと価格 ビジネス向け
・Personal(無料) 過去12 か月間の収益、または調達資金が10万米ドル未満の個人開発者または中小企業のお客様向けです。
・Student(無料) 認定教育機関に在学中の、法定年齢に達した学生のお客様(16歳以上)用プランです。
・Plus(有料) 過去12か月の収益や、調達した資金が20万米ドル以下の個人や企業のお客様向けです。年額1シート当たり48,394円となります。
・Pro・Enterprise(有料) 過去12か月の収益または調達資金が20万米ドルを超える企業、およびその企業と取引があるお客様向けです。Proは年額1シート当たり217,800円となります。Enterprise プランは大規模チーム向けとなっており、最低20 シートの購入が必要です。20 シートあたりの料金は、月額484,000円となります。
モバイルデバイスの多様化に対応しましょう
UnityはPCやモバイルデバイス、ゲーム機まで多様なデバイスに対応します。特にモバイルデバイスの活用はメタバースの活用を表明する企業が拡大しており、VRやARのニーズが高まっていることを示しています。
Unityを用いることで2Dのみならず、3DやVR・ARの実装はIT全般の可能性を高めてくれます。その開発プラットフォームとしてもUnityの活用はスキルアップにおすすめです。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから