標準機能とアセットを駆使し、広大な3D世界を構築。『ルーンファクトリー5』開発チームのUnity活用

この記事のPDFをダウンロードして読む

2021年5月に株式会社マーベラスより発売されたNintendo Switch向けのファンタジー生活ゲーム『ルーンファクトリー5』。

広大なファンタジー世界で、冒険や生活、恋愛などを楽しめる本作品。グラフィックやゲームシステムに、Unityの標準機能やUnity Asset Storeが活用されている。開発を担当した株式会社ハイドのディレクター・越沼朋也氏は「本来の機能を駆使してやり切れたと思う」と語る。

開発における苦労や活用した機能・アセット、Unityの利点について、越沼氏、エンジニアの小林拓未氏、3Dデザイナーの角俊範氏に伺った。

(ディレクターの越沼朋也氏、エンジニアの小林拓未氏、3Dデザイナーの角俊範氏)
目次

Unityは費用対効果や機動性の高さ、扱える人材の多さが魅力

——はじめに、Unityを導入された時期やきっかけを教えてください。

小林:現場で使い始めたのは2013年か2014年頃だと思います。それ以前から試しに触れていたメンバーもいました。

一つの作品を丸ごとUnityで開発したのは、2016年発売の『√Letter ルートレター』が初めてでしたね。現在ではモバイル、コンシューマー問わず、9割がたUnityで開発しています。

——『√Letter ルートレター』以降で採用したのは、どういった理由から?

小林:PS4とPS Vitaに対応する必要があったため、マルチプラットフォームに展開できるUnityを選びました。性能に対する費用対効果の高さも決め手になりましたね。

その後もマルチプラットフォーム対応は基本となりましたし、エンジニア以外のメンバーも機能や仕組みを理解しやすいことも助かりました。困ったときに参照できるドキュメントも豊富ですから。

越沼あとはエディターで様々な作業が完結する機動性。複数のツールを行き来する手間が省けるのも魅力だと感じていました。

——『ルーンファクトリー5』の開発も、そうした理由からUnityを選ばれた?

越沼:そうですね。社内のメンバーが慣れていますし、他の開発エンジンと比べてもUnityを扱える人材数が圧倒的に多い。人手を急に増やさなければいけない事態が起きたときも、Unityで開発していれば、素早く集めやすいだろうと考えていました。

——『ルーンファクトリー5』の開発体制や期間について教えてください。

越沼今作は株式会社マーベラス様、HAKAMA株式会社様との協力体制のもと、ハイドでは、プロト版から一貫してコア開発を任せて頂いたので、スタッフ構成は各パート全てにおいてハイド社内の優秀なスタッフを配置し取り組みました。

ルーンファクトリーは多くの要素で構成されたゲームデザインとなっていることから、基礎設計に1年あまりの十分な時間を取らせて頂き、開発基盤が構築した後、外部の協力会社と共にアセットの量産を行っています。

最終的な品質の仕上げにはマーベラス様の開発スタッフにもご協力頂き、着工から2年半弱かけて、関係会社みんなで形にしました。

——エンジニア視点で、今回の開発において苦労した点はありますか?

小林:今作は、フィールドが広いのに加え、プレイヤーが収集できる植物や石、生えている草木など、オブジェクト数も膨大です。

さらにプレイヤーの視線も定点から見下ろすのではなく、三人称視点で操作に合わせて動くようになりました。キャラクターとオブジェクトのサイズ比など、作り込みも細かくなっています。

必要なデータサイズや処理が増えた分、いかにパフォーマンスを高めるのかは苦慮しましたね。

——どのように乗り越えていったのでしょうか。

小林:Unity Asset Storeにある「World Streamer」を初めて導入しました。広大なフィールドを複数に分割し、プレイに必要な分だけを読み込むことで、メモリの使用量を抑えるアセットです。エディターで分割単位や実際の見え方などをチェックしながら細かく調整していきました。

——他のアセットを使ったり、必要な機能を自社開発したりなどは検討されましたか?

越沼:他のアセットも検討はしていました。ですが、World Streamerを試して「プレイヤーが高速移動してもパフォーマンスが低下しない」という検証結果が出ていたので、最適解だろうと判断しました。

自社開発する案も挙がりましたが、スケジュールの都合で一から作るのは難しくて。Unityのアセットを積極的に使う方針で進めました。

——パフォーマンス最適化のために、他に活用した機能やアセットがあれば教えてください。

小林:LODグループとオクルージョンカリングは多用しました。

LODグループは、オブジェクトをどのくらい詳細に表示するかといった段階を管理できる機能です。段階の数や、どのような場合に段階を切り替えるかなど、エディターから簡単に設定できるので、デザイナーに作業をお願いしていました。

オクルージョンカリングは、オブジェクトとカメラとの距離が一定以上離れたら、オブジェクトごと非表示にする機能です。処理負荷の軽減に役立ちました。

標準機能で、3Dフィールド作成の時間が半分以下に

——デザイナー視点ではどのような苦労がありましたか。

角:小林が言った通り、今回はとにかくフィールドが広い。人員の制約もあり、既存の3Dツールではスケジュールに間に合わない可能性もあって。当初はどう作っていこうかと悩んでいました。

——どのように解決していったのでしょうか?

角:UnityのTerrain(地形)機能を使いました。ペイントソフトのような感覚で、地形をブラシで描いたり、テクスチャを設定したりできます。

通常の3Dツールでかかる作成時間を約、半分の時間に短縮する事ができました。

Terrainはメモリ使用量に気をつけないといけない点から、エンジニアから懸念がいくらか挙がっていたのですが、アーティスト側の作業効率の良さは歴然。お願いして使わせてもらったおかげで、スケジュールも何とか間に合わせることができました。

——他に活用した標準機能やアセットがあれば教えてください。

角:ゲーム内の季節や天候の変化は、同じくUnity Asset Storeにある「SkyStudio」で表現しました。何時に雨を降らす、月を出すなど、コーディングなしに設定できるアセットです。以前であれば、都度エンジニアに依頼していたと思うのですが、デザイナーのみで作業を完結できました。

キャラクターのルックや動きの検討も、エディターで完結

——ディレクター視点で今回苦労した点はありますか。

越沼:あらゆるものをゼロから開発しなければいけなかったことですね。ルーンファクトリーシリーズとしておよそ8年ぶりの新作で、コンソールも違うから、前作のリソース(アセット)はほとんど使えない状態。スケジュールや必要な人員の見立てが難しかったです。

特にキャラクターのルックは制作基準がなかなか定まらず、足踏みも多かったです。

——ルックの制作はどのようなプロセスで進んだのでしょうか?

越沼:プロトタイプを開発していた頃から、キャラクターデザインの岩崎美奈子さんによるイラストのテイストを活かしたいという話が挙がっていて。ゲームプロデュースや企画を担うHAKAMA株式会社の方々、原案のはしもとよしふみさんと検討を重ねました。

シェーダーを集めたり自前で作ってみたりして、水彩画風のテイストを再現できないか試しました。パラメーターの調整やプレビューなど全てエディターで完結するので、HAKAMAさんやはしもとさんと画面を見ながら議論しやすかったですね。

最終的に「これでいこう」と基準が定まったのは発売日の1年半前くらい。シェーダーだけで実現するのは難しかったので、テクスチャの塗り方を調整し、今の見栄えになりました。

——キャラクターの動きの面で工夫が必要だった点があれば教えてください。

越沼:モンスターをどのように最小限の処理で動かせるのかは試行錯誤しました。条件ごとの行動をツリー状に定義し、キャラクターをAI制御できる「Behavior Designer」アセットを使っています。共通の制御と、ボスモンスター特有の制御などを整理しながら、最小限の組み合わせで済む実装方法を探りました。

——人間のキャラクターの動きも、同じ方法ですか。

越沼:モンスターと戦うキャラクターの移動は、Unityの標準機能であるナビメッシュ(NavMesh)を使いました。これは最短距離を移動したり、障害物を避けたりといった、経路探索を自動で行う機能です。

また、年齢の違うキャラクラーのアニメーションの制御・管理はアニメーターコントローラーを利用しています。成人をベースに、少女や年配のときの動きを別途設定しました。

Unityの標準機能を使うことで、キャラクター数の割にはシンプルに開発できたと思います。

RUSK – FieldMap – PC, Mac & Linux Standalone – Unity 2019.4.17f1 [PREVIEW PACKAGES IN USE]

高い操作性や拡張性により、開発プロセスを効率化できる

——標準機能やアセットなど使いこなしている様子が伺えました。今回の開発も踏まえ、改めて皆さんの思うUnityの利点をお聞きしたいです。

角:一つは、デザイナーにもとっつきやすいUIや操作性ですね。今回のプロジェクトにおいても、これまで広大なフィールドを作った経験のない私が、Unityで問題なく開発を進められました。

もう一つは拡張性の高さ。「こういう機能がほしいな」と思ってネット検索したら、同じことを考えた他のユーザーがいて、すでにアセットが用意されていることが多いです。

小林:Unityを導入する以前は、エンジニアが開発に必要となる機能を作り、それを使ってデザイナーやプランナーが作業をしていました。今はそういった準備が必要ない。開発をより効率的に進められるようになったのは、とてもありがたいですね。

越沼:開発を始める際に、複雑なセットアップが不要になったのも大きいですよね。Unityを立ち上げれば、開発中のゲームがスムーズに起動する。Unityのバージョンが変わっても、問題なく動く場合がほとんど。開発期間が2年にわたるようなプロジェクトでも安心して使えます。

あとは、標準機能だけで実現できることの多さも魅力です。『ルーンファクトリー5』も、追加購入したアセットはありますが、「Unityでここまで作りました」と言えるくらいには、本来の機能に重きを置いて開発しています。

——今後さらに使いこなしていきたいUnityの機能やアセットはありますか?

小林:今回、DOTS(Data-Oriented Technology Stack。マルチコアプロセッサーを活用してデータ処理を高速化することが可能になるUnityの新しい技術スタック)の導入も検討はしていましたが、スケジュール的に見送っています。今後もグラフィックやオブジェクトをよりスマートに表示するなど、処理の最適化は深掘りしていきたいですね。

角:エンジニアの力を借りず、デザイナーが直接開発できる領域を増やしていきたいです

すでにデザイナーがコードを書いて、シェーダーを調整している例もあるので。シェーダー周りの機能をもっと探究し、より良いものを作っていけたらと思っています。

——ノーコードでシェーダーを作成できるShader GraphVisual Effect Graphといった機能もありますので、ぜひ試していただけたら嬉しいです。

今日は貴重なお話、どうもありがとうございました!

目次