地理的に正確な太陽の位置決定

地上におけるレベルの位置、日付、時刻を指定して太陽の位置を制御します。

Windows
MacOS
Linux

場合によっては、空の太陽の位置は見た目だけの問題ではなく、デザイン上の重要な要素となります。

とりわけ大規模なアーキテクチャの建設プロジェクトや、日光と影のリアルなパターンを描く真に迫るレンダリングを生成する必要がある場合には常に重要です。

このような場合、実際の地球上の太陽の位置を決定するのと同じ数式にしたがい、Unreal Engine のレベルの正確な場所に太陽を設置する必要があります。これらの複雑な方程式は、見る側の地理的な位置、日付、時刻など多くの設定が組み込まれます。

Unreal Engine では Sun Position Calculator プラグインでこれらの数式を解きます。緯度、経度、基本方位、日付、および時刻を定義してください。すると、Sun Position Calculator が Unreal Engine のデフォルトの天球と連携して天球に太陽面を置き、レベルでメインの Directional Light (指向性ライト) の方向を正しい方向に向けます。

入門編

前提条件 このサン ポジショナーは、Unreal Editor に作成したほとんどの新規レベルで既にセットアップされている デフォルトの BP_SkySphere と連携して実行されます。レベルに BP_SkySphere インスタンスが存在することを確認してください。

開始する

  1. メインメニューから [Edit > Plugins] を選択します。

  2. Misc カテゴリにある [Sun Position Calculator] プラグインの Enabled チェックボックスにチェックを入れます Enable the Sun Position Calculator

  3. [Restart Now (すぐに再起動)] をクリックして変更を適用して Unreal Editor を再度開きます。 Restart Now

  4. コンテンツ ブラウザ で、ソースパネルを開きます。 Sources

  5. コンテンツ ブラウザ 右下の [View Options (表示オプション)] メニューを開いて [Show Engine Content (エンジンのコンテンツを表示)][Show Plugin Content (プラグイン コンテンツの表示)] を両方とも有効にします。 Show Engine and Plugin Content

  6. SunPosition コンテンツ」フォルダの BP_SunPosition アセットをビューポートにドラッグします。 Drag and drop the BP_SunPosition コンパスの基本方位のようなギズモで表されます (Unreal Editor でプロジェクトを実行していないときはこのギズモのみ表示されます)。

  7. ビューポートのギズモまたは、 ワールド アウトライナBP_SunPosition アクタを選択します。 Select the BP_SunPosition

  8. [Details (詳細)] パネルで、太陽の配置を決定するシーンのプロパティを設定します。 Set the location, date, and time

    設定

    説明

    Latitude (緯度)

    赤道の南の座標に負の値、赤道の北の座標に正の値を使用します。

    Longitude (緯度)

    子午線の西の座標に負の値、子午線の東の座標に正の値を使用します。

    Time Zone (タイムゾーン)

    サイトと協定世界時 (UTC) またはグリニッジ標準時 (GMT) とシーンとの時差を時間数で設定します。

    North Offset (北方向のオフセット)

    レベルのオブジェクトとコンパスの基本方位間の関係性を制御します。この制御の変更すると、レベルの BP_SunPosition ギズモの視覚的位置も回転します。レベルのオブジェクトに対して、ギズモの示している基本方位が正しい方向を指すように値を調節してください。

    レベルのビューポートの回転ツールを使用してギズモ自体を回転させないでください。North Offset の設定は、基本方位を制御する目的のみに使用してください。

    Date (日付)Time (時刻)

    シミュレーションしたい年月日と時刻を設定します。

これらのプロパティの値を変更すると、Unreal Editor で太陽が空を移動して影が変化します。

実行時の設定変更

BP_SunPosition アクタの設定を実行時に変更することができます。これにより、UI ウィジェットやその他ゲームプレイ イベントに応じて太陽の位置と光の角度を変化させることができます。

  1. 実行時の太陽光の角度を変化させるためには、レベルの Directional Light を [ムーバブル] にします。[ワールド アウトライナ] またはレベルのビューポートで Directional Light を選択して、 [詳細] パネルの [可動性] の設定を [ムーバブル] に設定します。 Light Mobility

  2. 実行時にブループリント スクリプトで値を変更するには、レベルに存在する BP_SunPosition アクタへのオブジェクト参照が必要です。以下のように Get All Actors of Class ノードを使用するとこの参照を動的に取得することができます。 Get a reference to the BP_SunPosition Actor

    Get All Actors of Class は負荷が高いので、値を取得したりセットする必要がある度に実行するのではなく、一度実行したときに (たとえばレベルがロードされたときやウィジェットが構築されたときに) その結果を変数に保存しておくのがベストです。

  3. オブジェクト参照を取得したら、その出力ポートから右にドラッグして [Variables (変数)] カテゴリを展開し、Unreal Editor の [詳細] パネルで提供されている値の取得やセットが可能な Get および Set ノードのリストを探します。 Get and Set API for the BP_SunPosition Actor

  4. これら新規の値を必要に応じてセットします。完了したら、 BP_SunPosition 変数の出力ポートからドラッグして Update Sun ノードを呼び出します。 Update Sun function

たとえば、次のような Widget ブループリントからのスニペットは、6:00am ~ 10:00pmまでの任意の時間の値に変更する UI のスライダーを設置します。

クリックして最大化。

実行中のスライダーは次のようになります。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback