ゲームエンジン「Unreal Engine 3」のページが公開されています。
http://www.unrealtechnology.com/html/technology/ue30.shtml
Unreal Engine 3
概要
Unreal Engine 3 は、次世代コンソールおよび DirectX9 搭載 PC 向けの完全なゲーム開発フレームワークであり、トップクラスのゲーム開発者が必要とする膨大な数のコア テクノロジー、コンテンツ制作ツール、サポート インフラストラクチャを提供します。
Unreal Engine のあらゆる面は、コンテンツ制作とプログラミングのしやすさを念頭に置いて設計されており、アーティストが最小限のプログラマー支援でビジュアル環境のアセットを開発できるよう、またプログラマーが幅広いジャンルのゲームを構築、テスト、出荷できるよう、高度なモジュール性と拡張性を備えたフレームワークを提供することを目標としています。
ビジュアル機能
- 64ビットカラーハイダイナミックレンジレンダリングパイプライン。ガンマ補正されたリニアカラー空間のレンダラーは、ライトブルーム、レンティキュラーハロー、被写界深度などの幅広いポストプロセッシングエフェクトをサポートしながら、完璧なカラー精度を提供します。
- 法線マッピング、パラメータ化されたPhongライティング、仮想変位マッピング、光減衰関数、事前計算されたシャドウマスク、球面調和マップを使用した事前計算されたバンプ粒度のセルフシャドウイングなど、最新のピクセル単位のライティングおよびレンダリングテクニックをすべてサポート。
- 高度なダイナミック シャドウイング。Unreal Engine 3 では、3 つのシャドウ テクニックがフル サポートされています。
- 動的なステンシル バッファ付きシャドウ ボリュームは、シーン内のすべてのオブジェクトに正確なシャドウを投影する、完全に動的な移動光源をサポートします。
- 16 倍オーバーサンプリングされたシャドウ バッファを使用して、シーンにダイナミックなソフトでファジーなシャドウを投影するダイナミックなキャラクタ。
- 超高品質かつ高性能な事前計算済みシャドウマスクにより、完全に動的なスペキュラライティングと反射を保持しながら、静的な光の相互作用をオフラインで処理可能。
- サポートされているすべてのシャドウテクニックは視覚的に互換性があり、アーティストの裁量で自由に混在させることができます。また、カラー減衰機能と組み合わせることで、適切にシャドウされた指向性照明、スポットライト、プロジェクター照明効果を実現できます。
- 強力なマテリアルシステムにより、アーティストは、Mayaが提供する非リアルタイム機能に匹敵するビジュアルインターフェイスで、任意に複雑なリアルタイムシェーダーをオンザフライで作成できます。
- マテリアルフレームワークはモジュール化されているため、プログラマは新しいシェーダプログラムだけでなく、アーティストが他のコンポーネントとその場で接続できるシェーダコンポーネントを追加することができ、シェーダコードの動的な合成とコンパイルが可能です。
- シームレスに相互接続された屋内外の環境をフルサポートし、ピクセル単位のダイナミックなライティングとシャドウイングをあらゆる場所でサポート。
- アーティストは、変位マップ、法線マップ、および任意に複雑なマテリアルを含む、滑らかにブレンドされたマテリアルの複数のレイヤー、動的LODベースのテッセレーション、およびプロシージャルに配置されたメッシュを持つ植生レイヤーによって拡張された、動的に変形可能なベースハイトマップを使用して地形を構築できます。さらに、地形システムは、アーティストが制御できるプロシージャルなウェザリングのレイヤーをサポートしています。たとえば、地形の平らなエリアには草や植物、高い斜面には岩、山頂には雪があります。
- 高さフォグや物理的に正確な距離フォグを含む、ボリューメトリックな環境エフェクト。
Unreal Engine 3 のキャラクタは、セルフシャドウイングによってダイナミックなソフトシャドウを生成します。
トーチの動きに合わせて、ファジーな減衰を伴う影がシーンの周囲をスイープします。
アーティストが作成したパンニングや虹色マテリアルは、ピクセル単位のライティングやシャドウイングとシームレスに組み合わされます。
法線マップされた半透明のオブジェクトは、フレームバッファを歪めて減衰させ、レイトレースされた反射をシミュレートします。
雲のぼんやりとした影が丘をなめらかに横切り、風車の回転する羽根が地面に影を落とします。
ボリューメトリックな霧の中に立つソフトシャドウのキャラクター。
64ビットハイダイナミックレンジカラーを使用したライトブルーム。
法線マップされた拡散照明と鏡面照明のぼやけた影の相互作用。
物理
- 物理的なゲームオブジェクトとプレイヤーのインタラクション、ラグドールキャラクターのアニメーション、複雑な乗り物、切断可能なオブジェクトをサポートするリジッドボディ物理システムです。
- すべてのレンダリング可能なマテリアルは、摩擦などの物理特性を持ちます。
- 物理駆動サウンド。
- プレイヤーコントロール、AI、ネットワーキングを含む、物理ベースのビークルの完全統合サポート。
- ビジュアル物理モデリング ツールが UnrealEd に組み込まれており、モデルおよびスケルトン アニメーション メッシュ用に最適化されたコリジョン プリミティブの作成、制約の編集、エディタ内でのインタラクティブな物理シミュレーションおよび微調整をサポート。
ラグドールのリジッド ボディ ダイナミクスは、これらのスケルタル アニメーション オブジェクトを含め、このシーンのすべてのオブジェクトを動かします。
UnrealEd でリアルタイム キネマティクスを使用して変更される物理プロパティ。
Unreal Engine 3 では、Unreal Tournament 2004 のビークル物理機能が改良されています。
アニメーション
- スケルタルアニメーションシステムは、頂点ごとに最大4つのボーンインフルエンスと非常に複雑なスケルトンをサポートします。
- アニメーションは、以下のようなアニメーションオブジェクトのツリーによって駆動されます。
- ブレンドコントローラ:ネストされたアニメーションオブジェクト間のn方向ブレンドを実行します。
- データドリブンコントローラ:モーションキャプチャやハンドアニメーションのデータをカプセル化します。
- 物理コントローラ:ラグドールプレイヤーやNPCのアニメーションや、インパルスに対する物理的な反応のために、リジッドボディダイナミクスエンジンと連携します。
- プロシージャル アニメーション コントローラーは、C++ または UnrealScript で実装され、NPC の頭や目がレベル内を歩くプレイヤーを追跡したり、キャラクターのアニメーションがヘルス レベルや疲労度に応じて変化するなどのゲーム機能を実現します。
- 3D Studio Max、Maya 用のエクスポート ツールにより、ウェイト メッシュ、スケルトン、アニメーション シーケンスをエンジンに取り込むことができます。
ゲームフレームワークと人工知能
- プレイヤー、NPC、インベントリ、武器、トリガーなどの一般的なゲームオブジェクトをサポートするオブジェクト指向のゲームプレイフレームワークを提供。
- パスファインディング、複雑なレベルナビゲーション、個々の意思決定、チームベースのAIをサポートするリッチなマルチレベルAIシステム。
- トリガー、ドア、エレベーターなどの一般的なゲームオブジェクトを完全に認識できるパスファインディングフレームワークにより、NPCが目的地に到達するためにスイッチを押したり、ドアを開けたり、一時的な障害物を回避したりする複雑なナビゲーションシナリオを実現。
- 短期的な戦術的戦闘、カバー、パスネットワーク外のナビゲーションをサポートするナビゲーションフレームワーク。
- ファーストパーソンシューティング、サードパーソンシューティング、タクティカルコンバットゲームに適したチームベースのAIフレームワーク。チームベースのAIフレームワークは、チームの調整、目標管理、長期的な目標をサポートします。
- AI パスは、レベル デザイナーが UnrealEd で表示および編集できるため、カスタマイズやヒンティングが可能です。
- ビジュアル AI スクリプト ツールにより、プレイヤー目標、ゲーム イベントの多彩なトリガー、インタラクティブなシネマティックスなど、複雑なインタラクティブ ゲーム内シナリオを作成できます。
- 「UnrealMatinee」は、タイムライン ベースのビジュアル シーケンス、アニメーション、スプライン パス ツールです。 アニメーションのシーケンス、カメラなどのオブジェクトの移動、サウンドやビジュアルの特殊効果の制御、ゲームプレイや AI イベントのトリガーなど、インタラクティブまたは非インタラクティブなゲーム内シネマティックスの作成に使用します。
UnrealEd のタイムライン ベースのシーケンス ツール「Matinee」。
ネットワーキング
- インターネットや LAN でのプレイは、Unreal Tournament 2004 など、Epic の過去の対戦ゲームの特徴でした。Unreal Engine は、さまざまなジャンルのゲームに適した、柔軟でハイレベルなネットワーク アーキテクチャを長年にわたって提供してきました。
- インターネットや LAN でのプレイは、PC やすべてのコンソール プラットフォームで完全にサポートされています。
Unreal Engine のゲームプレイ ネットワーク プログラミングは、高レベルでデータ駆動型であるため、UnrealScript のゲーム コードで変数や関数を指定し、クライアントとサーバー間で複製することで、ゲーム ステートの一貫した近似値を維持することができます。低レベルのゲーム ネットワーク トランスポートは UDP ベースで、信頼性の高い伝送方式と信頼性の低い伝送方式を組み合わせて、低帯域幅で遅延の大きいシナリオでもゲームプレイを最適化します。 - 最大64人のプレーヤーをサポートするクライアント・サーバー・モデル。最大16人のプレイヤーによる非専用サーバー(ピアツーピアモード)もサポート。
異なるプラットフォーム間でのネットワークプレイをサポート(PC専用クライアントとコンソールクライアント、Windows、MacOS、Linuxクライアントの同時プレイなど)。 - ネットワーク プレイでは、すべてのゲームプレイ機能がサポートされているため、ビークル ベースのマルチプレイヤー ゲーム、NPC やボットとの対戦型チーム ゲーム、シングル プレイヤー中心のゲームでの協力プレイなどが可能です。クロスプラットフォーム互換の UnrealScript コードを含む、コンテンツの自動ダウンロードとキャッシュをサポート。この機能により、ユーザーが作成したマップからボーナス パック、完全なゲーム MOD まで、あらゆるコンテンツをその場でダウンロードできるようになります。ゲーム内のサーバー ブラウザ GUI では、サーバーの検索や照会、お気に入りの追跡、ゲーム内のチャットなどを行うことができます。
- 「マスターサーバー」コンポーネントは、世界中のサーバーを追跡し、プレイヤーにフィルタリングされたサーバーリストを提供するために提供されます。ワールドワイドなゲーム統計追跡システム。
- 大規模なマルチプレイヤーゲームに適したサーバーやネットワークフレームワークは提供していません。このような作業は数人年がかりのエンジニアリング作業となりますが、Unreal Engine を使用しているいくつかのチーム (NCSoft のリネージュ II や Electronic Arts のウルティマ X など) は、独自のサーバー コンポーネントと統合された MMORPG ゲーム クライアントおよびツール パイプラインとして Unreal Engine を使用することが可能であることを実証しています。
Unreal Tournament 2004 のゲーム内サーバーブラウザ
UT2004 の世界的なプレイヤー ランキングを追跡するためのフレームワーク。
世界で最も競争の激しいアクション ゲームにも適したネットワーキング フレームワーク。
UnrealEd コンテンツ作成ツール
- Unreal Editor (UnrealEd) は、3D Studio Max や Maya と、出荷可能なゲーム コンテンツの間にある隙間を埋める、純粋な「What You See Is What You Get」コンテンツ作成ツールです。
- プレイヤー、NPC、インベントリ アイテム、AI パス ノード、光源などのゲームプレイ オブジェクトのビジュアルな配置と編集が可能で、100% ダイナミックなシャドウイングを含む、外観の完全なリアルタイム表示も可能です。データ駆動型のプロパティ編集フレームワークを含むため、レベル デザイナーはあらゆるゲーム オブジェクトを簡単にカスタマイズでき、プログラマーはスクリプトを介してカスタマイズ可能な新しいプロパティをデザイナーに公開できます。
- リアルタイム地形編集ツールにより、アーティストは地形を隆起させたり、地形にアルファレイヤーをペイントしてレイヤーブレンディングや装飾レイヤー、コリジョンデータ、変位マップを制御できます。
- ビジュアルマテリアルエディタ。テクスチャとプログラマ定義のマテリアル コンポーネントのカラー、アルファ、座標出力を視覚的に接続することで、アーティストは単純なレイヤー ブレンドから非常に複雑なマテリアルまで、またシーン ライトと動的に相互作用するマテリアルを作成できます。
- あらゆるタイプのゲーム アセットを検索、表示、整理できる強力なブラウザ フレームワーク。
- アニメーションツールにより、アーティストはモデル、スケルトン、アニメーションをインポートし、サウンドやスクリプト通知などのゲーム内イベントに関連付けることができます。
- エディター内の 「Play Here 」ボタンを使えば、マウスをワンクリックするだけで、ほんの一瞬でゲームプレイが可能です。ここでは、オブジェクトの修正やジオメトリの再配置を別のウィンドウで行いながら、エディター内でゲームプレイをテストすることができます。
- Unreal Engine のすべてのライセンスには、UnrealEd を一般に再配布する権利が含まれているため、各チームは、ゲームと共にコンテンツ作成ツールを MOD コミュニティに公開することができます。MOD サポートは、今日、多くの著名な PC ゲームの成功の主な要因となっていますが、PC ベースの MOD 開発のサポートは、将来のコンソール ゲームにおいても重要な要因となることが予想されます。
- 当社では、3D Studio Max および Maya 用のプラグインを提供しており、メッシュ トポロジー、マッピング座標、スムージング グループ、マテリアル名、スケルトン構造、およびスケルトン アニメーション データを含むモデルを Unreal エンジンに取り込むことができます。
- その他、最新のコンテンツ編集ツールに期待されるすべての機能が備わっています: マルチレベルのアンドゥ/リドゥ、ドラッグ&ドロップ、コピー&ペースト、カスタマイズ可能なキーとカラー設定、ビューポート管理。
コンテンツのブラウズ、検索、管理のための視覚的なインターフェイス。
リアルタイム変形、植生レイヤー、プロシージャルレイヤリングを備えたビジュアル地形エディタ。
ビジュアルマテリアルエディタにより、以前はプログラマーしかアクセスできなかった精巧なシェーダをアーティストが作成可能。
分散コンピューティング法線マップ生成ツール
ほとんどのキャラクタは、数千トライアングルのリアルタイムメッシュと、数百万トライアングルのディテールメッシュの2つのメッシュから作られています。私たちは、ディテールメッシュをレイトレースし、そのハイポリゴンジオメトリから、レンダリング時にリアルタイムメッシュに適用される法線マップを生成する分散コンピューティングアプリケーションを提供しています。 その結果、ハイポリゴンメッシュのすべてのライティングディテールを持ちながら、リアルタイムで簡単にレンダリングできるゲーム内オブジェクトが得られます。
3D Studio Maxによる8,000トライアングルのゲーム内メッシュ。
3D Studio Maxで作成した3,000,000トライアングルのディテールメッシュ。
ゲーム内の法線マップ付きメッシュ。
1億トライアングルを超えるソースコンテンツが、この屋外シーンを照らす法線マップに貢献している。
ワイヤーフレームでは、50万トライアングル以下で構成されるメモリ効率の高いコンテンツが明らかになった。
プログラミング機能
- Unreal Engine 3 には、サンプル コンテンツと、エンジン、エディター、Max/Maya エクスポーター、社内開発ゲームのゲーム固有のコードのソース コードが 100% 含まれています。
- 拡張可能なオブジェクト指向 C++ エンジンには、永続化、コードとコンテンツの動的ロード、移植性、デバッグのためのソフトウェア フレームワークが搭載されています。
- UnrealScript ゲームプレイ スクリプト言語では、メタデータの自動サポート、非常に柔軟なファイル フォーマットの後方互換性を持つ永続性、UnrealEd でスクリプト プロパティをレベル デザイナーに公開するサポート、GUI ベースのスクリプト デバッガー、動的にスコープされるステート マシンや時間ベースの (潜在的な) コード実行など、ゲームプレイ プログラミングで重要な多くのコンセプトのネイティブ言語サポートが提供されています。
- ビジュアル ツールを拡張し、ビジュアル シェーダー GUI でアーティストが使用できる新しいシェーダー コンポーネントを追加するためのモジュラー マテリアル コンポーネント インターフェイス。ソース管理が容易なソフトウェア アーキテクチャで、大規模なチームやマルチプラットフォーム プロジェクトにも拡張可能。
- Unreal Engine 3 は、PC およびサポートされているすべての次世代コンソール プラットフォームでコンパイル可能な統一コードベースとして提供されます。すべてのゲーム コンテンツとデータ ファイルは、サポートされているすべてのプラットフォームで互換性があるため、PC でのコードとコンテンツの開発から、コンソールまたは PC でのプレイテストまでの所要時間が短縮されます。
- シークフリーの DVD ローディング最適化パスにより、DVD の物理転送速度の 80% 以上でレベルをロードできます。
- Unreal Engine 3 のコンテンツとコードはローカライズを意識しており、すべてのゲーム テキスト、サウンド、画像、動画を外部化するためのシンプルなフレームワークが用意されています。 Unreal Engine 3 は、Unicode 文字セットに基づいており、TrueType フォントをレンダリング可能なビットマップ フォントにインポートするなど、16 ビット Unicode フォントとテキスト入力を完全にサポートしています。 当社のゲームは、日本語、中国語、韓国語を含む 9 言語で出荷されています。
UnrealScript は、安全で簡単なゲーム イベント プログラミングを提供します。
UT2004 韓国語版を支える Unicode ベースのローカリゼーション フレームワーク
代表的なコンテンツ仕様
以下は、Unreal Engine 3 をベースとした次のゲームのコンテンツを構築する際に使用しているガイドラインです。ゲームのジャンルによって、プレイヤー数、シーン サイズ、パフォーマンスに対する期待値は大きく異なるため、これらの仕様は、すべてのプロジェクトに対するハード要件ではなく、1 つのプロジェクトに対する 1 つのデータ ポイントとして考えてください。
キャラクター
主要なキャラクタとスタティックメッシュアセットごとに、ジオメトリの2つのバージョンを作成します:固有のUV座標を持つレンダラブルメッシュと、ジオメトリのみを含むディテールメッシュです。この 2 つのメッシュをUnreal Engine 3 の前処理ツールに通し、詳細メッシュのすべてのジオメトリを分析した上で、レンダリング可能なメッシュ用に高解像度の法線マップを生成します。
- レンダラブル・メッシュ: ゲームシーンで5~20人のキャラクターが見えることを想定し、3,000~12,000トライアングルのレンダラブルメッシュを構築します。
- ディテールメッシュ: 典型的なキャラクター用に100万~800万トライアングルのディテールメッシュを作成します。これは、キャラクタごとに解像度2048x2048の法線マップを1-2枚生成するのに十分です。
- ボーン: 私たちのキャラクターには通常100~200個のボーンがあり、多関節の顔、手、指が含まれます。
法線マップとテクスチャマップ
私たちは、ほとんどのキャラクターとワールドのノーマルマップとテクスチャマップを2048x2048の解像度でオーサリングしています。これは、2006年頃のミッドレンジPCで動作するゲームにとって良い目標だと感じています。 次世代コンソールではテクスチャ解像度を2倍、ローエンドPCではテクスチャ数とシーンの複雑さに応じて最大4倍まで下げる必要があるかもしれません。
環境
一般的な環境には、スタティックメッシュやスケルタルメッシュを含め、レンダリング可能なオブジェクトが合計1000~5000個含まれます。現在の3Dカードで妥当なパフォーマンスを実現するため、任意のシーンで可視オブジェクトの数を300~1000に抑えることを目標としています。私たちの大規模なシーンでは、通常、可視トライアングルのピークが200,000から1,200,000になります。
ライト
ライト数にハードコードされた制限はありませんが、エンジンの高精度なピクセル単位のライティングとシャドウイングパイプラインにより、ライトとオブジェクトの相互作用のペアごとにコストがかかるため、パフォーマンスのために、大規模なシーンに影響する大きな半径のライトの数を2~5個に制限するようにしています。特定のオブジェクトのハイライトやディテールのライティングに使用される低半径のライトは、シーン全体に影響するライトよりも大幅にコストが低くなります。