2021年7月6日(現地時間)The Linux FoundationとAWSは、 Open 3D Foundation を設立し、新しい財団が管理する最初のプロジェクトとして、「Open 3D Engine(O3DE)」を発表しました。
The Linux Fondation が Open 3D Foundation を設立
オープンソースによるイノベーションを推進する非営利団体である The Linux Foundation は、3Dゲームとシミュレーション技術に関する開発者のコラボレーションを促進するため、Open 3D Foundation の設立を発表しました。
Open 3D Foundationは、3Dグラフィックス、レンダリング、オーサリング、および開発に関連する機能を向上させるオープンソースプロジェクトを支援するために設立されました。
そして、 Amazon Web Services, Inc. (AWS)は、この新財団の最初のプロジェクトとして、ゲームエンジン「Amazon Lumberyard」のアップデート版を「Open 3D Engine(O3DE)」として、Apache 2.0ライセンスで提供します。
オープンソース3Dエンジン Open 3D Engine (O3DE)
O3DEは、AAAに対応したクロスプラットフォームのオープンソースゲームエンジンであり、開発者がリアルタイムの3D環境を実現するために必要なすべてのツールを提供します。このエンジンは、Apache 2.0ライセンスで提供されているため、誰でもビルドして知的財産を保持したり、プロジェクトへ貢献をすることができます。Open 3D Engineは現在、開発者向けのプレビュー版として提供されています。
Open 3D Engineの主な機能としては、新しいマルチスレッドのフォトリアリスティック・レンダラ、拡張可能な3Dコンテンツ・エディタ、データ駆動型のキャラクタ・アニメーション・システム、ノードベースのビジュアル・スクリプティング・ツールなどがあります。
開発者は、O3DEのコンポーネントベースのアーキテクチャをベースに、ゲームやエンジンの新機能を構築することができ、エンジンのコンポーネントを一緒に使ったり、独立して使ったりすることができます。また、アニメーター、テクニカルアーティスト、レベルデザイナーなどのコンテンツ制作者は、O3DEに搭載されているオーサリングツールを直接使用して、3D体験を制作することができます。
Amazon Lumberyard の後継
3Dツールを一から作るとなると、コストがかさみ、開発には何年もかかり、メンテナンスには膨大なリソースが必要になります。このような開発者は、多大なコストをかけて開発するか、カスタマイズが困難な独自のソリューションを使用するかのどちらかを選択することになります。
これらの課題を解決するために、AWSは、2016年にゲームエンジン「Lumberyard」を発表しました。Lumberyardは、完全に無料(ロイヤリティやシートライセンスなし)で、ソースを利用できるリアルタイム3D開発エンジンで、クラウドとの統合により、構築、デプロイ、迅速な拡張が可能です。
この5年間の開発により、強力なコンポーネント・エンティティ・システムと、人気の高いビジュアル・スクリプティング・エンジン「Script Canvas」が構築されました。さらに、アニメーションエディターEmotion FXを買収し、モジュール式のGemsシステムを構築、TwitchやAWSとの統合も数多く行われています。
AWSによると、今回のゲームエンジンの提供の理由は、Lumberyardの後継製品を作り始めたとき、最終的な目標であるイノベーションのため、ゲームやシミュレーションの開発者コミュニティが、オープンコミュニティの中で一緒に仕事ができるようにしたいと考えたためであるとしています。これによりこの度、誰もが無料で利用できる「Open 3D Engine(O3DE)」の提供が発表されました。
何が変わったのか
まず、Apache 2.0ライセンスに基づくオープンソースであることです。AWSによると、O3DEは、Lumberyard をベースにしていますが、全く異なるものとなっているとのことです。
O3DEは、Lumberyardの経験をもとに繰り返し改良され、Lumberyardでユーザーが気に入っている部分はそのままに、それ以外の部分が大幅に刷新されています。
AWSが目指したのは、オープンソースの世界で時の試練に耐えられるエンジンを作ること。つまり長く使用されるエンジンを作ることが目標とされており、拡張性のあるモジュール化に重点を置き、オープンスタンダードなツールが初期リリースから採用されています。
他にも、新しいプレハブシステム、新しいビルドシステム、拡張可能なUI、多くの新しいクラウド機能、多数の数学ライブラリの最適化、新しいネットワーク機能、その他多くのパフォーマンスの向上、さらにレイトレーシングとGIをサポートし、フォワード+およびディファードレンダリングが可能な全く新しいPBRレンダラーも追加されています。
モジュール化
エンジンはゼロから再設計され、モジュール化されているため、エンジンのほぼすべての部分がライブラリになっています。そのため、O3DEのモジュール式アーキテクチャでは、開発者は、グラフィックス・レンダラ、オーディオ・サブシステム、エディタ、言語サポート、ネットワーク・スタック、物理システム、その他のライブラリを、他のライブラリに影響を与えることなく置き換えることができます。
O3DEでは、エンジンのコアモジュールとアドオンやプラグインを総称して「Gems」と呼びます。開発者は、30以上の機能やツールのを導入することでプロジェクトをスリム化することができます。
また、これらの機能やツールを独立したライブラリとして実装することもできます。すでにエンジンを持っていて、技術的負債を減らしたり、コードを更新したいと考えている開発者は、オープンソースプロジェクトから必要な機能を選び、自分の技術スタックに実装したり、独自の技術スタックを作成して組み込むことができます。
オープンソースに適したビルドシステム
ビルドシステム全体をオープンソースのCMakeシステムに移行しました。これにより、CTest、プラグインライブラリ、プロファイリング、編集と継続、高速なコード生成、Visual Studio、XCodeなどの様々なIDE用のネイティブプロジェクト生成のサポートが充実しました。
この新しいアプローチは、選択したターゲットを構築するための適切な依存関係ツリーで時間を節約し、実際の依存関係のみが再構築されるようにすることで、反復的な開発の速度を向上させます。
また、このモジュール性に着目したことで、すべてのバイナリ形式を削除し、CMakeでスクリプトを組むことができる人間が読めるJSONファイルに移行することで、プロジェクトとGemの管理がシンプルになりました。結果、プロジェクトへのGemの追加や削除は、JSONファイルを1行変更するだけで完了します。
Lumberyard Build Systemの今後についての詳細はこちらから
SDK としてのエンジン
エンジンはSDKのように構築されており、エンジンモジュールやGemsをあらかじめコンパイルした形で提供することが可能になっています。AWSは、これを「engine-as-an-SDK」のアプローチであると説明しています。プリコンパイルされたライブラリやGemsは、プロジェクトの変更時に再コンパイルする必要がありません。
また、エンジンの新バージョンがリリースされても、開発者はコアとなるGemsを更新することができ、プロジェクトコード自体のコンパイル問題を解決するだけで済みます。スタジオでは、エンジンコンポーネントのカスタマイズが容易になり、必要に応じてあらかじめ用意されているコンポーネントを特定のカスタムモジュールに置き換えることができます。
Atomレンダラー
O3DEでの大きな変更点のひとつとして、Atom Rendererがあります。
このレンダラーは、ACES色空間に準拠した最新の物理ベースのレンダラー(PBR)を提供し、Vulkan、Metal(開発中)、DirectX 12でのレイトレーシングをサポートすることで、複数のプラットフォームに対応します。また、Atomはグローバルイルミネーション(GI)とフォワード+レンダリングを搭載しており、遅延(deferred)レンダリングパイプラインもサポートしています。O3DE自体と同様に、Atomはモジュール式で、スクリプト可能で、データ駆動型です。
さらに、AZSLと呼ばれる新しいシェーディング言語も開発されました。この言語はAtomのデータ駆動型(data-driven)機能を利用しているので、新しいハードウェアインターフェースが登場しても、継続的に開発を続けることができます。また、O3DEの他の製品と同様に、Atomはオープンソースで無料です。
Atomレンダラーの詳細はこちらから
ネットワーキング
O3DEに搭載されている新しいネットワークスタックは、柔軟性の高いデータ駆動型モデル( data-driven model )を採用しており、シンプルなAPIで抽象化された低遅延のトランスポートレイヤーを持つTCP/UDPをサポートしています。
このスタックは、暗号化と圧縮をサポートし、レイテンシー、ジッター、リオーダリング、およびロスのためのビルトイン・シミュレータを備えているほか、最低限のレイテンシーと最高のフィデリティを確保するために、順不同の信頼性のないデータレプリケーションによるエンティティレプリケーションと、サーバー権限の後方互換性を備えたローカル予測レイテンシー補正のサポート、自動デシンク検出と修正をサポートするデタッチャブルプレイヤービヘイビアも備えています。
また、開発者がさまざまなサーバーモデルを使用できるように、プレーヤーがホストするサーバーモデルと専用サーバーモデルをそのままサポートしています。
開発の詳細についてはこちらから
パフォーマンスの向上
O3DEは、従来のLumberyardよりも大幅に軽量化、高速化、高性能化されています。AWSのエンジニアは、オープンソース化に向けて、200万行以上のレガシーコードの重複を排除し、最新のCPUと現在のSIMD命令セットを活用して、新しい高性能な数学ライブラリを作成しました。
その結果、フレームレートの高速化、プラットフォームサポートの向上(特にARMデバイス)、精度の向上、そしてアニメーション、特殊効果、ゲームプレイに利用できる計算リソースの増加を実現しています。
詳細についてはこちらから
クラウド対応
Amazon Kinesis、AWS Lambda、Amazon Cognito、Amazon CloudWatch、AWS CloudTrail、AWS IAM、Amazon GameLift、および更新されたAWS C++ SDKの新しいサポートにより、クラウド機能が追加されました。
O3DEのクラウド機能は、パートナーやコミュニティがAWS以外の選択肢を増やしていくことで、今後もさらに拡大していく予定となっています。また、AWSは、今後数ヶ月の間に、さらに多くのクラウド機能を構築し、新たなユースケースに対応する追加のファイルフォーマットをサポートするとのことです。
生産性と拡張性
カスタマイズを加速させるために、コードインターフェースにアクセスするPythonの拡張機能や、カスタムエディターコンポーネントを作成するためのQtを使って、UIツールが拡張されました。
アセット作成機能も大幅にアップデートされ、Pythonのプレステップとポストステップのバインディングにより、インフライト処理や、FBXやマテリアル処理のカスタムビヘイビアが可能になりました。これにより、テクニカルアーティストはPythonスクリプトを書いて、アセットの分割、割り当て、再配置、あらゆる入力ソースからのカスタムマテリアルの作成が可能になります。
また、他にも次のような変更がされ、新しい方法で拡張できるようになっています。
- Script Canvasは、Luaへのコンパイルをサポートし、将来的にはネイティブコードをサポートし、拡張可能なビヘイビア・コンテキスト・マネージャーによるスクリプト・バインディングが可能になりました。
- ゲーム内のアセットを管理するモデルとして、Lumberyardの「slice」モデルから、よく知られているプレハブのモデルへと移行しました。
- モジュール式の標準インターフェースにより、開発者は他のGemインターフェースに対して直接関数を呼び出すことができ、IDEのオートコンプリートもサポートしています。
目標としては、開発者がプロジェクトの中で機能を発見し、全体的または部分的に実装できるようにすることとされています。
今後の展開
Open 3D Engineは現在、開発者向けのプレビュー版が提供されていますが、AWS Game Tech チームは、今年後半に製品版を提供できるように開発を進めているようです。
ダウンロードと関連リンク
Built for Builders: The Story of AWS and Open 3D Engine – Developer Preview
コメント