UMG のクリッピング システムでは、ウィジェット (およびエディタの他の部分) のテキスト、画像、コンテンツをどのように表示するかを制御するフレームワークとして スレートのクリッピング システム を 使用します。クリッピング では、レンダリングしたオブジェクト (グラフィックスとテキスト) をバウンディング ボックスを使って一定の領域に制限し、その外側にあるものは非表示にします。クリッピング システムは座標軸に平行なものになったため、 以前はトランスフォーム処理の方法が理由で不可能であった、あらゆる回転のクリッピングを行うことができます。
(w:500)
この例では、それぞれのボタンが表示テキストの親になっています。これらの例では、ボタンまたはテキストがクリッピングされるかどうかを示しています。
- 左 - ボタンまたはテキスト上でクリッピングは有効になっていません。
- 中央 - テキスト上でクリッピングが有効になっています。
- 右 - ボタン上でクリッピングが有効になっています。
下の画像の青色で囲まれた キャンバス パネル (クリッピング ゾーン) はゲーム画面を表しており、ゲーム内のこの領域外にあるものがすべてクリッピングされます (描画されない)。
UMG デザイナのグラフでは、キャンバス パネル (青色) がゲーム画面のクリッピング ゾーンを表します。 画像をクリックしてフルサイズで表示
Unreal Engine 4.16 以前は、ウィジェットのクリッピング処理にレイアウト空間を使用しており、これによってキャンバス パネル外にあるもののレンダリングを妨げていました。そのため、ウィジェットのバウンディング ボックスの一部が キャンバス パネル外にあると、ウィジェットを回転したとしてもレンダリングされなくなります。そのため、そのバウンディング ボックスでは、キャンバス パネル内にあったとしても、一部が欠落したグラフィックスやテキストが 残ることはありません。
変更前後を比較した以下の例を見てみましょう。


Image ウィジェット (左) がキャンバス パネルの端に配置されているため、そのバウンディング ボックスの一部が外側にあります。クリッピング システムが、レイアウト空間を使用するのではなく、座標軸に平行になったため、 右のもう一方のクリッピングのように、アーティファクトや問題を解決するクリッピングになります。
クリッピングのプロパティ
UMG の [Details (詳細)] パネルにある [Clipping (クリッピング)] で選択したウィジェットに基づいて、クリッピングの処理方法を変更することができます。

プロパティ | 説明 |
---|---|
Inherit (継承) | 子をクリッピングせず、親ウィジェットからパスされたクリッピング/カリングに従います。 |
Clip to Bounds (バウンドにクリッピング) | ウィジェットのバウンドにコンテンツをクリッピングします。それらのバウンドは以前のクリッピング領域と交差します。 |
Clip to Bounds - Without Intersecting (バウンドにクリッピング - 交差なし) | ウィジェットのバウンドにクリッピングします。既存のクリッピング ジオメトリとは交差せず、新しいクリッピング ステートをプッシュします。クリッピングを行う階層のバウンド外のレンダリングを実質的に許可します。 これにより、[Clip to Bounds - Always] に設定されたクリッピング ゾーンを無視できなくなります。 |
Clip to Bounds - Always (バウンドにクリッピング - 常に) | ウィジェットのバウンドにクリッピングします。それらのバウンドは以前のクリッピング領域と交差します。 このクリッピング領域は無視できず、常に子供がクリッピングされます。アニメーションや他のエフェクトの効果を適用させたくない領域の UI のハード バリアに役立ちます。 |
On Demand (オンデマンド) | このウィジェットは、その Desired Size (望ましいサイズ) がウィジェットにアロケートされたジオメトリよりも大きい場合に、そのバウンドにクリッピングします。こうなった場合は、[Clip to Bounds] を選択したときと同じ動作になります。 このモードは主に、最終的にサイズ変更されて、テキストの長さをサポートできなくなるコンテナに配置される Text 用に追加されたものです。テキストを含む可能性のあるすべてのコンテナを「YES」でタグ付けする (ほとんどの場合はバッチ処理なしの結果になる) のではなく、必要な場合にクリッピングを動的に調整するために、このモードが追加されました。すべてが必ずしも [On Demand] に設定されていないのは、レンダリングする予定のサイズと一致する Desired Size をすべてのパネルが返すわけではないためです。 |
追加の考慮事項
- テキストの長さを制御できず、クリッピングする必要がある場合を除き、クリッピング方法を調整する必要はほとんどありません。この例として、[Inherit] ではなく [Clip to Bounds] に設定されている Scroll Box と Editable Text Widget があります。
- さまざまなクリッピング空間の要素をまとめて処理することはできません。そのため、クリッピングにはパフォーマンスの負荷が伴います。こうした理由から、パネルでバウンド外にあるコンテンツの表示を防ぐ必要がない限り、クリッピングは有効にしないでください。