UE4とEnlightenによるブループリントを使ったダイナミックライティングゲームプレイ

2014年12月3日

※一部の動画およびリンクコンテンツが閲覧できない可能性がございます。詳細はページ下部をご覧ください。

「これはとてもすばらしい!私はUnreal Engine 1のレンダラーを構築していたときに、このようなダイナミックな間接照明を夢見ていました。」
Epic Games 創設者兼CEO ティム・スウィーニー

ライティングを使ったプレイヤーによるインタラクションは、これまで間接照明によって作られたもっともらしい表現を壊さないと不可能でしたが、EnlightenとUE4は新たな方法でこれを実現します。この今回のポストの焦点は、ダイナミックなライティングとゲームプレイです。セットアッププロセスなど、このデモ動画のほかの側面についても今後のポストで説明していく予定です。

リアルタイムライト編集 - UE4 + Enlighten

UE4とEnlightenを使うと、編集中やゲームプレイ中にライティングを配置したり、変更したりすることが可能です。Enlightenはライティングのバウンス、およびリフレクションキューブマップをリアルタイムで提供します。

こちらのデモ動画で使われているアンビエントオクルージョン(AO)とスクリーンスペースリフレクション(SSR)を一例として、EnlightenはUE4の機能を上書きすることなく動作しています。

このワークフロー動画は、2つのスポットライトとEnlighten Skylightが素早く完璧に室内を照らす様子をお見せします。

マテリアルとトランスミッション

この動画は、太陽に照らされた強烈な日差しがカーテンに当たる部屋から始まります。太陽が沈むと、ディレクショナルライトがカーテンの後ろから当たり、カーテンを通して直接光をグローバルイルミネーションに伝えます。カーテンが赤いので、これによって部屋に暖かい色調を与えます。

下のスクリーンショットと動画内のスポットライトで、その効果をよりはっきりと見ることができます。

ブループリント:テレビ

ダイナミックな光源は、前出の日差しとは対照的に、神秘的な雰囲気を作り出します。ブループリントを使うことで、ライティングを使ったプレイヤーによるインタラクションを可能にします。

動画内のテレビで動いているシェーダーがノイズをアニメーションし、画面を点滅させます。これはマテリアルのパラメーターを介した発光量を持ちますが、Enlightenではテレビ画面のようなスタティックメッシュにエミッシブマテリアル(発光物質)を割り当て、効果的に固定エリアライトへ変えることができます。

タイムラインで定義された3つの浮動小数点曲線を色に乗算することによって、レンダリングされたマテリアルの色とEnlightenエミッシブプロパティをアニメーション化します(1つのフェードイン/アウトと2つのノイズの多い位相オフセットカーブの掛け合わせ)。これにより、フリッカーに対してソフトなランダムモーションが付加されます。フレーム毎にライトとマテリアルパラメーターを設定し、テレビをオン/オフしたいときにタイムライン上のイベントを呼び出します。

時間があれば追加したかった要素:

  • テレビ画面上の映像 。ブループリントでは、シェーダー上のエクスポーズされたパラメーターを介してシェーダーとライティングパラメーター間の整合性を保つ。
  • ホワイトノイズ音と、暗い部屋にプレイヤーが入った直後にテレビを起動させ、「日本のホラー映画」のような感じを作り出すこと。

ブループリントの分類:ライトキューブ

ライトキューブの作成は大変楽しいものでした。私たちはゲーム内のプレイヤーによってスポーン可能な完全にダイナミックな物理アクターを介して、シーンにアニメーション化された光の色相を追加したいと考えました。

キューブはスポーン可能なアクターです。それは下向きのスポットライトと中央にとてもぼんやりしたポイントライトを持っています。私たちは以下のブループリントでこれら2つのライトを動かしています。そして、コリジョンメッシュをボックスに単純化します。

マテリアルについてはできるだけシンプルにしています。私たちはマテリアルのエミッシブプロパティを利用して、ブループリントといくつかの微調整可能なものから駆動される色のパラメーターを公開します。

このブループリントは、シェーダーとライトコンポーネントの両方で、キューブのダイナミックな外観を制御する中心として機能します。時間が経つと照明と素材の色が変わります。ゲーム時間を利用して色の動きを作成するために、下記の例で使用しているように、アクターをスポーンするときに乱数で2つの変数を初期化します。
これは、プレイヤーがライトキューブをレベルで生成したときに、複数のキューブが同期して色を変化させないようにするためです。

色を配列に格納し、プレイヤーが希望の色を変更したり追加したりできるようにすることで、これを拡張できます。

Enlightenとは(4つの要点)

  • シーンにほしいライトを追加し、それをアニメーション化します。 Enlightenは、テクスチャーへのライティングを再ベイクすることなく、拡散したバウンスおよびダイナミックキューブマップをリアルタイムに更新します。
  • これを可能にするために、Enlightenはスタティックメッシュアクターから小さな間接ライトマップを作成します。ゲームのランタイムまたはエディターは、このライトマップをランタイムのメモリーに更新します。メッシュのディテールを調整し、ビジュアルディテールとランタイムパフォーマンスを望み通りにミックスさせるためのプリセットが用意されています。
  • Enlightenは、キャラクターや物理アクターなどの可動オブジェクトを周囲のライティングと統合させるためのライトプローブを作成します。
  • Enlightenは、リアルタイムに更新される間接光からのリフレクションキューブマップを提供します。

Enlighten SDKは非常に柔軟性があり、常に開発が行われています。ワークフローはエンジンの種類とインテグレーションの仕方によって異なる場合があります。

まとめ

これらの例は、UE4のグラフィックスの仕様とブループリントをEnlightenのリアルタイムグローバルイルミネーションと組み合わせることで、より多くのゲームプレイ要素をライティングに追加し、信じられるルック&フィールを維持する方法を示しています。

by Geomerics, an ARM company

※ この記事は英語から翻訳されました。

※Geomerics社および関連ウェブサイトの閉鎖により、2017年5月以前の投稿の動画およびリンクコンテンツが閲覧できない可能性がございます。内容についてご質問などございましたら、お問合せフォームよりお気軽にお問い合わせください。

評価版ダウンロード・ご購入・お問い合わせ

メールでのお問い合わせはこちら

電話でのお問い合わせはこちら

シリコンスタジオ株式会社

go to top Enlighten

評価版ダウンロード・ご購入・お問い合わせ 評価版ダウンロード・ご購入・お問い合わせ