2007.03.24 3Dクライアントの開発

3Dクライアントの開発を始めます

MEBYのサーバープログラムは安定したので、次のターゲットとして、3Dタイプのクライアントを作ります。

2DにおいてFlash 9は表現力が高く開発もしやすいのですが、3Dのアプリを作るための標準ライブラリやハードウェアによるアクセラレーションがありません。

なので、3DのソフトはDirectXが使えるWindowsネイティブなアプリケーションとして作ることにします。 Windowsアプリケーションはインストールが必要なので、Webだけで完結する手軽さがなくなり、互換性の問題から遊ぶための敷居が高くなります。

3Dエンジンと3Dゲームに分けて開発

Windows Vistaが今年の初めに発売され、DirectXのバージョンは10になりました。 このDirectX 10はいままでに比べて表現力が格段に上がっています。
これを使って開発ができるリアルタイム3Dの分野はこれからおもしろくなります。

3Dの開発は規模が大きくなるので、リアルタイムなレンダリングエンジンと、それを利用したアプリケーションに分けて作ることにします。 まずしばらくは、メインに開発するのはレンダリングエンジンです。

開発形態

レンダリングエンジンの開発はオープンソースで行いたいと考えています。
ゲームの方のソースコードやデータファイル等は、一律にオープンソースにせずに、それぞれのプロジェクトごとに適した形態を取る方がよいかもしれません。

私はポリゴンを使ったリアルタイム3Dの開発経験がないので、このサイトを始めた頃のように試行錯誤を繰り返して進めていこうと思っています。
初めはまず実験や動かすことに注力するので、参考になるソースコードにはならないかもしれませんが、成長を見ていってもらえばと思います。


2007.03.22 CryENGINE 2 スペック詳細 3回目 サウンド AI その他

CryENGINE 2(クライエンジン2)スペック詳細の翻訳の3回目です。
最初にこのエンジンのデモを見たときには非常に自然風景がリアルな印象がありました。 全部訳してみて感想は、エンジンのリアルさに加えて、プロシージャル(=プログラムによる自動的)な生成機能と、 開発環境と実行環境がシームレスに統合されていることを強調しているようでした。

---
  • サウンドと音楽
    CryENINGE 2のサウンドシステムは、データドリブンコンセプトに対して多くの新しい機能と改良を導入しています。
    それぞれのサウンドはその独自の仕様を伝えます。 それでサウンドデザイナーはそのサウンドの最終的なクオリティを完全にコントロールできます。 そしてサウンドはゲームの間中、確実に使用されます。

    • データドリブンサウンドシステム
      利用できるどんなサラウンドスピーカーの設定をサポートしながら、複雑なサウンドが、スタジオクオリティで、簡単に作り出され配信できます。 マルチプラットフォームの互換性はサウンドライブラリーを含んでいるFMOD'sによって保証されています。

    • インタラクティブ動的サウンドシステム
      プレイヤーにムービーライクなサウンドトラックの経験を与えるために、 どんな望まれたゲームイベントに反応する、特別に定義されたロジックによる音楽トラックの改良された再生。

    • 動的ワールドサウンド
      どんな物理接触でも、様々なパラメーター(例えば金属タイプ、オブジェクトタイプ、質量、そしてスピードのような)によってコントロールされたユニークなサウンドを生み出すことができます。
      この技術は、インターラクティブなゲーム世界における動きに対する、繰り返しのない応答性のあるオーディオフィードバックを提供します。

    • ゲームにおけるミキシング
      統合されたエディタ機能と優れたサウンドスペックツールは、 様々なターゲットプラットフォーム上で走らせているゲームに接続することによって、 効率的なミキシングを提供します
      そのゲーム自体または他のエディターモードのいずれにおいても(例えば、キャラクターエディタのアニメーションによってトリガーされたサウンド) その結果をレビューを許可することですべての開発ステージでよくミックスされたゲームを保証します。

    • 環境オーディオ
      この機能は、正確に自然からのサウンドを、異なった環境(例えば内部から外部へ移動する効果)をシームレスにブレンドして、生成することによって、サウンドデザイナーが濃いサウンド印象を達成するのを許します。

  • 優れたAIシステム
    CryENGINE 2には、キャラクターと乗り物の行動ともに制御する、柔軟で容易にカスタマイズできるAIシステムがあります。 それは、二足歩行するキャラクターを信じられる様式でアニメーションさせるキャラクター移動運動システムに対する複雑な要求を完全にサポートします。 そして、それは、CryENGINE Sandbox 2 エディターに完全に統合されています。

    • LUAスクリプトドリブンAIシステム
      のおかげで、新しいC++コードを必要とせずに、マシンの行動する状態をLUAスクリプトから拡張することを含んだ複雑なAI行動を作り出すことができます。

    • 動的パス検出
      優れた2Dと3Dアルゴリズムによって、 新しいパスを作ったり、すでに存在するパスを壊したりするイベントに応じて AIナビゲーションパスがリアルタイムに変更されます
      非常にインタラクティブで破壊的な環境において、信じられるようなAIを作り出す重大な特徴。

    • スマートオブジェクト
      アニメーションと始まりと終わりに、 キャラクターアニメーションとオブジェクトが適切に配置されるように、 レベルデザイナーに、レベル内において専門化されたアニメーションを特別なオブジェクトに接続する簡単な方法と正確なアニメーションシーケンスプレイを提供します。

  • パフォーマンス分析
    パワフルインスツルメンツ機能のおかげで、 開発者はリアルタイムにエンジンのパフォーマンスを解析し、 詳細なメモリ使用レポートを作成し、 そしてビルドのたびに一貫したテスト結果を得るためにそれぞれのレベルに自動化されたウォークスルーを実行することができます。

  • オフラインレンダリング
    ゲームの中からストリーミングビデオまたはスチルイメージを作り出すことは 指定されたコンソールコマンドを含むよりも簡単になされます。 そしてそれは、 任意のスクリーン解像度と(または)アスペクトレイトにおいて (360度投影のビデオディスプレイを利用するために自動的に繋ぎ合わされたパノラマビューを生成することを含みます) シーンを出力することが可能です。

  • モジュラーC++デザイン
    完全にモジュラーC++で書かれ、すべてドキュメント化されコメントされ、そして論理的に分離されたDLLに分割されています。 そして個々のプロジェクトの要求に対して部分的にカスタマイズを要求されるエンジンのコンポーネントだけを、あなたが必要とするそのままで使用、変更もしくは置き換えることができます。

  • マルチスレッドサポート
    モダンなマルチコアプロセッサーアーキテクチャーのほとんどを手に入れるために、 CryENGINE 2のCPU集中サブシステム、例えば物理、ネットワーキング、サウンドはマルチスレッドをサポートするために書き直されてきました。

  • リソースコンパイラー
    資産は、プロジェクトビルドの際に、リソースコンパイラーによって、そのオリジナルフォーマットから最適化されたプラットフォームに依存するフォーマットにコンパイルされます。
    このために、最終的なレベルロード回数に影響を与えたり、開発者に様々なプラットフォームに対する複数のバージョンの資産を保守させることなく、プリセットとターゲットプラットフォームに依存したアウトプットデータへのグローバルな変更(例えばビットマップ計算、メッシュstripfication)をすることができます。

  • ストリーミングシステム
    要求される利用可能なシステムRAMの量を減らす一方で、 より大きなレベルと増加する複雑さを許容するために、 資産は実行時の要求に応じてロードされます。

  • ネットワーククライアントサーバーシステム
    CryENGINE 2は、マルチプレイヤーモードのすべてのコネクションを管理する、完全に新しいマルチスレッドネットワーキングシステムです。 圧縮アルゴリズムに基づく優れたレンジエンコーディングを使用したクライアントサーバーアーキテクチャーを元にした、高い信頼性、低いレイテンシー、細い帯域システムを特徴しています。

2007.03.20 CryENGINE 2 スペック詳細 2回目 開発統合環境

CryENGINE 2(クライエンジン2)詳細の翻訳2回目です。今後、グラフィックボードを使った、リアルタイムレンダラー関係のプログラムを作ろうと考えているので、勉強のために翻訳しています。 前回はゲームエンジンのレンダリング能力についてでしたが、今回は統合された開発環境の話題です。

----
  • PolyBump 2
    PolyBump 2はスタンドアロンユーティリティとして、または例えば3DS Maxのような他のツールと完全に統合されてのいずれかでも使用することができます。
    このツールは、法線マップ(タンジェント空間はオブジェクト空間)、ディスプレイスメントマップ、隠喩されていないエリアディレクション、アクセシビリティ、そして他のプロパティのようなサーフェスの特徴を素早く抽出できるハイクオリティなサーフェス記述を作ります。
    抽出された情報は、ほとんどハイポリゴンモデルのように見える詳細なサーフェスで、ロウポリゴンモデルをレンダーするのに使用できます。しかし、かなり速くレンダーされます。 そのデータは、2度計算しなくても、様々な方法で行くイクスポートできるように、中間ファイルフォーマットで蓄えられます。 かなりのハイポリゴン(例えば1000万トライアングル)でも、非常に高速に処理されます。



  • 統合されたマルチスレッド物理エンジン
    専用のコプロセッサハードウェアを必要とせずに、 木や植物を含めレベル内のほとんどすべてのものに、 気流、爆発、重力、摩擦、そして他のオブジェクトとの衝突のような力に対して、 リアルなモデルのリアクションを適用できます。 また、キャラクターからラグドールと、ラグドールからキャラクターへの遷移させることができます。

    • 高度なロープの物理
      風、雨、キャラクターの動きに応答する曲げることが可能な植物は、ロープの橋と相互作用をリアルに行います。 そして、物理的にドリブンされた生物の手足のアニメーションは、私たちがロープ物理テクノロジーを適用したものにすぎません。



    • 相互作用のある破壊可能な環境
      どんな任意の環境オブジェクトや形状も、建物、木、その他のオブジェクトを破壊するために動的に物理化され、さらにその結果の断片と相互作用をします。



  • キャラクターアニメーションシステム
    私たちの新たなキャラクターアニメーションシステムはかなり優れています。
    完全に統合されたキャラクターエディターで、アニメーションをCryENGINE Sandbox 2の中でプレビューできます。 そして、その一方、極端にパワフルなアニメーショングラフのおかげで、 アニメーターが視覚的にキャラクターのアニメーションの状態と それらの状態の間で許される遷移をを定義することができます。

    • キャラクター個性化システム
      キャラクターパイプラインは、強固なキャラクターアタッチメントシステムを利用しています。 そして、それは、キャラクターのスケルトンかポリゴンの表面に対するスキンされ、アニメされ、または物理化されたアタッチメントを強要します。 あなたが置き換えることができるところまで。(完全なボディパーツ、例えば頭、手、体の上部と下部)
      シェイプ変形システムにも度づくハードウェアは柔軟なキャラクターメッシュのバリエーションを許します。
      このシステムは手動でそして手続き的にさえも、小さなメモリ足跡を保証するために、生成された標本をサポートします。 シェーダーに基づく追加的なバリエーションシステムは、泥の使用、布のシール、そしてスキンに対する偽装シェイダーです。



    • パラメトリックスケルタルアニメーション
      ユーザーが定義したパラメーターに基づく標本モーションをブレンドすることによって、 私たちは、信用性に焦点があり、自動的に自然にゲーム環境の変化に適用する能力のあるキャラクターへの、 よく応答性があり相互作用をするコントロールを手に入れることができます。
      このおかげで、キャラクターは、 様々なスピードで旅行し、 方向がゆっくりまたは急に変化する道に追随し、 上り坂や下り坂を移動し、 変化するヒットリアクションのアニメーションを動的にブレンドし、 そして/または、移動運動のスタイルを変化させることができます。



    • 機能的なモーションワーピング
      CCD-IK、analytic IK、example-based IK、または物理シミュレーションのような手続き型アルゴリズムが、 あらかじめ作成されたアニメーションの足りない分を補うために使用されています。 人工的モーションを生成するアルゴリズムにおいて、 すべての手続き型メソッドには、 コンピュータが手続き的にそのステップに追随する共通性があります。
      人工的だったりキャプチャーされたアニメーションを結合する時、コンピュータが生成した典型的な見た目を避けるために、 制約に従う必要がある変形にもかかわらず、 基本モーションのスタイルと中身を保存するワープ技術を使用しています。



    • ハイクオリティなアニメーション圧縮
      適応キーフレーム圧縮技術を使うことによって、 与えられたどんなアニメーションにも必要とされる厳密性に、 マッチするように圧縮レベルを調整することができます。 そして、それは、モーションの厳密性の大きなロスをせずに、そうしなければ消費されるであろう少なくとも90%のRAMを節約します。

  • 統合されたCryENGINE Sandbox 2エディター
    ランタイムエンジンは、デザイナーに"What you see is what you pay"機能を提供する、CryENGINE Sandbox 2エディターに完全に統合されます。

    • 埋め込まれたフェイシャルアニメーションエディター
      この強力で新しいフェイシャルアニメーションエディットツールは、 顔の特徴をアニメーションさせ説得力のあるリップシンクを提供するために、 音声波形分析技術を利用し自動的に音素とその他のキーフィーチャーを抽出します。



      その洗練され便利な複数のジョイスティックベースのユーザーインターフェースは、 数多くの強力な方法で定義・結合されそして素早く直感的にアニメーションする表現を可能にします。
      表現とアニメーションは一度に作り出すことができ、そしてシームレスに複数のモデルに適用されます。

      このシステムと連動して、ビデオトラッキングツールは、 標準ビデオカメラを使っているアクターの顔から動きをキャプチャーするために使用されます。

    • 統合された植物と茂み生成システム
      レベルデザイナーに草や木の葉の配置を要求することなく、 実行時に信じられるような自然の環境を作り出すために、 望むような許可されている地面のスロープ、表面の高度、そして許可されているプラントの密度についての 自然のルールにしたがって、手続き的に配置された植物が行動するのを可能にします。

      植物は、より環境に自然にフィットするように、地形のテクスチャーからいくらか色を吸収することもできます。



    • 統合されたボクセルオブジェクトテクノロジーの優れた地形システム
      は、彼らの面で、張り出した崖、洞くつ、またはトンネルを配置することを可能にします。 そして、全体的なポリゴンの数を減らすために、地形の詳細をper-sector basisに調整することを可能にします。



    • フローグラフ
      デザイナーがイベント、トリガー、他のゲームロジックをセットアップ可能にするビジュアルエディットシステムです。 ゲームロジックとは、入力と出力ゲートの間をお互いにラインで接続し、そのプロパティと状態の変化が定義されているロジックボックスのことです。
      このため、デザイナーは、C++のコードやLuaスクリプトを書くことを必要とせず、複雑な面を構築することができます。



    • 優れたソフトパーティクルシステムと統合型FXエディター
      次世代ソフトパーティクルを利用する極度に複雑な爆発、炎、煙、そして他の特別な効果の創作を簡単します。
      そして、そのパーティクルは順番に他のオブジェクトとの衝突に影響を受け、 例えば風や重力のような力を授受し、光や影と相互作用をします。



    • 動的時刻設定
      前もって定義された24時間サイクルのライティング状態と太陽/月の位置を反映させるために、 ゲームミッションの間の時刻を動的に変化させます。
      青くて霧のかかった朝の日の出から、火のようなオレンジの日没、クリアで冷たい月夜まで。



    • 道路と川のツール
      地形を局所的にスムーズにしたり高さを調整したり、 でこぼこした地形に道、道路、川を作るためにタイルテクスチャーを適用する過程を、 これらの統合されたツールは非常に単純化します。



    • 乗り物エディター
      コンポーネントダメージやダメージ効果の定義を含め、デザイナーが乗り物のダメージシステムをセットアップすることや、 乗客のシートと戦車の砲塔と(または)備え付けられた武器をコントロールする能力として、乗り物の接続を定義することを可能にします。 そして、エンジンと物理パラメーターに対する完全なコントロールを与えます。 それはまた乗り物の排気とサーフェスパーティクルの効果のコントロールを明らかにします。



2007.03.18 CryENGINE 2 スペック詳細 1回目 レンダリングエンジン

CryTek社ホームページにてCryENGINE 2スペック詳細(英語)のPDFファイルが公開されていました。
最新のゲームエンジンの動向を知るために、CryENGINE 2(クライエンジン2)のスペック詳細を3回に分けて翻訳し、具体的にどのような特徴があるのか理解したいと思います。

---

リアルタイムエディット、バンプマッピング、静的ライト、ネットワークシステム、統合された物理システム、シェーダー、影、そして動的音楽システムはCryENGINE 2が提供する特徴のいくつかにすぎません。

CryENGINE 2はその内部ツールのすべてを完全に備えており、 CryENGINE 2サンドボックスワールドエディットシステムも含みます。
ライセンシーはこのエンジンとツールの完全なソースコードとドキュメントを受け取ることができます。 サポートはR&Dチームによって直接提供されます。

このエンジンは現在市場にあるすべてのビデオとハードウェアをサポートしています。 新しいハードウェアのサポートは利用可能になりしだい常に追加されています。

  • 次世代リアルタイムレンダラー
    このレンダラーは、DirectX 9と10上で、屋内と屋外の両方の環境に対してシームレスなサポートを提供します。 同様に、例えばXbox360やPS3のような次世代コンソールもサポートしています。(開発中)

    • リアルタイムライティングと動的ソフトシャドウ
      CryENGINE 2は自然な見た目の光源を特徴とし、自然な動きに動的に対応してソフトシャドウ生成します。
      ハイレゾリューション、透視投影補正そしてボリューメトリックソフトシャドウの実装を含みます。



    • ボリューメトリック、レイヤー、そしてビューディスタンスフォグ
      地面に沿って進み視覚とコントラストがともにリアルに減衰する雲や霧峰を作り出します。 そして、動的ライトと影の両方と相互作用します。 遠い目印に対して、シーンのコントラストと透明度を減少することによって景色に対するデプスと次元を増やします。



    • 地形2.5Dアンビエント隠喩マップ
      は、ピクセルのレベルにつき、周囲の枝葉と構造によって作り出されたアンビエント隠喩の量の応じて、オブジェクトに届くアンビエントライトの量を概算します。





    • 法線マップと視差隠喩マップ
      ライティング計算時、非常にきめの細かいオブジェクトの詳細な輪郭を、高圧縮されたテクスチャー低ポリゴンモデルに投影するのに、法線マップが使われます。??? CryENGINE 2は視差隠喩マップもまたサポートします。



    • リアルタイムアンビエントマップ
      リアルタイムのピクセルライティングと影に適用時に、ライティングのクオリティを改善するため、インドアのサーフェスに適用される前もって計算されたアンビエント。 これは現在の光の位置と色が、動的に、インテリア空間を照らすフィルライトの密度に加算できることを意味します。



    • サブサーフェススキャタリング
      氷やヒスイのような半透明のオブジェクトを透過する光の拡散と回折をシミュレートします。 また、自然に見える皮膚や植物を作り出すために使うことができます。



    • 目適応とハイダイナミックレンジ(HDR)ライト
      目適応は、人間の目が、光の状態が突然または極端に変化するのに適応するのをシミュレートするのに使われます。 (暗い室内環境から明るい陽の降り注ぐ屋外環境へ移るような)
      さらに、HDRは極端に明るかったりコントラストのあるシーンをよりリアルに描写してくれます。



    • ライトビームと光の一筋
      これらはすごく美しい光の筋と影を視覚的に作り出すために使われます。 光が、中身がつまってるまたはかなり詳細な????と交差するときに。 そして、水面下では"godray"効果を生み出すことができます。



    • 高度なシェイダーテクノロジー
      スクリプトシステムは、 ユニークな効果(例えば、覆い隠された、湿った、泥だらけの、そして凍ったサーフェス)を作り出すため、 様々な方法でテクスチャーを結合したり計算するのに使用されます。
      そして、そのサーフェスというのは一緒に重ねたりもっと基本的なシェーダー(例えば、金属的だったりガラスぽかったり、その他の視覚的効果)と結合することができます。

      リアルタイムなピクセルごとのライティング、バンプな反射、屈折、ヴォリューメトリックなグロー効果、アニメーションするテクスチャー、透明なコンピューターディスプレイ、ウィンドウ、弾痕、そして、輝く表面をサポートします。

      含まれているものは、DirectX 10のユニファイドシェーダーアーキテクチャの効率を生かす、多くのユニークで新しいシェーダーです。



    • ハイクオリティ3D海テクノロジー
      は、波と風の方向に基づいて、海の水面を変更します。


    • モーションブラーと被写界深度
      モーションブラーは、速く動くオブジェクトを追ったり、カメラを素早く動かしたりする時に、遅いシャッタースピードを使った視覚的効果をシミュレートするのに使用されます。ブラーは個別のオブジェクト(オブジェクトをベースにしたモーションブラー)と(または)シーン全体(シーンをベースにしたモーションブラー)に適応することができます。

      一方、被写界深度は、観察者の目が近くにあるオブジェクトに焦点を合わせるのに使用することができます。 (焦点の前後で微妙にぼけているオブジェクトの中で)



    • 地形LODマネージメント機能
      この機能はCPUとメモリの最適な使用量をより近いオブジェクトと地形をもっと良いレベルで許します。 (8キロメートルを超える長い視界距離を可能にしながら)



2007.03.15 実写にかなり近くなってきたゲームエンジン CryENGINE2

有名なゲームエンジンとしては Unreal Engine 3.0 や SourceEngine がありますが、最近特に注目されてきたこのゲームエンジンCryENGINE2は自然をとてもリアルに表現にしています。

画像の上は実写、下はこのエンジンによるものです。このクオリティでリアルタイムに動きます。




このエンジンの特徴を説明している動画です。

  • Time of Day Lighting - 時刻ごとの太陽光の変化
  • Dynamic Soft Shadow - 動的なソフトシャドウ生成
  • Real Time Ambient Maps - リアルタイムにアンビエントマップ生成
  • Lightbeams - 光の柱
  • Long Range Viewdistance - 広範囲な視点距離
  • Parallax Occlusion Mapping (POM) - 視差遮蔽マッピング
  • 3D Ocean Technology
  • Facial Animation - 音声にあわせて顔をアニメーションさせる
  • Parametric Skeletal Animation System -
  • Procedural Motion Warping -
  • Object Motion Blur - オブジェクトのモーションブラー
  • Depth of Field - 被写界深度
  • Breakable Buildings - 破壊可能な建物
  • Breakable Vegetation System - 破壊可能な植物
  • Advanced Rope Physics - 優れたロープ物理
  • What you see is what you PLAY - 見た目のままプレイ
  • Component Vehicle Damage - 乗り物の部分単位のダメージ
  • Next-Gen Physics System - 次世代物理システム

http://www.crytek.com/ - CryTek社ホームページ