ゲーム制作で使用されるオートデスク製品
ここまででゲーム開発に関する概要について説明してきました。ここからは実際の制作過程でオートデスク製品がどのように貢献しているのかについて説明します。主な対象となるのは「Maya」「3ds Max」「MotionBuilder」「Shotgun」で、それ以外の製品やサービスについても必要に応じて補足します。
「ゲーム制作の流れ」で説明したように、ゲーム制作は大きく「アセットの制作」と「実装」に分けられます。その過程の中で複数のツールが連携して使用され、さまざまなファイルのやりとりが行われます。ファイルは時にデータ形式が変更されたり、複数のツール間を何度も往復したり、一つに統合されたりしながら、完成へと進んでいきます。このファイルが流れていく一連のプロセスを「パイプライン」と呼びます。その中でもオートデスク製品は、主にグラフィックアセットの制作に大きく係わっています。
グラフィックアセット制作の中核となる Maya と 3ds Max
ここでは簡単なランゲームを例にグラフィックアセット制作の詳細について解説しましょう。
"MeowdfullDays" by GUNCY'S 開発中のゲーム画面
まずキャラクターとステージの3Dデータを作る必要があります。キャラクターは大きく、プレイヤーが操作するプレイヤーキャラクターとエネミーに分けられます。ステージにはベースとなる地面以外に、木や草などが生えています。このほかにもアイテムや、UI(User Interfaceの略称で、ここではゲームの状態を示す、残機数などのアイコン類を意味します)が存在します。ステージ全体を照らし、影も生成するライティングと、攻撃などで発生するエフェクトもあります。実際のゲーム制作では、これらの制作を一つずつ分担作業で進めていきます。
それではプレイヤーキャラクターの制作について説明しましょう。はじめにプレイヤーキャラクターの3Dモデルを制作します。この時に活躍するのがMayaと3ds Maxです。これらはポリゴンの集合体である3Dモデルを作成(モデリング)するツールで、キャラクターだけでなくステージやアイテムなど、あらゆる3Dモデルの制作に使用されます。Adobe Photoshopなどのペイントソフトウェアで作成したテクスチャーデータを取り込んでポリゴンに張り付けるのもMayaや3ds Maxの機能の一つです。
3ds Maxの作業画面
また、近年のゲームグラフィックでは欠かせない存在となったシェーダーを効率的に作る機能も充実しています。シェーダーは3Dモデルの表面に陰影をつけるプログラムのことで、シェーダーを効果的に使うと少ないポリゴン数で複雑な模様がつけられます。金属のように光らせる、砂のようにザラザラした感じにするなど、質感を変えることも可能です。もともとシェーダーはプログラムによって記述されていましたが、近年ではGUIによって手軽に設定できるようになりました。
Mayaの作業画面
このように3Dモデルはポリゴンの複合体として生成され、Mayaと3ds Maxを用いてモデリングされます。しかし、これだけではキャラクターモデルをアニメーションさせることはできません。人間や動物における、骨格や関節に相当するものがないからです。そのためにはリギングと呼ばれる、キャラクターを動かすための仕組み(リグ)を作る必要があります。このリギングを効率的に作るための機能も数多くそなわっています。
一方でキャラクターのアニメーションを作るには、MotionBuilderと呼ばれるツールも存在します。MotionBuilderの最大の特徴は、モーションキャプチャーシステムと連動し、人間などの動きを直接デジタルデータに保存できる点です。保存された動きの情報(アニメーションデータ)は、Mayaや3ds Maxで作成された3Dキャラクターで活用することができ、アニメーション生成の手間を省略化させられます。
MotionBuilder 作業画面
このようにMayaや3ds Maxは3Dアセット制作の中核となるツールですが、近年ではそれ以外のやり方で3Dアセットを作る手法も出てきています。それがデジタルカメラで撮影した写真データから直接3Dモデルを作成する「リアリティキャプチャー」と呼ばれる手法で、オートデスクでもRecap 360というクラウドサービスがあります。こうして制作された3DモデルはMayaや3ds Max上で成形・調整され、ゲームに使用されることになります。ゲームのグラフィックが急速にハイエンド化していく中で、リアリティキャプチャーの使用頻度もますます広がりを見せています。
Recap 360で制作されたリアリティキャプチャーモデル
これ以外にMayaや3ds Maxにはライティングやレンダリングといった、画作りに関する機能も備わっています。完成したステージやキャラクターをMayaや3ds Max上に配置して、さまざまなライトを配置して照らせば、ぐっと雰囲気が高められます。キャラクターを直接照らすだけでなく、シーン全体に影響を与えるような複雑な光の反射(間接光)や、複数色のライトの光を混ぜ合わせるといったことも可能です。
こうして設定したシーンを写真で撮影するように、特定の角度から一枚のCGに切り取る(レンダリング)することもできます。この時、少しずつキャラクターを動かしてレンダリングを続ければ、映画のフィルムのように一連の連番CGが作成できます。これを連続して再生したものがレンダリングムービーです。どんな複雑なシーンでも、一度レンダリングすれば低負荷で再生できるため、レンダリングムービーはゲームのオープニングやエンディング映像などで多用されています。
アセットを統合してプレイ可能にするゲームエンジン
こうして作成されたグラフィックアセットや、別途作成されたオーディオアセットは、実装(プログラミング)されることで遊べるようになります。ゲームのクオリティを上げるには、実装と修正を何度も繰り返すことが必要です。この作業を効率化してくれるツールがゲームエンジンです。代表的なゲームエンジンにはUnityやUnreal Engine 4 があります。ここからは、この実装について細かく説明していきます。
Unity作業画面
ゲームエンジンとはゲームの動作において必要になる主要なプログラムの複合体で、個々のゲームを実行する上で必要になるプログラムを書く(これを「ゲームロジックを実装する」などとも呼びます)ための開発環境も備えています。そのため、これ一つで簡単なゲームを開発して、PC上で実行させることができます。Unreal Engine 4 では、ゲームデザイナーやアーティストがゲームロジックを実装しやすいように、ノードベース(GUI)でゲームロジックを組む機能も備わっています。
ゲームエンジンの中には3Dモデルやテクスチャー・シェーダーの修正から、ライティング、レンダリングといった、Maya・3ds Maxと重複する機能を備えているものもあります。もっとも個々の機能によって、ゲームエンジン側で作業をしたほうがいいものと、Maya・3ds Max上で作業をしたほうがいいものがあります。そのため実際はゲームエンジン側とMaya・3ds Max側でシーンデーター(その状況で必要なグラフィックアセットの一式)をやりとりしながら開発を進めていくことになります。
ゲームエンジンはもともと各社がゲームのシリーズ制作を進めていく中で、次第にその概念が誕生し、汎用性が高まっていきました。その後、会社の枠を越えてライセンスされ、使用されるようになり、現在のような商用ゲームエンジンが普及していくことになります。その過程でゲーム制作に「レベルデザイン」と呼ばれる新しい概念が誕生しました。このレベルデザインを効率的に行うことも、ゲームエンジンの重要な役割の一つです。
レベルデザインとは、ステージ全体の構造から個々の地形、エネミーやアイテムの配置、イベントの設計などを通して、プレイヤーに特定の体験を提供し、感情を想起させる行為です。こうした作業を行うツールがゲームエンジン上で統合され、高度に洗練されていった結果、プログラマーの手を借りずとも、ゲームデザイナーやアーティストが独自に行えるようになりました。そのためゲームデザイナーが仮のグラフィックデータでレベルデザインを行い、おもしろさを検証した上で、それをもとにアーティストがグラフィックデータを作り込むといった開発工程も普及しつつあります。
ゲームエンジンの中には、カットシーンやリアルタイムイベントと呼ばれる、映画的なイベントシーンを作る機能を備えたものもあります。レンダリングムービーとの違いは、キャラクターの芝居などがプログラムによってリアルタイムに演算されて表示されることです。そのためゲームの展開に応じて映像の内容を変更したり(キャラクターの入手した装備に応じて外見を変えるなど)、操作によって展開を変えたりといった、複雑な演出が可能です。ゲーム機やPCの処理速度が向上するにつれて、次第に使用頻度が高まってきました。
こうした実装作業と並行して、ユーザーテストが行われていきます。前述したように、もともとユーザーテストはポストプロダクションで行われていましたが、近年ではゲームエンジンの普及に伴い、どんどんプロダクション側に組み込まれていくようになったのです。一つのステージができると、すぐにユーザーテストが行われ、当初の狙い通りにプレイされるか検証され、その結果を見て再調整されるといったこともしばしばです。
また近年のゲーム、特にスマートフォンやタブレット向けのモバイルゲームでは、そのほとんどがオンラインゲームとなっています。そのため、ゲーム機やスマートフォン上で動作するプログラム(これをクライアントプログラムと呼びます)をゲームエンジン上で開発するのと並行して、サーバエンジニアやネットワークエンジニアがサーバを構築し、オンライン側のプログラムを作成していきます。クライアントプログラムとサーバプログラムは制作過程で統合され、狙い通りの動作が行われるか、想定される負荷に耐えられるか否かといった検証が行われます。
こうした開発はプロジェクト管理ツールによって進捗が管理されます。かつては表計算ソフトでガントチャート(プロジェクトの進行状況を一覧できる表)が作成され、そこで管理される例が一般的でした。しかしゲーム開発が大規模するにつれて、ガントチャートでは対応が困難になり、専門のプロジェクト管理ツールが用いられるようになりました。オートデスクからもクラウドで利用できるShotgunがリリースされており、多くのプロジェクトで活用されています。
Shotgunでモバイルゲームのアセット制作管理
こうしたプロジェクト管理ツールでは、個々の作業がチケットと呼ばれる単位に分割され、それぞれのチケットで担当者や進捗状況を一覧できる仕組みが導入されています。また、昨今のゲーム開発では一つのアセットを複数人の担当者が共同で作成・修正していくスタイルが一般的です。そのためファイルのバージョン管理をはじめとした、アセット管理もプロジェクト管理ツールの重要な役割の一つとなっています。このほか個々のファイルに対して修正指示を加えられるレビュー・承認機能なども備わっています。
このようにして、すべての仕様が実装され、十分に調整が行われると、いよいよ実行ファイルに出力されます。実行ファイルはPC、ゲーム機、スマートフォン、タブレットなどでファイル形式が異なり、一つひとつ出力するのは非常に煩雑で時間もかかります。そのため多くのゲームエンジンでは複数の実行ファイルを一度に出力する機能もそなわっています。
主要ゲームエンジンを使えば一つのソースから複数のデバイス向けに、同時に実行ファイルを出力できる
まとめ
このように本記事では、はじめにゲームがインタラクティブなコンテンツであることを説明した上で、ゲームの制作プロセスや、高度に専門化されている今日のクリエイターの役職、そしてゲーム制作パイプラインについて説明してきました。その上でMaya・3ds Max・MotionBuilder・Shotgunといったオートデスク製品がどのように使用されているかについて説明しました。一口にゲーム制作といっても、そこには大きな広がりと奥行きがあることがわかってもらえたかと思います。
その一方でゲームエンジンやツールがどんどん高性能になり、使い勝手が洗練され、無償で使用できるものも増加してきました。その結果、個人や小集団でも高いクオリティのゲームが制作され、デジタル流通を経由して全世界で遊ばれる時代になってきています。今後もこの傾向はますます進み、世界規模でゲームのクオリティが上がると共に、作り手の裾野も広がっていくでしょう。また、技術の進化に伴い、まったく新しいゲームが次々に登場していくことが期待されます。
WHY 3DCG? 〜3DCGが支えるコンテンツ制作の現場〜
ゲーム業界編
学生の皆様へ
For Studentsメディア&エンターテインメント業界への挑戦を考えている学生やこれからCGを始めたいという方のために、基礎となる情報をまとめたページをご用意しました。
たくさんの職種や、必要なスキル、豊富なチュートリアルなど、役に立つ情報が満載!
今すぐ3DCGを始めよう!
Get Started!Autodesk のソフトウェアは30日間無償で使うことができます。
まずはダウンロードをして3DCGを気軽に始めてみましょう。