Search Unity

独特な美しいグラフィックを作り上げるために。『NieR Re[in]carnation』開発チームはUnityをどう活用したのか?

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


    退廃的で美しい世界観が特徴のアクションRPGシリーズ『NieR』。シリーズ初となるモバイルタイトル『NieR Re[in]carnation』が2021年2月より配信されています。

    開発を担った株式会社アプリボットのエンジニア・羽生正志氏は「Unityを使ったおかげで、ゲームのクオリティを限界まで高めてから最適化するアプローチを採れた」と語ります。

    どのように質の高いグラフィックとパフォーマンスを両立させたのか。羽生氏、クライアントエンジニアの杉浦優介氏、向井 祐一郎氏、テクニカルアーティストの堀井浩史氏、エフェクトアーティストの大西美代子氏に開発における苦労やUnityの活用方法を伺いました。

     

    素早くアイデアを試せるUnityならではのアプローチ


    アプリボットがUnityを使い始めたのは2014年頃。コンシューマーゲームの開発会社から転職したての羽生氏が導入を推進しました。

    羽生「いずれはモバイルゲームでも重厚なタイトルが出てくると考えていた折に、アプリボットへ転職すると、経験のあったUnityの導入を相談されまして。

    ゲームエンジンを自作し続けていく大変さを経験したこともあり、『Unityなら人件費や工数をこれくらい削減できますよ』と社長へ提案したんです」

    2018年の『リトルチャンピオンズ』で採用後、現在は3DゲームのほとんどをUnityで開発しています。扱える人材が多く、「検索時にヒットする情報も豊富」と羽生氏はメリットを挙げます。

    また、テクニカルアーティストの堀井氏は「機能の内部コードが一部公開されており、コードの挙動を確かめながら作業できるため、安心してカスタマイズできる」と話します。

    さらに羽生氏は、NieR Re[in]carnationでUnityの強みを活かした新たなアプローチへの挑戦を決めました。

    羽生「Unityではプレビューを確認しつつ素早くアイデアを試せます。イテレーションを速く回せる期待から、従来の制作プロセスとは異なり、まずはゲームのクオリティを限界まで高めた後でパフォーマンスを最適化しようと。

    NieRシリーズという、コンシューマーゲームと同じように重厚なタイトルを作るわけですし、新しい攻め方を試そうと思ったんです」

    2018年1月に動き出し、リリースまでは約3年を要しました。

    体制はアプリボットのスタッフが100名、外部パートナーも合わせると総勢200名前後。開発にかかわるチームは以下のような内訳でした。

    • エンジニア:20名程度

    • 企画:20名から30名程度

    • 3Dデザイナー:30名程度
      (モデリングやキャラクターデザイン、エフェクト、モーションなど含む)



     

    美しい絵作りとパフォーマンスの最適化を両立


    NieR Re[in]carnationは『檻(ケージ)』と呼ばれる建造物でメインキャラクターが目覚める場面から、シナリオが展開していきます。

    世界観の土台を成すケージパートの絵作りやパフォーマンス最適化には「Unityの標準機能であるライトプローブリフレクションプローブが欠かせなかった」と堀井氏は語ります。

    ライトプローブは、事前計算された照明や影の情報をもつ『プローブ』を空間に置いて、動き回るゲームオブジェクトに光の効果を加える機能。リフレクションプローブは、周囲の光景をキャプチャした情報をもつプローブを空間に置いて、反射するオブジェクトの表面に映り込みを表現できる機能です。

    いずれも、事前に計算された情報を用いながらも、一部をリアルタイムに処理することで、より現実感のある照明を表現できます。

    堀井氏と羽生氏はリアルタイムにプレビューを確かめながら、プローブの数や配置方法、反射する光景の解像度などを細かく調整。「いずれの機能でもシーン上でライトがどのように見えているのかリアルタイムに確認しながらイテレーションを回せる。デバッグもしやすく助かりました」と振り返ります。





    背景のポストエフェクトには「Post-Processing Version 2」を導入。自社開発の機能を加え、世界観を作り込みました。

    また、背景を構成する複雑なメッシュは単一ゲームオブジェクトとして扱えるよう結合し、描画の処理にかかる負荷を下げたといいます。
     

    標準機能を駆使し、キャラクターのルックや動きを表現


    キャラクターの制御においても、「複雑な仕組みにならないように」というクライアントエンジニアの向井氏の考えから、Unityの標準機能を主に採用。

    キャラクターの状態管理のみ自社開発のステートマシンとビヘイビアツリーを使い、状態にもとづくアニメーションの再生はアニメーターコンポーネント(ゲームオブジェクトにアニメーションを追加する)とアニメーターコントローラー(キャラクターの動作や遷移を設定できる)で対応。キャラクターが移動する際などの物理演算は、Unityで標準搭載されているPhysXを用いました。

    カットシーンのアニメーションはタイムラインで構築されています。オブジェクトのアニメーションやエフェクト、音声などを編集し、シーンを作成できる機能です。

    また、堀井氏は「ユニークなキャラが多いため別々でモーションを組みつつ、共通化できる部分は共通化」を試みていました。

    例えば、キャラクターの記憶が2Dアニメーションで語られる「記憶パート」では、Unityのヒューマノイドアニメーションを使って、一度作成したキャラクターの動きを他のキャラクターにも適用し、作業を効率化。バトルシーンの敵AIの動きは、自社開発のビヘイビアツリーで、作成した挙動を再利用しました。



    ルック制作では、髪の毛や装飾品など“揺れもの”がある「実装泣かせ」な見た目のキャラクターを、3Dで再現するのに苦労したそうです。

    堀井「例えば『アケハ』という剣客のキャラクターは、スリットの入った着物が脚の付け根にめり込まないようにするのが非常に難しかったんです。スケジュールの制約もありましたので、Mayaに戻さずUnityで何とかしようと向井さんと試行錯誤しました」

    向井「最終的にはGitHubで公開されているアセットSpring Boneで揺れものを処理しています。

    今回は時間の都合上難しかったのですが、CEDECでUnityの藤岡(裕吾)さんが発表されていたC# Job System(いくつかの処理を並列に行うコードを作成できる機能)で実装できれば、さらに最適化できたかもしれません

    (剣客のキャラクター『アケハ』)
    (剣客のキャラクター『アケハ』)
     

    職種を超えた連携によって効率化と質の向上を実現


    開発において「非エンジニアともスムーズに連携できた」と話すのは、クライアントエンジニアの杉浦氏。メインで担当したUI開発では、Unityのプレハブ(ゲームオブジェクトをPrefabとして保存し、再利用できる機能)を使い、エンジニアが仮バージョンを作成し、デザイナーが調整を担ったそうです。

    杉浦「アニメーションのどこを共通化して、差分をどう持たせるかなど、デザイナーとプレビューを確認しながら作業できました。調整をデザイナーが担えるため、やりとりの工数も削減でき、より良いものができたと思います」

    エフェクトのデザインや記憶パートの演出などを担当した大西氏も「Unityは非エンジニアでもとっつきやすい操作性が魅力」と話します。「記憶パートでは未経験のデザイナーも1ヶ月ほどでプレハブを使いこなし、イラストの配置や修正を進めていた」。

    また、Unityを使うことで「エンジニアへの相談もスムーズになる」と大西さんは言います。

    大西「チーム共通のエディターで様々なアセットを作成できるため、作りたい絵に対して足りないものがあったときにも相談しやすかったです。

    タイムラインで『Impulse』というカメラを揺らすエフェクトを加えたいと思ったときも、エンジニアに相談したら、すぐに機能を追加してくれました。

    逆にパフォーマンスの最適化にあたってエンジニアから相談を受ける場合も、見た目を確認しながら納得するまで試行錯誤できる。統合された環境の利点を感じました」


     

    Unityのおかげでゲームに必要な部分に全力を注げる


    背景やキャラクターの作り込み、それらの最適化、エンジニアと非エンジニアの連携など、開発の要所を振り返ったうえで、羽生氏は改めて次のようにUnityの魅力を語ります。

    羽生「前職ではゲームエンジンの開発・運用を担当していた時期もあるのですが、エンジンを作り、維持し、改善し続けるのは大変な作業です。そこをUnityに任せて、ゲームにおいて必要な機能を作ることに注力できるのは非常にありがたい」

    向井氏と堀井氏はさらなる進化への期待を共有してくれました。

    向井「ゲームにおいてカットシーンの重要性が見直されているタイミングでタイムラインが加わったり、最近もC# 8.0の正式サポートに対応していたりと、Unityが年々進化を遂げているのを実感しています。今後も楽しみにしながら追いかけていきたいです」

    堀井「個人的にはプロシージャル系の機能(オブジェクトなどゲームを構成する要素を大量に自動生成する機能)に期待しています。

    NieR Re[in]carnationでは大量のアセットを制作する必要があり、コツコツと手作りしている部分もあるんです。これからプロシージャル系の機能が充実して、本作のようなゲームをより効率的に開発できるようになったら嬉しいですね」

    NieR Re[in]carnationチームは、Unityの強みを生かした新たなアプローチを取り入れ、モバイルゲームでありながらコンシューマーゲームのように重厚な作品を形にしました。

    デバイスにとらわれず質の高いグラフィックとパフォーマンスを実現できる。そんなゲーム制作を当たり前にするために、Unityはこれからも進化を続けていきます。

Unityをはじめる

UnityプラットフォームやUnity製品についてもっと知りたい方は「お問い合わせ」からお気軽にお問い合わせください。