コンテンツにスキップ

Mesh Mapping

メッシュマッピングを使うと、1 つ以上のスクリーン全体に 3D コンテンツを投影し、対象とする面の範囲に合わせて自動的に調整できます。大規模なプロジェクションインスタレーションへの 3D コンテンツのマッピングや、VP/xR 撮影向けのフラスタム外コンテンツのレンダリングに非常に役立ちます。

メッシュマッピングは パースペクティブマッピング に似ており、アイポイントからコンテンツをスクリーンに投影し、レンダリングされたコンテンツが視点フラスタムに一致するように、投影視点を 3D コンテンツエンジンへ送ります。

メッシュマッピングとパースペクティブマッピングの主な違いは次のとおりです。

  • メッシュマッピングの視点フラスタムは、スクリーンの範囲を緊密に囲むように自動的に計算されますが、パースペクティブマッピングのフラスタムプロパティ(回転、視野など)は手動で設定する必要があります。
  • RenderStream を使用する場合、メッシュマッピングはレンダーノード上でスクリーンに投影を適用してから、画像を UV 空間で転送します。これは、投影で失われるピクセルを転送せずに済むため、より効率的です。パースペクティブマッピングは、レンダリングされた画像を転送してから、受信側のマシンで UV 空間に投影します。

コンテンツマッピング 画像をクリックすると YouTube で動画を視聴できます

メッシュマッピングは、他のマッピングタイプと同様に、レイヤーの Mapping フィールドから作成します。その後、マッピングエディターでスクリーンを追加し、他のプロパティを設定します。

メッシュマッピングエディター メッシュマッピングエディター

メッシュマッピングは他のマッピングと同様の方法で作成できますが、作成後は 3D コンテンツ向けにさらに設定する必要があります。

  1. トラックに新しいビジュアルレイヤーを追加します。これは content layergenerative layereffect layer のいずれかです。
  2. トラック上の新しいレイヤーを左クリックして Layer Editor を開きます。
  3. Default タブで Mapping パラメーターを左クリックすると、プロジェクト内のすべてのマッピングを一覧表示する Mappings マネージャーが表示されます。
  4. New Mapping テキストフィールドに、新しいマッピングの名前を追加します。マッピングタイプを選択するよう促す一覧が表示されます。
  5. 一覧から Mesh を選択します。Mesh Mapping エディターが表示されます。
  6. Mapping editor で、マッピングに使用するスクリーンを割り当て、コンテンツの解像度を指定します。

下記の RenderStream ワークフロー に従って 3D コンテンツを追加します。

このセクションでは、さまざまなマッピングタイプ間で共有されるプロパティを説明します。

  • Nearest: 最近傍フィルタリング。最近傍サンプリングを使用し、スケーリング時のピクセル間のブレンドを無効にします。ピクセル化された見た目を作成したり、特定の種類のコンテンツでハードエッジを確保したりするために使用できます。

  • Bilinear: バイリニアフィルタリングは、実際のサイズより大きく、または小さく表示する際にテクスチャを滑らかにするために使用されるテクスチャフィルタリング手法です。

  • 2x Multi-sample: マルチサンプルフィルタリングは、スケーリングされたコンテンツの問題を修正するのに役立ちますが、多少のぼかしが生じることがあります。

選択したマッピングタイプがコンテンツをコピーできるスクリーンの一覧です。

  1. + を左クリックして Screens マネージャーを開きます。
  2. + を左クリックして、マッピングしたいスクリーンを追加します。これにより、個々のキャンバスコンテンツがこれら 3 つのスクリーンへ同時にコピーされ、マッピングオブジェクトエディターにスクリーン名が追加されます。
  3. マッピングオブジェクトエディターに一覧表示されたスクリーンを左クリックして - へドラッグします。これにより、スクリーンからキャンバスコンテンツが削除され、マッピングオブジェクトエディターからスクリーン名が削除されます。

Find/Replace Usages(使用箇所の検索/置換)

Section titled “Find/Replace Usages(使用箇所の検索/置換)”

プロジェクト内で現在のマッピングが使用されているすべての箇所を検索し、それらを別のマッピングに置き換えられるようにします。置換は、シーケンス化された、Sockpuppet 化されていないマッピングに対してのみ機能する点に注意してください。

階層セクションでは、他のオブジェクトと同様に、マッピングを別のオブジェクトの親または子として設定できます。詳細については [オブジェクトの概要] (/ja/designer/stage-setup/objects/objects-overview) を参照してください。

メッシュマッピングの解像度プロパティ

Section titled “メッシュマッピングの解像度プロパティ”

メッシュマッピングはレンダリング先の各スクリーンに対して異なる視点を作成するため、各視点のマッピング解像度を決める方法にいくつかのオプションがあります。

  • Constant: 各視点は、マッピングの Resolution プロパティで定義された同じ一定の解像度でレンダリングされます。
  • Scaled: 各視点の解像度は、マッピング先のスクリーンの解像度に Mapping resolution scale を掛けた値になります。
  • Pixels Per Degree: 各視点の解像度は、Pixels per degree プロパティで設定された一貫した角度解像度を維持するように、フラスタムの水平・垂直の視野に基づいて計算されます。

Resolution methodConstant に設定されている場合、このプロパティはすべての視点の解像度をピクセル単位で制御します。

Mapping resolution scale(マッピング解像度スケール)

Section titled “Mapping resolution scale(マッピング解像度スケール)”

Resolution methodScaled に設定されている場合、特定のスクリーンに対してコンテンツがレンダリングおよび投影される解像度は、そのスクリーンの解像度にマッピング解像度スケールを掛けた値になります。

Pixels per degree(度あたりのピクセル数)

Section titled “Pixels per degree(度あたりのピクセル数)”

Resolution methodPixels Per Degree に設定されている場合、このプロパティはマッピングの角度解像度を定義します。

Render resolution scale(レンダー解像度スケール)

Section titled “Render resolution scale(レンダー解像度スケール)”

RenderStream でメッシュマッピングを使用する場合、レンダーエンジンはまず解像度 A でシーンのビューをレンダリングします。このビューはその後スクリーンに投影され、解像度 B で UV 空間でネットワーク経由で転送されます。複雑な UV マップを持つスクリーンで役立つことがあり、レンダー解像度スケールを設定して、マッピング解像度 B に対するレンダー解像度 A を調整できます。

  • 解像度 B は、上記のとおり、スクリーンの解像度に Mapping resolution scale を掛けた値です。
  • 解像度 A は、解像度 BRender resolution scale を掛けた値です。

その他のメッシュマッピングのプロパティ

Section titled “その他のメッシュマッピングのプロパティ”

メッシュマッピングに固有のその他のプロパティには次のものがあります。

3D コンテンツがレンダリングされ、スクリーンにマッピングされる起点です。これは、3D コンテンツのパースペクティブが正しく見えるワールド内のポイントです。

これを使って、3D コンテンツの原点を Designer の座標空間からオフセットし、スクリーンに対するシーンの整合を調整できます。

Roll rate limit(ロールレート制限)

Section titled “Roll rate limit(ロールレート制限)”

メッシュマッピングをカメラなどの親オブジェクトに追加し、アイポイントがそのカメラに追従するようにできます(下記 を参照)。トラッキングされたカメラに追従すると、フラスタムのロールに突然のジャンプが生じ、レンダリングされたコンテンツにアーティファクトが発生することがあります。ロールレート制限は、フラスタムのロールが変化できる速さを制限することで、こうしたジャンプを回避します。

Near clipping plane(ニアクリッピング平面)

Section titled “Near clipping plane(ニアクリッピング平面)”

フラスタムのニアクリッピング平面の、アイポイントからの距離(メートル単位)。これより近いコンテンツ内のオブジェクトはレンダリングされません。

Far clipping plane(ファークリッピング平面)

Section titled “Far clipping plane(ファークリッピング平面)”

フラスタムのファークリッピング平面の、アイポイントからの距離(メートル単位)。これより遠いコンテンツ内のオブジェクトはレンダリングされません。

メッシュマッピングは、アイポイントから 3D シーンのビューをレンダリングし、選択したディスプレイのメッシュにパースペクティブワープを適用します。Enable warp にチェックを入れると、RenderStream を使用する場合にパースペクティブワーピングがレンダーノード上で適用され、ストリームを受信するマシンのパフォーマンスが節約され、最終的にパースペクティブワーピングで切り取られるピクセルのストリーミングを回避できます。Enable warp のチェックを外すと、RenderStream はレンダリングされたビューをストリーミングし、パースペクティブワープは受信側のマシンで行われます。このオプションは、ローカルでレンダリングされるモジュールには影響しません。

エッジ効果を補正するために、元のキャンバスの外側に追加のコンテンツをレンダリングします。1 は元のサイズの 100 %、2 は 200 % などを意味します。視野が広がっても、レンダリングされる総コンテンツの解像度は変わらない点に注意してください。追加されたオーバースキャンを考慮して、マッピング解像度を上げるとよい場合があります。

Combine Screens(スクリーンの結合)

Section titled “Combine Screens(スクリーンの結合)”

デフォルトでは、メッシュマッピングはマッピング内の各スクリーンに対して個別のコンテンツ視点をレンダリングします。ただし、Combine Screens オプションを使うと、1 つの視点で複数のスクリーンをカバーできます。これは、多数のスクリーンが近接している構成でパフォーマンスを向上させるのに役立ちます。利用できるオプションは次のとおりです。

  • None: 各スクリーンが独自の個別の視点フラスタムを持ちます(デフォルト)。
  • All: すべてのスクリーンが 1 つの結合された視点フラスタムを共有します。
  • Non-Output: 非出力マシン(例: Editor、Dedicated Director)では視点が結合され、出力マシン(例: Actor、Non-Dedicated Director)では分離されます。
  • All Active: 各マシンがローカルでアクティブなスクリーンを 1 つの視点に結合します。このオプションは RenderStream では機能しない点に注意してください。RenderStream モジュールは、None モードと同様に、スクリーンごとに個別の視点をレンダリングします。

メッシュマッピングエディターを開くと、視点フラスタムがステージに描画され、コンテンツがどのように投影されるかを理解するのに役立ちます。

メッシュマッピングのフラスタム メッシュマッピングのフラスタム

メッシュマッピングは、RenderStream を使用する 3D コンテンツワークフローで非常に役立ちます。上記のとおり、メッシュマッピングはレンダーノード側でコンテンツをスクリーンに投影し、後で破棄されるピクセルをネットワーク経由で送らずに済みます。また、スクリーンを緊密に囲む視点フラスタムを自動的に作成し、レンダリングされる各ピクセルの効率を最大化します。

RenderStream では、大規模なキャンバスのレンダリングを複数のレンダーノードにクラスター化できます(RenderStream の概要 を参照)。メッシュマッピングはこのワークフローに対応し、各スクリーンフラグメントに対して個別の視点フラスタムを生成し、その結果のレンダーを組み合わせて 3D シーンの 1 つの連続したビューを提供します。フラグメント間のブレンドには、通常どおりパディングとオーバーラップを使用できます。

クラスターレンダリングにより、視野が 180 度を超えてアイポイントを取り囲むスクリーンにもメッシュマッピングを使用できます。各フラグメントに対して個別の視点が生成されるため、個々の視点の視野が 180 度未満であれば、マッピングは正しく見えます。

複数のフラグメントを使ったメッシュマッピング 複数のフラグメントを使ったメッシュマッピング

RenderStream クラスタリングを使うと、フラスタム内とフラスタム外のコンテンツを同時にレンダリングすることもできます。

クラスターレンダリングのワークフロー

Section titled “クラスターレンダリングのワークフロー”

フラスタム内・フラスタム外の構成で Cluster Workload 内のメッシュマッピングを使用するには:

  1. MR set (backplate) を対象とする単一のチャンネルを Cluster Workload 内に設定します。
  2. メッシュマッピングを対象とする別のチャンネルを作成します。プールサイズが 2 の場合、開始時にメッシュに対して 2 つのストリームが生成されます。
  3. 両方で同じシーン原点オブジェクトを使用し、同じ基準点を持つようにしてください。
  4. ワークロードを開始します。フラスタム内とフラスタム外の両方のレンダーを受信するため、ネットワーク全体で合計 3 つのストリームが表示されます。

メッシュマッピングを設定して、アイポイントがカメラの位置に追従するようにできます。これにより、スペーシャルCamera Plate のバックプレートマッピングのようにカメラのパースペクティブに適応しつつ、カメラフラスタムだけでなくスクリーン全体を埋めるマッピングが得られます。

MR set でメッシュマッピングがカメラに追従するように設定するには:

  1. MR set を作成し、スクリーンとカメラを追加します。
  2. メッシュマッピングを作成し、スクリーンの一覧に MR set を追加します。メッシュマッピングは、その後 MR set 内のスクリーンを自動的に対象とします。
  3. メッシュマッピングエディターに Follow camera フィールドが表示されます。これにチェックを入れると、アイポイントがカメラの位置に追従します。
  4. あるいは、メッシュマッピングのスクリーンの一覧にカメラを追加するか、メッシュマッピングを他の任意のオブジェクトの子にすることでも、同様の動作を実現できます。

カメラに追従するメッシュマッピング カメラに追従するメッシュマッピング

アイポイントが移動すると、メッシュマッピングのフラスタムは、スクリーンを囲むより効率的な方法を見つけたときに突然ジャンプすることがあります。これにより、レンダリングされたコンテンツにぼやけやその他のアーティファクトが生じることがあります。これを補正するには、Roll rate limit を設定して、フラスタムがロールできる速度を下げます。

メッシュマッピングのアイポイントを移動させると、焦点距離が突然変化することもあり、レンダーエンジン(例: Unreal)で被写界深度効果が有効になっている場合にぼやけが生じることがあります。メッシュマッピングに使用するカメラでは、被写界深度を有効にすべきではありません。Unreal Engine でこれを行う方法については、こちら をクリックしてください。