ノードでゲームが作れる夢の技術?「Unreal Engine 4」~エンジニアが語る技術愛 #09~

ノードでゲームが作れる夢の技術?「Unreal Engine 4」~エンジニアが語る技術愛 #09~

ミクシィには、探究心溢れるエンジニアがたくさん在籍しています。

その探究心は業務で扱う技術に留まらず、趣味で書いているプログラムだったり、個人的に研究している言語だったりと、自身の気になった技術への追求も留まることを知りません。

そこで、社内のエンジニアに“好きな技術”について、思う存分に語ってもらうシリーズを始めました。

 ルールはこの通り。

・業務で使っている技術でも、使われていない技術でもOK

・あくまでも個人的な見解で

・その技術のどこが面白いの

・愛を込めて語り尽くしてもらう

 第9回目は、『モンスターストライク』でインゲームの開発に携わり、現在はデジタルエンターテイメント事業本部で新規事業の開発を行う角(かく)に「Unreal Engine 4」の魅力をたっぷりと語ってもらいました!

角 龍徳(かくたつのり)デジタルエンターテインメント事業本部 
複数社のゲームデベロッパーにてゲーム開発を経験したのち、2016年2月ミクシィ入社。国内版モンスターストライクで、ストライクショットや友情コンボなど主にギミックの実装を担当。現在は新規事業にてインゲームの開発を担当

 

ゲーム以外にも用いられるUnreal Engine

━━今回は「Unreal Engine(以下、UE)」について教えていただけると。

僕もまだまだ不勉強ですので至らない部分も多いのですが、今回は頑張って喋らせていただきます。まず、UEはEpic Gamesによって開発されたオープンソースの3Dゲームエンジンです。

個人で制作中のゲームがあるため、僕が現状使っているのはUE4なのですが、最新のものだと2022年4月にUE5がリリースされています。開発に使用する機械言語はC++、という点では『モンスターストライク』で使われている「Cocos2d-x」と同じですね。

━━そもそも、ゲームエンジンはどのようなものなのですか?

ゲームを作る際に毎回必要となる処理を行ってくれる、ソフトウェアのことです。例えば、ウィンドウを表示するための初期化処理や、2Dスプライトや3Dポリゴンの描画機能、コリジョン判定の用意、サウンド再生の準備、パーティクルの表現…などなど挙げるとキリがありませんが、ゲーム以前の部分から書く必要がありました。ですが、新しいゲームタイトルを作るたびに毎回この作業を繰り返すのは、さすがに非効率です。このような必要な機能をゲームエンジンが担ってくれるため、その分の時間をインゲームの実装に割り振れる、というわけです。が、実際はゲームエンジンの挙動を把握していないと何をした時にどうなるのか不明のままになるので不具合を生みやすいです。そう都合良くはいきませんね‥。

━━Unityも人気ですよね。

そうですね。個人的な感覚が強いですが、Unityはスマホゲームの開発によく用いられていて、UEは主にハイエンドなPCで遊ぶようなゲームの開発に用いられることが多い印象です。ただ、最近はその垣根も低くなってきていて、UnityでハイエンドなPCゲーム、UEでスマホゲーム、というケースも多くなってきました。ゲームエンジンそれぞれに得意分野はあるのですが、Unityだから美麗なグラフィックを表現できないわけでもないし、UEを使ったからといってローエンドなゲームを作れないわけではありません。

━━でもやはり主にはゲーム開発?

UEの事例紹介のカンファレンスで知ったのですが、最近だと、建築の3DCGモデルを作るのに使われていたり、UEでアニメーションや映画を作っている方もいるそうです。

━━用途も広がり続けていると。特色はどこにありますか?

エンジンが多機能、高機能でとてつもなくパワフルすぎることですかね。何か一つ機能を実装したいと思っても、その数が膨大なので実装する方法を探すのが大変です。それだけ選択肢がたくさんあって開発のアプローチを様々な角度から取れる利点はありますね。

━━例えば。

オンライン接続周りのセッションの実装も、本来イチから書いていくと結構複雑な書き方をしないといけなかったりするのですが、UEには「ブループリント ビジュアル スクリプティング システム」という機能があります。これは簡単にいえば、機能やアクションをノードで繋げるだけで、コードを書かずに実装できる機能のこと。ノードでゲームのプレイ要素、たとえば一人称視点で操作するゲームなのか、三人称視点で操作するゲームなのかといった大きなところから、オンライン機能の実装まで、大まかなところはプログラミングをせずに作ることもできるという強みがあります。

また、初期状態でもそれなりに綺麗なグラフィックを表現できます。されてしまうとも言えますが。その点ではUnityもかなり開発を楽にしてくれるものではありますが、リアルに近いグラフィックの表現ですとUEが積極的に力を入れています。もちろん、細かく機能や挙動を調整しようとすると自分で書く部分が必要になってはきますが、開発がだいぶ楽になるのは変わりないですね。

━━素人でも簡単にゲームが作れる?

いや、簡単ではないですね…。他のゲームエンジンを触ったことのある人ならUEのクセを掴みやすいかもしれませんが、ゲーム開発初めてです、という方は結構気合を入れないとむずかしいと思います。何でもできる分、何からやればいいかが分からないといいますか…。ディレクトリの構造だとか、アセットの分類とか、クラスの設計とか、ある程度ゲーム開発における作法を知っていないと難しいのかなとは思います。基本無料なので始めるハードルは低いのかもしれませんが、技術的には難易度は低くないのではないでしょうか。でも情熱があればなんとかなると僕は信じているので、一緒に頑張りましょう。そして僕に教えてください(笑)。

━━他に魅力を感じるのはどんな部分ですか?

ゲームエンジン側のディレクトリの構造が見れることでしょうか。他のゲームエンジンはエンジン特有の不具合が起きても、中でどのような処理が行われているかは見ることができないケースが多いんです。でも、UEはオープンソースなのでエンジンを構成している全てのソースコードを見ることができます。UEユーザーが触って出くわした不具合やバグは開発元に報告するだけでなく、ユーザー側が修正済みのコードを提案して、コミットされることすらあります。そのため、公式のアップデートを待たずとも自分の手で改善できる余地があるので、エンジンレベルでどんどん使いやすくなっていくのも嬉しいところですね。

━━UEだと2Dゲームも作りやすかったりしますか?

出来る出来ないでいえば、出来ます。ただ、機能としては出来るといえるのですが、元々UEが3D方面から始まった分、2D側の機能はまだ不十分な感じを受けています。僕自身、趣味で2Dゲームを作ってSteamで配信しているものもあるのですが、だいぶシンプルな仕様にしたつもりでもUE特有の2D問題に悩まされました。規模が大きく複雑になるなら、他のゲームエンジンを検討する余地はより大きい印象です。

UEは、先ほど話したブループリントもあるので、例えばTPSやFPSといった既存のゲームシステムの機能に近い開発であれば比較的楽に行えるのですが、僕が今行っているような新規事業の開発ではUEの割と新しい機能を使っているのでノウハウの不十分さが如実です。提供されているライブラリを使おうにもまず検証が必要ですし、一部機能で使えると思って実装してみても、やはりどこか細かなところで詰まってしまってイチから開発をしないといけない…と試行錯誤の毎日です。これはただライブラリがまだ十分でない、というわけではなく、ただ 機能が膨大すぎて僕が把握しきれていないだけの気がしています。

 

UEとの出会いは?

━━そもそもUEは業務で初めて触った技術ですか?

「UE」は個人で触ってはいましたが、業務で触るのは現在の新規開発に携わって初めてですね。「Unity」はミクシィに入る以前のコンシューマーゲーム開発で触ったことがあります。「Cocos2d-x」は個人ゲーム開発の際に触りましたし、業務としてはモンストの開発で触っています。僕の中で主要だと思っているゲームエンジンの中で触っていないのは、あとUEだけでした。なので、個人ゲーム開発がてらちょっと触ってみようか…と思い触り始めたのがきっかけですね。

━━ある意味でコンプリートしてやろうと。

それほど全て学びきれているかは十二分に怪しいですが…。でもゲームエンジンそれぞれ思想や構造などに違いがあるので、作るゲームの種類によって技術選定するアプローチの幅は増えました。単純に知らない技術を学び続けられる楽しさもありますね。UEは機能が多いので、学べば学ぶほど出来ることが増える、ゲームで表現できることが増える、今よりより良いゲームを作れる、だからすごく楽しいですよ。

━━でもなぜUEで開発されているのでしょうか?

新規事業なのであまり詳しくは話せないのが残念ですが、純粋に新しいことへチャレンジしたい気持ちがあります。ミクシィはUEを使って開発したゲームタイトルをリリースした経験がありません。困難な状況の中で試行錯誤しながら開発を続けていますが、共に悪戦苦闘できる仲間もいますし、暗闇から手探りしていくような状況ではないことが救いですね。

━━UEにおける角さんの個人的な目標ってあったりしますか?

CEDEC*に登壇するのが夢です。ゲーム業界を目指していた学生の頃、CEDECに登壇する方々を見て、いつか自分もそこに立てるほどのクリエイターになろうと思いました。まだまだ道のりは遠そうです。長く2Dゲームを作っていたので今は本格的に3Dゲームを作れるだけで楽しいのですが、業務としては目の前の作業を捌くだけで精一杯の毎日です。先人達が残してくれたUEの参考資料に今の僕が助けられているように、UEを使ったゲーム開発の一例を発表できるほどのレベルにまで達することが、今の大きな目標です。

*一般社団法人コンピュータエンターテインメント協会が主催する国内最大のゲーム開発者向けの技術交流イベント

PAGE TOP