ガジェット通信

見たことのないものを見に行こう

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

DATE:
  • ガジェット通信を≫

ゲーム開発環境に光をもたらした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フィクション」連載中!☆☆

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

カテゴリー : デジタル・IT タグ :
CodeIQ MAGAZINEの記事一覧をみる ▶
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。