2011/06/22更新

本連載ではゲーム業界の人材教育・キャリアパスについて、第一線で活躍されている方へのインタビューを通して、さまざまな角度から紹介していきます。第10回で登場いただくのは、インディゲームデベロッパーKH2O代表の大前広樹さん。ゲームエンジン「Unity」の日本担当ディレクターも務められている大前さんに、学生がゲームエンジンを用いてゲーム開発を行う意味などについて伺いました。

ゲームエンジンは総合的な開発プラットフォームです

最近ゲームエンジンについて、耳にする機会が増えたのではないかと思います。ただ、具体的なイメージがわく人は少ないかもしれませんね。

ゲームエンジンとは「ゲーム開発のための包括的な解決策を提供するソリューション」のことです。代表的なものに、Unreal EngineCryENGINEUnityなどがあります。ゲームを実行するソフトウェアと、そのソフトウェアに向けてデータを作るためのツール類がセットになっていて、どのようにゲームを作るのかという、ワークフローごと提供します。その中に、ゲームを作る際に解決しなければならない様々な問題に対応するための仕掛けが組み込まれています。

これと似たものに、ミドルウェアがあります。ミドルウェアとは「ゲーム開発に関する専門的な機能を提供するプログラム」のことです。主なものには、物理演算や当たり判定などを行うHavok Physics、ムービー制御を行うCRI Sofdec、植物生成を行うSpeedTreeなどがあります。

ミドルウェアとゲームエンジンの違いは、ミドルウェアは利用者が定義するワークフローに極力合わせるように作られている、ということです。詳細については、自分が執筆した「デジタルゲームの教科書」(ソフトバンククリエイティブ)の「第21章 ミドルウェア」を参照されると良いでしょう。手前味噌ですが、日本語で読める数少ない専門的な資料になっていると思います。

ゲーム画面の中に手を突っ込んで、素手でかき回すようにゲームが作れます

Unityの魅力はいろいろありますが、開発者からすると「ゲームのおもしろい部分」、つまりゲームの売りとなる核心の部分から、直接作り始められることが大きいのではないかと思います。ゲームを実行しながら作れる開発環境になっているので、作っている最中に新しいアイディアが生まれたら、すぐに修正してテストができます。文字通り「ゲーム画面の中に手を突っ込んで、素手でかき回すように」ゲームを作れるんです。そのため、限られた開発時間の多くを、ゲームを面白くするための作業に割り当てることができます。

Unity上でのプログラミングは、比較的習得が容易なスクリプト言語と、ゲームに特化したAPIを使って行います。CやC++といったプログラミング言語を利用することもできますが、必須ではありません。Unity上で開発され、App Storeで有料ゲームの全米ランキング1位を取得した「Zombieville USA」の作者は、開発当時高校生でしたし、学生でも十分、世界に挑戦できるゲームが作れます。むしろ「おもしろいアイディア」と「やる気」の方が重要でしょう。

Unityではフリー版のライセンスで、商用開発も可能です

Unity には無料版とプロ版があります。プロ版では一部のグラフィック機能や最適化機能など、市販レベルのクオリティを出すために重要な機能が加わっています。それ以外は無料版と違いがありません。無料版で作ったゲームを販売することもできますし、その場合も許可やロイヤリティなどは不要です。本格的に売り物のゲームを作ろうと思ったらプロ版をお勧めしますが、無料版でもゲームを開発するために必要なすべての機能が揃っており、かなりのことができます。また、蛇足ですが大学や専門学校などの教育機関向けに、プロ版の機能が使えるエデュケーション用ライセンスもあります。

ダウンロードは「unity3d.com」から可能です。日本語のドキュメントは限られていますが、Unity 3D Studentといった、内容の充実した動画チュートリアルのWebサイトもあり、英語が苦手な人でも学んでいける環境ができています。本格的なサンプルゲームも充実しているので、サンプルゲームを改造するところから慣れていけば良いでしょう。

ゲームエンジン「Unity」

Global Game Jamでは、Unityを使って、48時間でゲームを作りました

2011年1月に開催された「Global Game Jam(GGJ)」に参加した際には、Unityの良さを再発見しました。これは全世界のゲーム開発者や学生が、即席のチームを編成し、48時間以内にゲームを作るイベントです。僕たちは7名のチームで「Life in Shadows 」というアクションパズルゲームを作りました。チームは会場側で決めるので、全員開発開始時には自己紹介から、という状態。また、僕以外の6名はみな学生で、ゲーム開発のプロという訳ではありませんでした。Unityを使ったことがないメンバーもおり、しかも僕はMacユーザで、他はWindowsユーザ。こんな知識も経験も所有ハードもバラバラな混成チームでも、これまで僕が仕事で開発をしていた時でも体験したことがないほど順調に、ゲームを完成させることができました。とても良いチームだったのが1番の理由ですが、Unityがメンバーの良さをゲームに反映させる良い触媒になったとも感じました。Global Game Jam全体でも、Unityでゲームを作るチームが急増しています。

2011年のGlobal Game Jam 東京会場(東京工科大学)に参加した大前さんのチーム

大前さんのチームが制作したゲーム「Life in Shadows」

「画面に手を突っ込んで作る方式」の開発スタイルが、今後の主流になります

今、世界のゲーム開発シーンでは面白いことが起きていて、最先端にいるのはインディゲーム開発者だ、という認識が広まりつつあります。そこには、Xbox360やPS3の時代を経て、ゲーム開発のスタイルが変革期を迎えていることが背景にあります。

ゲームをおもしろくするためには、開発中のゲームのキモの部分をできるだけ速く実現し、そこから「テスト」と「修正」のループを、できるだけ多く繰り返すことが重要です。黎明期のゲーム開発で、これが実現できていたのは、プログラマがすべてを1人で行っていたからです。ところが、ゲーム開発が大規模になるにつれて、テストプレイできる段階に組み上げるだけで、長い時間がかかるようになり、その後の「テスト」と「修正」のループについても、ちょっと内容を修正して再び遊べるようにするだけで、けっこうな時間がかかるようになってきたんです。また、表現力を上げようとすると特殊なデータや大量のデータが必要になるので、こうしたものをスムーズに手分けして作れることが重要になりました。

そこで開発現場では、商用のツールやミドルウェアをうまく使ったり、自社製のツールを開発することで、できるだけゲーム開発が効率的にできるよう整備をしてきました。タイトル開発を効率化すれば、それだけテストプレイに時間が割けるというわけです。さらにこれらの中から、マルチプラットフォームに対応したり、ゲームタイトルを超えて汎用的に使えたり、企業の枠を超えてライセンスされるような開発環境が生まれてきました。これが、今日のゲームエンジンとよばれるものの成り立ちです。

最近ではこうした環境をさらに1歩前に進めて、ゲームを実行している最中にその場で修正作業を行って、おもしろさを検証できるような機能を兼ね備えたゲームエンジンも登場するようになりました。その代表例が、冒頭で示したUnreal EngineやCryENGINE、そしてUnityです。

つまり、今日では多くのゲーム開発現場で、そうした作り方ができる方が確実に良いものを速く作れることが認識されてきています。ただ、多くの社内製の開発環境ではそうした作り方には中々移行できないこともあり、もっと自由に作りたいと渇望するゲーム開発者が、独立して前述のような汎用的なゲームエンジンを採用して作り始めるということが起きています。インディゲームの開発者の作ったゲームが昨今注目を浴びているのは、こうした流れと無関係ではありません。ゲームエンジンを整備して、 ゲームを実行しながら、ゲームのキモの部分から作っていく方式が主流になりつつあるんです。この傾向はゲーム機の性能向上と共に、さらに進んでいくでしょう。

ゲーム開発者に楽をしてもらうのが、僕の会社の使命です

もともとフロム・ソフトウェアのテクニカルディレクターとして、Xbox360とPS3のマルチプラットフォーム開発環境の構築を担当していました。独立後、最初はiPhoneアプリなどの開発を行っていましたが、しだいに自分の本分はやはり他のゲーム開発者に楽をしてもらう「縁の下の力もち」ではないかと感じるようになったんです。

そんなころGDCCEDECなどを通してUnityとご縁があり、日本展開をサポートすることになったんです。独立後、iPhoneアプリの開発時に自社の開発環境を何にしようかと検討していた際、Unityが自分の作りたかった理想の開発環境に1番近かったので積極的に採用していたのがきっかけでした。現在は企業向けにUnityのセールスや導入サポートを行ったり、セミナーを開催したりと、エバンジェリスト的な仕事を行っています。今後はサポートサイトや、完成したゲームをアップロードする環境などの整備を通して、ユーザコミュニティの形成に力を入れていきたいですね。

ゲームエンジン上での作り方に、早く慣れて欲しいですね

別にUnityでなくてもかまわないので、ゲームエンジンを使ったゲームの作り方に触れて、理念を感じて欲しいですね。ゲームエンジンというのは単なる道具ではなく、どうやって仕事をしていくか、ということの集大成なんです。逆に先進的なゲームエンジンで昔ながらの作り方をすると、上手くいかないことが多いのです。実はプロのゲーム開発者どうし、友人と3人でUnityを使って24時間でゲームを作ろうとしたことがあるんですが、今までの仕事のやり方に引きずられて思ったように作れなかったことがありました。結局24時間では完成しなかったんですが、何度か失敗しているうちに考え方を掴んで、最後には「自分の普段の仕事でもこうやって作れるようにしたい」という熱意が生まれました。学生の皆さんも、ゲームエンジンでゲームを作ることを体験することで、「作り方」に対する意識が洗練されてくるのではないかと思います。ぜひ挑戦して欲しいです。

ただし、最初からスマートフォン向けゲームを作るのは避けた方が良いでしょう。スペック的な制約が厳しく、最適化のための努力を延々とやることになります。それはそれで無駄ではありませんが、まずはそれよりもPC向けに自分たちの作りたいゲームをのびのびと作ることをお勧めします。ゲームを作ること自体が十分に難題ですので、1つずつやっていく方が大事です。

学校の課題に留まらず、自分でゲームを作って発表した経験がなければ、今後は就職が難しくなってくるでしょう。誰でもそうしたことができる環境が既に用意されているのに、チャレンジしない理由がないからです。モノを作って発表し、一般の人から広く評価されるのは、本当に良い経験になりますよ。

先生はゲーム開発の歴史観を意識しながら、学生を指導してください

「学生がゲームエンジンで『楽をして』ゲームを作っても、就職につながらないのでは?」 そんな風に思われる先生方も、多いかもしれませんね。

確かに、これまでは「ツールオペレータ」になることが就職の早道でした。CやC++の基礎がわかって、簡単なプログラムが組める。3DCGのツールが使える、などの要件を満たす学生を育てるということです。企業の側も学生にはツールの使い方(データの作り方)を教えて欲しい。ゲームの作り方は入社後、自分たちのやり方で教える、という声が主流でした。

しかし、これまで述べたように、ゲームの作り方自体が大きな変革期にあります。そんな中でゲームエンジンの概念、つまり「ゲームエンジン方式の新しいワークフローの概念」に対する理解が乏しければ、いざ就職しても現場のワークフローの現状が把握できず、改善の提案などもできません。それでは、単にデータを量産するだけのオペレータで終わってしまいます。

もちろんゲームエンジン開発に携わるような、ハイエンドなプログラマも必要です。そうしたキャリアを目指すなら、学生のうちから高度なプログラミング言語を習得することも必要でしょう。しかし、ゲーム開発を行うコンテンツクリエイターには、実際にゲーム作りの経験を数多く積ませる方が重要だと思います。基礎をおろそかにして良いという気はありませんが、ゲーム開発が長期化した現在では、全体の流れや他人の仕事を把握できることが何よりも重要だからです。全体が把握できることで、自分に必要な勉強や動き方というものが見えてきます。学生の時分からそうした下地を作ることができれば、現場で伸びる人材が生まれやすいと感じています。特に専門学校の学生指導においては、取り入れやすい伸ばし方だと思うので、お勧めではないでしょうか。