CodeIQ MAGAZINECodeIQ MAGAZINE

【Unity基礎知識】Unityが変えたゲーム制作、ゲームエンジンの定義・役割・個性を知ろう

2016.02.08 Category:技術コラム Tag: , ,

  • 12
  • このエントリーをはてなブックマークに追加
People who stare at something

2015年3月にUnity 5へとメジャーアップデートされ、よりゲーム開発における重要度を増してきたUnity。
今回はこれからUnityを使ってみたいという方に向けて、基礎知識をお伝えしていきたいと思います。
by CreatorsNEXT

ゲーム開発環境に光をもたらしたUnity

「真新しい芸術の力をもたらす」と銘打ったこの最新ゲームエンジンは、開発効率性の改善や、「Enlighten」という動的光源、
「Uber Shader」というシェーダーといった「光の表現」をはじめとするグラフィックの大幅向上をデモムービーでアピールしています。またクラウド上での開発サポート等を謳い、世界中のゲーム開発者から注目を集めています。

念のため、Unityに関して紹介をしておきましょう。WiiUやPlaystationシリーズ、XBOXシリーズといった名だたるゲームハードの土台である、マルチプラットフォームのゲームエンジンで、最高峰のゲーム開発に実際に使われている一方、個人でも入手可能。腕前次第では、短時間で質の高いゲームのリリースも十分可能な時代になりました。

Unityがミッションとして掲げているのは「Game Democratization」。グラフィックやサウンドの進化につれて職人芸的な方向性へと向かうゲーム開発から脱却し、共通化された基盤で効率よく、質の高い表現を可能にしようというテーマです。

Unityをはじめとするゲームエンジンはいったいどういった意味で、ゲーム開発に変化をもらたしたのでしょう?それを知るためにはまず、ゲームエンジンがどのような処理を行うのか、おさらいしてみましょう。

ゲームエンジンって何だっけ…「engine」の語源を紐解けばわかる

「音が出て絵が動けばゲーム」とはよく言ったものですが、ゲームの機構にはそれぞれ共通となる要素があります。

開発者がすべてを一から用意していては大変ですから、それらをインテグレートして提供したものがゲームエンジンと呼ばれます。

ゲームエンジンに含まれるものとして、3DCGの描画を60fpsのパフォーマンスで実現するDirect3DやOpenGLといった3Dエンジンなどが代表的ですが、

物理運動を現実と同様に描写するための物理エンジン、ビジュアルノベルの機構に特化したスクリプトエンジン、なつかしのRPGツクールまでがその定義に含まれます。

これらが「エンジン」と呼ばれるのはなぜでしょうか。

engineという英単語から紐解いてみましょう。engineは「en」+「gene」という組み合わせでできた単語です。

「gene」とは遺伝子を意味する単語ですが、もともとは「生む」という意味の言葉。そして「en」は「〜を助ける」という意味を持った接頭語です。

もう分かりましたね。「ゲームの主要な処理を代行し、出力(生むこと)を助けるソフトウェア」の意味で、ゲームエンジンと呼ばれているのです。

なお、「engineer」という言葉も、同じ語源から来ています。エンジニアは「生むことを助ける人たち」なんですね。

統一化されたプラットフォームで、いかに作品の個性を出すか

Unityのようなゲームエンジンは以下のようなさまざまな要素を統合管理できる環境を、プログラム可能な形で提供します。

  • 3D/2Dグラフィックの描画
  • サウンドの再生
  • UIの管理
  • データの管理と作成

ただ、同一のゲームエンジンで制作されたゲームは光の表現などの仕組みが同じであるため「似てくる」という弊害があります。

カプコンやスクウェア・エニックス等の企業では独自のミドルウェアを開発し利用しています。もちろん、ゲームエンジンは作品を盛りつける器に過ぎず、その上で様々な技巧が凝らされ、ゲームの良し悪しが決定されます。

ゲームエンジンが担う、基本的なお仕事

3Dエンジンを使った3DCG生成

3Dエンジンというのは俗称で、3DCGを生成するプログラムのことを指します。

3DCGの生成においては「モデリング」「レンダリング」という工程が不可欠ですが、3Dエンジンを使うとこれらの工程をプログラムによって行うことができます。

モデリング…一般的には、三角形や四角形といった多角形(ポリゴン)の集合として表現されたモデル(またはオブジェクト)と呼ばれる物体をつくること

レンダリング…モデルを配置して作成したシーンをもとに、光源の位置など設定することによって最終的な画像を生成すること

3DCGを扱うプログラムというとDirectXやOpenGLが代表的ですが、ゲーム制作の際にこれらを使ったアプリケーションをプログラムするのは少々敷居が高く、学習コストがかさみます。

そのような問題も、ゲームエンジンを利用することによって解決できることがあります。

一例として、UnityではDirect3D,OpenGL両方のプラットフォームが活用でき、しかも「まずはゲームを作りたい、3DCGについて学ぶのは後で良い」という方にとって取り組みやすいインタフェースが実現されています。

物理エンジン

物理エンジンとは、質量、重力、摩擦、熱の移動などといった物理現象をシミュレートするためのプログラムです。

基本的には、ミドルウェアとして実装されています。

歴史的には、学術研究における物理シミュレーションや、専門的な分野のみで使われていましたが、物理エンジンを搭載したゲームエンジンはもはや一般的です。

ゴルフゲームで、風が吹いたときの木の揺れ方をシミュレートするといったグラフィック面での活用や、

実際の物理演算によってジェンガをシミュレートするなどといったゲームのルールそのものへの活用が可能です。

CADで有名なAUTODESKがゲームエンジンに参入!?

Unityはゲームエンジンの決定版という訳ではなく、むしろ今はゲームエンジンの戦国時代。ゲーム業界の内外問わず、様々な企業がゲームエンジン開発に参入しています。

世間を驚かせた事例の一つとして、設計ツールのAutoCADや3D CADで知られるAUTODESKが「Stingray」なるゲームエンジンを発表。8 月 19 日から提供が開始されています。

他にはどんなゲームエンジンがある?

ゲームエンジン毎の開発言語と特徴をまとめてみました。

ゲームエンジン 言語 2D/3D
Unity C#,JavaScript,Boo 3D
Unreal Engine C++, C#, UnrealScript, 他 3D
Cry Engine C++, C#, Lua 3D
Stingray Lua, C++ 3D
Cocos2d-x C++, JavaScript 2D
Adobe AIR ActionScript 2D

☆☆首なしAIロボットが世間を騒がす「AIフィクション」連載中!☆☆

<最新話>
首なし人工知能ロボットに、人間が乗っ取られる!?

  • 12
  • このエントリーをはてなブックマークに追加

■この記事を書いた人

avatar

CreatorsNEXT

Goole Analyticsからアクセス解析レポートを自動的に作るサービスKOBITを運営中。

■関連記事

「Webこそがゲーム・プラットフォームである」──Mozilla開発者が語るWebブラウザ戦略 vo... Webこそがプラットフォームである──Mozillaが描くゲーム流通戦略 ──WebGLを活用して、Mozillaのゲーム・プラットフォームチームは、どのようなビジネスを展開しようとしているのでしょうか? Martin Best氏(以下、Best):前回も指摘したように、Webはゲーム開発の重要...
「WebGLでWebゲームの世界を変える」──Mozilla開発者が語るWebブラウザ戦略 vol.... WebGLでWebゲームの世界が変わる ──あらためてWebGLがどんな技術なのか、紹介していただけますか。 Martin Best氏(以下、Best):これからのWeb世界で、どんなゲームが可能になるか。私とVladimirは、Mozillaのゲーム・プラットフォーム部門で一緒に仕事をしながら...
【浦田祐輝×安藤圭吾】誰もが触れるゲームエンジン「Unity」。その可能性は無限に広がる #unit... キッカケは、機能をUnity化したこと <浦田> 私は2012年12月にCROOZに入社しましたが、当時は社内で誰もUnityを本格的には使っていませんでした。海外向けゲームソフトの既存機能をUnity化したことをキッカケで、その後社内で少人数の勉強会から始めました。 当時はPHPでブラウザゲー...

今週のPickUPレポート

新着記事

週間ランキング

CodeIQとは

CodeIQ(コードアイキュー)とは、自分の実力を知りたいITエンジニア向けの、実務スキル評価サービスです。

CodeIQご利用にあたって
関連サイト
codeiq

リクルートグループサイトへ