【CEDEC 2011】EpicにおけるUnreal Engine 3を活用したプログラマーの新たな役割 | RBB TODAY

【CEDEC 2011】EpicにおけるUnreal Engine 3を活用したプログラマーの新たな役割

エンタープライズ モバイルBIZ

【CEDEC 2011】EpicにおけるUnreal Engine 3を活用したプログラマーの新たな役割
  • 【CEDEC 2011】EpicにおけるUnreal Engine 3を活用したプログラマーの新たな役割
  • 【CEDEC 2011】EpicにおけるUnreal Engine 3を活用したプログラマーの新たな役割
  • 【CEDEC 2011】EpicにおけるUnreal Engine 3を活用したプログラマーの新たな役割
  • 【CEDEC 2011】EpicにおけるUnreal Engine 3を活用したプログラマーの新たな役割
  • 【CEDEC 2011】EpicにおけるUnreal Engine 3を活用したプログラマーの新たな役割
  • 【CEDEC 2011】EpicにおけるUnreal Engine 3を活用したプログラマーの新たな役割
  • 【CEDEC 2011】EpicにおけるUnreal Engine 3を活用したプログラマーの新たな役割
  • 【CEDEC 2011】EpicにおけるUnreal Engine 3を活用したプログラマーの新たな役割
CEDEC 2011プログラミングセッションでは、Epic Gamesのゲームプレイ・プログラマー、ニック・ホワイティング氏による講演が行われました。

講演では、9月22日に発売されるXbox 360用アクション シューティング『Gears of War 3』の技術デモを交え、同社においてのプログラマーの役割と開発の効率化などが語られています。

まずホワイティング氏からは、これまでのUnreal Engineにおいての進化と同士がゲームプレイプログラマーになるまでの経緯が語られました。同氏は、学生時代にMOD制作からこの道に歩み、Epic Gamesに入社、UEを使ってきて6年、現在ではゲームプレイ・プログラマーとして活躍しています。

今回のセッションでは『GoW3』を中心としたプログラマーの新しい役割とUnreal Engineによる開発効率についての説明がなされています。

ホワイティング氏によると、Epic Gamesにおいてのゲームの制作方法は、UEをベースにしたいくつかのツールをもとに制作が行われているそうです。

まず、UEの基礎ビジョンにおける最大の要素には、ハイエンドのレンダリングを新しいゲームとして提供していくことだと語っています。UEの中では最新のエンジンがUnreal Engine3で、代表作ではGoW3などがあげられます。また、現在ではiPhone向けなど他機種に渡るマルチプラットフォーム開発も可能とのことです。そのほか、ビジュアルエフェクトなど、表現性などを加味しつつも、小さなグループでゲームを制作できるように目指していると語っていました。

これを行うためにEpic Gamesでは、Unreal Engineを使っての環境下の中、プログラマーはUEスクリプトという独自の言語を使用し、複雑なタスクをシンプルにして使用していることが語られました。またUnrealスクリプトは、ゲームのプロトタイプ制作が容易に行うことができるほか、インターフェイスやコンポーネントごとの設計なども簡単にできるようになっているそうです。基本的にこれらのツール類はプログラマの仕事を楽にしているほか、ゲーム部分のプレイ・プログラムを書いている人やエンジンチームは自身の担当分野だけに集中できるようになっています。

また第2のツールとして、コンテンツブラウザというものがあると語っています。コンテンツブラウザは、プログラマーの手をかけず、同社のレベルデザイナやアーティストがアセット(素材)のカタログを作るために作られたツールです。

これに加え、マテリアルエディターを使用することで、各セクション独自にシェーダーやビジュアルが作れるようになっているそうです。これらのツールを使うことで、プログラマーを使わずにレベルデザイナがゲームを作成することもできます。

そのほかにキズメットというツールが存在し、ビジュアルを作ってレベルデザイナーがスクリプトを作り、ゲームプレイにおけるインタラクションを作成できるようになっているツールがあることも語っていました。

これらのツール類は、プラットフォームの枠を超えて最高のものを作っていきたいという思想をはじめ、少数精鋭のスタッフで構成されるEpic Gamesであるがゆえに、かなり重要視されている部分であり、日々改善されているということです。現在もバージョンアップを重ねており、プログラマーができる限り効率的な開発を行えるように開発を行っているそうです。

Epic Gamesでは少ない人数で、効率的な開発を行っているほか、同エンジンを使用しているライセンシーをはじめ、他のユーザーがツールを使って効率的に作業してもらえることもサポートしています。

これは、UEを最大限に使って、ゲームを楽しく、美しく、インタラクティブにしていきたいということのほか、業界のレベルをあげていきたいゲームのスタンダードを高くしていきたいからと語られています。

そのため、プログラマーがやっていたことを、分かりやすいスタイルにしたものがUEのツール類であり、アニメーターにはアニメーションツリー、アニメーションのブレンド、サウンドコントロール、パーティクルなどがアニメーター自身が設定できるようになっているほか、レベルデザイナーも同じようにキズメットと呼ばれるツールを活用することで、複雑な部分をプログラマーで作れるようになっています。

極めつけがキズメットで、シンプルなインタラクションなどをレベルデザイナーが自ら組み込むために使えるツールになっており、ある程度の複雑な部分になった時にはプログラマーが請け負う柔軟さを持ち合わせいるといったことが語られていました。

キズメット自体は、基本的にレベルデザイナーのゲームデザインとプログラマーのイテレーションプロセスにおいて活躍しているそうです。これはレベルデザイナーの作業を自己完結させるためのツールであり、たとえばインタラクティブなものを作ったり、プレイヤーがどこにいるかということでイベントを発生させることもレベルデザイナー自身の手で構築することが可能だと語っていました。

レベルデザイナーはスクリプトを追加、プログラマーからメッセージを受け取った後に、これをキズメット上で返答することができるといったプログラマとレベルデザイナーの共通言語であるツールだそうです。

レベルデザイナーが関心を持つようなイベントを伝えることができ、ボタンの入力やコマンドを自らゲーム上に反映させることができ、完成したものをプログラマーがフックアップし、ゲーム上の箇所に反映させるといったことも行うそうです。

とはいえ、レベルデザイナーが必要としている機能がない場合はUEスクリプトで実行し、レベルデザイナーに返すことができる柔軟性も持ち合わせているようです。

そのほかにもイベントやアクションに情報を追加することができ、オブジェクトが破壊されれば、プレイヤーかNPCのいずれかが破壊したといった情報がキズメット内ではデータ化されているそうで、情報の可視化、デバッグなどにも役立っているようです。

これは、POC(Proof of Concept)によるもので、UEのUI上のプロパティウィンドウでトリガーの設定ができたり、ゲームプレイ・プログラマー側からも、レベルデザイナーからも設定できるようになっています。

簡単なものでは、プレイヤーキャラクターがハンドルを何周回すと、カメラがデフォルトビューに戻るといった設定などもできるといったことが語られています。

このようなツール類の充実を行った結果、シンプルなインタラクションをレベルデザイナー側で作成できるかわりに、本題であるプログラマーの役割が変更されていった話へと移ります。

ホワイティング氏によると、これまでのプログラマーは、使用設計から隔離されている場所からフィードバックをもらって、作業をやり直すなどゲーム開発では垂直型モデルと呼んでいるそうです。このやり方は、古くから使われているので良く理解されているため、マネージメントやプロデューサーにとって扱いやすいといったほか、各自が自分の仕事に集中できるためクロスオーバーが不要だったり、一般的なニーズ以外にツール類への大きな投資を必要としなかったりするのがメリットだと同氏は語っています。

半面、デメリットとしては、ゲームが面白いのもになるかどうかわかる前に、プログラマーがシステムの大部分を実装しなければならないため、リードタイムが膨大になり、結果としてレスポンスが必要以上に遅くなるということだそうです。

またレベルデザイナーがプログラマに依存する、デザイナーの作業に待っているという、依存関係が密接であり、チームメンバーが同時に作業をしているということになるので、非効率であるとも語られていました。

そのほかビジョンを策定しづらく、チーム内のスタッフに参加意識が希薄化されるといったほか、プロセスの一部で、歯車として責任人は一つ、モチベーションの低下も早いそうです。

またプロトタイプ作成におけるコンセプトやビジョンが落としこまれるまでの時間がかかりすぎるため、アイデアが面白くないときに、その仕様を削るといったことができないデメリットなども挙げられています。ゲーム制作における部分では大迷惑となり、ゲームは面白くない問題を抱えたまま出荷されることになってしまう危険性があると語られていました。

では、Epic Gamesにおいては、どの手法を取ったかというと、これとは別の「水平型モデル」と呼ばれる手法でゲームを開発しているそうです。

こちらは、各クリエイターたちをつなぐパイプラインの仕組みが違い、プロセスの皮切りこそデザイナーではあるものの、レベルデザイナーとアーティストに仕事を分け与え、お互いがお互いの仕事を尊重しながら同時に進行できるパイプの中間にはプログラマーが位置しています。

たとえば、企画がボスモンスターの仕様をキズメットを使って設計していき、POCコンセプトできちんと継承。それぞれの担当している作業を行いながら、レベルデザイナーがざっくりとプロトタイプの制作を行い、さらに磨きをかけていくことができるそうです。まず、プログラマーの新たな役割とは、この時に早めのうちからプロトタイプ作成を支援して、早めに失敗することだと語っています。

Epicでは『GoW』シリーズの開発において、実装してみたら面白くなかったという機能はたくさんあったとのことです。しかし、このPOCコンセプトがあれば、早い段階から失敗による時間のロスをさけることができたと語っています。

とはいえ、失敗したときには、何かを学ぶことが大事で、なぜ削除したのか?という部分を考察する必要があるとも語っていました。難しかったのか、プレイストレスによってユーザーが不快になったのかといった失敗したけど、なぜうまくいかなかったのかを検討することで、より有効なものを学ぶことができるといった長所が水平型モデルにはあると語られています。結果として、GoW3では、総開発期間の33%がトライ&エラーのために確保されており、開発初期段階からのトライ&エラーが功をなしたそうです。

また、水平型のメリットはプレイアブルなプロトタイプを触ってそのアイデアが面白いかそうでないかを早期に検証することができるため、失敗が安上がりにできる。また、コードを書く時間にプログラマーが時間を取られないことなどが挙げられています。

そのほかにも前述のキズメットを使うことで、企画やアーティストが自分たちの中でそのプロセスを完結でき、企画が自分たちのアイデアを具現化し、インタラクティブな形で提示することでチーム全体のムード、ビジョンとゴールの共有を正確に理解できるといったほか、プロジェクトに参加しているという意識の強化にもっていくことができ、結果としてより効率的なパイプラインが構築でき、それぞれの依存環境が薄いままゲーム制作を行うことができるといった利点もあるそうです。

ホワイティグ氏は、今のプログラマーは孤立してゲームプログラムを行うことはなく、仲間と一緒にゲームを作る対等なパートナーであり、歯車の一つではありませんと語っています。

エピックでは、これらのツールと開発方針のほか、アジャイル・ディベロップメントを採用しているそうです。バブルシステムと称されたこのアジャイルは、たとえば、UIチーム、ストーリーモードデザインチーム、マルチプレイモードチーム、オンラインチームと4つのチームがあったとすると、プログラマーはそれらのチームと並列に作用し、たとえばデモ版の作成やE3前のプレゼンテーションを作成する必要が発生したら、ストーリーモードのチームから分散させ、作成することができる柔軟な対応が可能となっていると語っています。

結果として、このスタイルで開発を行ったことで、各機能に対する参加意識の向上をはじめ、フィードバックの集中による効率化、ファンクション間の意思疎通の改善、プログラマーが特定の機能により長く深く関与するため、プログラマーからのゲームデザインに対する意見も拾われやすく、他セクションとの連携が向上するといったメリットがあったそうです。

問題点は、バブルをダイナミックな状態に維持しなければならなく、プログラマーが1つのバブルに長くとどまりすぎると、疲弊や行き過ぎた専門化という弊害が生まれたそうです。

最後にホワイティング氏は、「ゲームジャムに行ってみてください。自分たちのチームに何ができるかを試して結果に驚くはずです」とチーム制作における重要さをアピールし講演を終了していました。
《鬼頭世浪@INSIDE》

関連ニュース

特集

page top