Image courtesy of ACE Team

インディー スタジオはどのようにして技術的課題を克服したのか

Sebastian Hernandez
ゲーム開発にはそれ固有の技術的課題がつきものです。新しいインタラクティブな体験を生み出すためには、多くの場合、Unreal がリアルタイムに行うことの限界を突破することだけが必要なのではありません。しばしば、ハードウェアの厳しい制約がともなうのです。このことは、特にインディー スタジオに当てはまります。さらには、このようなソリューションを構築するだけではなく、小規模な予算とチームという現実に対応する必要も出てきます。

私たちは、Indies Week 2021 の開催中にコミュニティに知識を伝えるべく、ヨーロッパと南米のデベロッパーたちに、最新のタイトルで直面したユニークな技術的課題を解決した経験を共有してくれるようにお願いしました。

ACE Team

ACE Team は、3 人兄弟によって設立されました (Andrés、Carlos、Edmundo Bordeu)。彼らはサンティアゴ デ チレに住んでおり、ここ 10年間で、南米で最も名の知れたゲーム スタジオと 1 つになりました。ACE Team は、そのユニークなタイトルで国際的に高く評価されており、世界のゲーム業界による賞をいくつか受賞しています。そのようなゲームには、Rock of Ages シリーズ、The Deadly Tower of Monsters などがあげられます。
 

Carlos と Andrés は、Eternal Cylinder の背後にある技術的イノベーションのいくつかを共有してくれました。Eternal Cylinder は、近々登場する、ユニークな特徴をもつオープン ワールドのサバイバル ゲームであり、プレーヤーは常に動いて、進みながらすべてのものを押しつぶす巨大な円柱 (シリンダー) よりも速く移動しようとします。

チームは、そのような構想を実現するために、プレイごとに変化に富んでいてユニークな、プロシージャルに果てしなく生成されるオープンワールドを構築する方法を考え出す必要がありました。さらに、円柱によって押しつぶされる破壊可能なオブジェクトを多数配置する必要もありました。

最初の問題を解決するためには、ゲームのワールドを小さなモジュールに分解しました。これらのモジュールは、プレーヤーと円柱が前進するにつれて読み込まれたり、破棄されたりします。最終的にチームは、World Origin Shifting に基づく独自のシステムを構築しました。この World Origin Shifting は、UE4 に搭載されている機能であり、通常は固定されているアクタを任意の位置オフセット分だけ移動させながらも、その他の動作は維持したままにできるものです。

チームが直面した 2 つ目の課題は、円柱がオブジェクトによってさまざまな押しつぶされかたをしながらもフレームレートの予算を超えない、というものでした。

そのためにはオブジェクトのタイプごとに異なるアプローチが必要だったと Andrés は言います。岩は割れて砕かれるのですが、木やその他の有機的なものは曲がったり、倒れたり、ぺちゃんこになります。最初は、APEX Destruction システム (当時は Chaos は利用できませんでした) による動的なシミュレーションと、外部のアニメーション ソフトウェアからインポートされてベイクされた粉砕アニメーションを組み合わせていました。

シミュレーションのパフォーマンスを上げるためにチームは、頂点ごとのシミュレーション データを効率的に圧縮する方法を見つける必要がありました。これは結局、アニメーション データを大きなテクスチャにエンコードし、3DSMax から直接エクスポートするというやり方となりました。実行時には十分な速さが出ますが、メモリ使用量が増えるという短所もあります。

木などのオブジェクトについては、スケルタル メッシュのアプローチを採りました。押しつぶしのアニメーションの再生速度を円柱の移動速度に同期させ、最大 4 方向のアニメーションをブレンドすることによって、最終的なアニメーションを生成しました。これらの手法により、Eternal Cylinder は GPU バウンドよりも CPU バウンドのほうが強いです。これは、現代のゲームでは若干珍しいことです。

Eternal Cylinder の詳細については、このゲームの公式ウェブ サイトをご覧ください。TwitterFacebookYouTubeInstagram で ACE Team をフォローすることも可能です。
 

Critical Failure Studio

チリのチーム Critical Failure Studio は、現在、2D のプラットフォーム ゲーム Lost Forest を開発中です。このゲームでは、プレイヤーが知恵と世界を変容させる能力を駆使して、ダークなクリーチャーを回避し、古代の呪いのために失われた記憶を取り戻します。アールヌーボーのビジュアル スタイルが採られ、高解像度のイラスト、水彩パレット、詳細なアニメーションが用いられることによって、ワールドに命が吹き込まれています。
 

詳細な 2D アート スタイルを採用したことにより、デベロッパーたちは PaperZD (Unreal の 3D アニメーション ツールとワークフローの多くを 2D スプライト ベースのアニメーションに適合させるためのカスタムのプラグイン) を制作しました。この PaperZD は現在、Unreal Marketplace で入手できます。The Siege and the SandfoxBackbone など、複数のゲームで使用されています。
画像協力: Critical Failure Studio
さらに、彼らはスプライト レンダリングの最適化に関わる問題を突き止めました。これは、あまり強力ではないプラットフォーム (特にモバイルなど) への移植が複雑になる問題でした。最終的に、そのためのソリューションは、Unreal Engine 4.25 内のメインのエンジン コードにマージされました。最大 10 倍高速なスプライト レンダリングが可能となるシーンもありました。
Image5 News IndiesTechnicalSolutions
Image4 News IndiesTechnicalSolutions
また、Critical Failure Studio は、ノードベースのパスファインディング システムも別途作成しました。このシステムは CFNav と名付けられ、2D プラットフォーミングのエージェントや飛行エージェントにさえ AI ナビゲーションを供給できるものです。
Image9 News IndiesTechnicalSolutions
最後になりますが、彼らはカスタムのアクション ノードを使ってビヘイビア ツリー機能を拡張しました。これにより、より複雑な AI の動作を作成できるようになりました。以前に実行されたアクションを考慮することによって、繰り返されるパターンや不正なパターンを回避することができます。
Image11 News IndiesTechnicalSolutions
Image12 News IndiesTechnicalSolutions
Image7 News IndiesTechnicalSolutions
Critical Failure Studios は、これらのカスタムのプラグインを作成するために、時間を投資することによって、最小限のリソースで洗練されたゲームを小さなチームが制作できるようにしただけではなく、Unreal Engine Marketplace を通じてこれらのツールを他のデベロッパーたちに提供することで、まったく新しい収入の道筋を作り出すことができたのです。
 

KeokeN Interactive


KeokeN InteractiveKeokeN Interactive は、Koen と Paul Deetman 兄弟によって設立されたオランダの若々しいゲーム開発スタジオです。チームは、その技術的な専門知識を試すときが来ました。Deliver Us The Moon という SF タイトルで、緊張感あふれる宇宙遊泳のシーケンス (下の gif をご覧ください) を作成するのです。Unreal Engine にある既存の機能を利用することによって、スムーズなパフォーマンスを確保しつつシーンがもつ魅力のレベルを上げることを目指しました。
画像協力: KeokeN Interactive
レベル デザイナーの Kevin van Schajik とリードプログラマーの Remco Dazelaar は、彼らにとってそれまでで最も野心的で技術的要件の高いシーンに取り組んだ経緯について説明してくれました。そのシーンでプレイヤーは、Pearson 宇宙ステーションという比較的安全な場所から冷たく暗い宇宙に投げ出されます。彼らはまず、単純なものから始めて、機能と緊張を醸し出す要素を一つずつ重ねていきました。 

最初に彼らは、プレイヤーが宇宙ステーションから投げ出されるときの軌道を確立しました。そのためには、スプラインを使用してパスを微調整しました。マッピングが完了したら、アーティストはデブリ (宇宙ゴミ) やその他の要素を追加するとともに、物理の力によってそれらを動かすことができるようになります。しかも、最小限の労力でプレイヤーが軌道によってマッピングされます。
画像協力: KeokeN Interactive
プレイヤーが経験することになる混乱と恐怖を表現するのにカメラが大きな役割を果たしました。ただし、その回転によって、レベルの大きなかたまりがフレームに出入りすることで、パフォーマンスの低下を引き起こされることにもなりました。この問題を解決するために、彼らはレベル ストリーミング機能を利用して、必要のない複雑な要素をシームレスにアンロードし、それらをより軽いものにシーケンス中に置き換えたのです。
 
軌道のスプラインは、ナラティブ的にも役立ちました。プレイヤーに安全な場所へ戻るように急かすことができるのです。そのためにチームは、プレイヤーの進捗データをパーセンテージとして供給し、さらにそれを、音楽の強度などの他の体験要素を動的に制御するために使いました。プレイヤーの進捗状況と酸素の残りレベルに基づいて、並行した複数の音楽トラックをブレンドすることによって、スキルに関わらずプレイヤーを絶えず緊張させておくことができました。
画像協力: KeokeN Interactive

リソース 

公式のドキュメンテーションUnreal Engine JP の YouTube チャンネルUnreal オンラインラーニングなどには、ゲーム開発に役立つ技術的なリソースが豊富に用意されています。

Epic Games Japanによるプレゼンテーションを集めた SlideShare、Tips 記事投稿を集めた Qiita なども合わせてご覧ください。また、最新情報は Twitter でも提供しています。

    Unreal Engine を今すぐ入手しましょう!

    世界で最もオープンで最先端の制作ツールが入手可能です。 
    Unreal Engine は、あらゆる機能と完全なソースコードがアクセス可能な状態で提供されているため、すぐに使い始めることができます。