[Unity] uGUIのRaw 画像(Raw Image)の使い方

当ページのリンクには広告が含まれています。
目次

Raw 画像(Raw Image)とは

uGUIにおける画像表示コンポーネントの1つです。
Texture 型の画像をそのまま表示することができます。

  • 主な用途
使用例説明
動画プレイヤーVideoPlayer.renderMode = RenderTexture → Raw Imageで表示
Webカメラ映像WebCamTexture をそのまま表示
カスタムレンダリング結果RenderTexture に描画した内容を UI 上に表示
外部読み込み画像の表示Texture2D.LoadImage() → Raw Imageに適用

Image コンポーネントと似ていますが、主に以下のような違いがあります。

画像 (Image)との違い

  • 用途の違い
項目ImageRaw Image
主な用途UI画像・アイコン・ボタン背景など動画・Webカメラ・特殊なテクスチャ表示
対応テクスチャSprite(スプライト)専用Texture(テクスチャ)全般
機能性スライスやフィル表示、レイキャストなどに対応表示のみ(機能は最低限)
パフォーマンス軽量かつ最適化されている高度なテクスチャ処理に向くがやや重いことも
  • UI機能の対応の違い
機能ImageRaw Image
スライス表示(9-slice)✅ 可能❌ 不可
塗りつぶし(Fill)✅ 可能(時計型やバー表示)❌ 不可
ボタン背景✅ 適している❌ 向かない
イベントとの連携✅ フルサポート⭕(制限あり)

Raw 画像(Raw Image)を構成するコンポーネント

コンポーネント名説明
Rect Transform・UI全般で使われる 2Dレイアウト用の Transform
・配置・サイズ・アンカーの設定に使用
・他の UI と同様に Canvas の中で制御される
Canvas Renderer・Unity の UI描画用内部コンポーネント
・通常は開発者が直接操作しない
・Graphic(Raw Image など)と Canvas をつなぐ描画バックエンド
Raw Image・Texture(テクスチャ)型の画像をそのまま uGUI 上に表示するためのUIコンポーネント
・Texture2D や RenderTexture を直接表示可能
・Image コンポーネントとは異なり Sprite ではなく Texture を扱う
・UV矩形(uvRect)で画像の表示範囲を細かく制御できる
・動画・Webカメラ・カスタム描画結果の表示に最適

Raw 画像(Raw Image)の基本的な使い方

Raw 画像(Raw Image)を使用するには、UI要素を配置するためのCanvasが必要です。
もし、シーンにCanvasが無い場合は、Canvasを作成してください。

キャンバス(Canvas)の作成:
「ヒエラルキー(Hierarchy)」ウィンドウを右クリック⇒UI⇒キャンバス(Canvas)
を選択してCanvasを作成します。

Raw 画像(Raw Image)の作成:
「ヒエラルキー」ウィンドウのCanvasオブジェクトを右クリック⇒UI⇒Raw 画像(Raw Image)
を選択してRawImageをCanvasに追加します。

Raw Imageコンポーネントでは以下の項目を設定できます。

  • テクスチャ (Texture)
  • 色 (Color)
  • マテリアル (Material)
  • レイキャストターゲット (Raycast Target)
  • レイキャストパディング (Raycast Padding)
    • Left
    • Bottom
    • Right
    • Top
  • マスク可能 (Maskable)
  • UV 矩形 (UV Rect)
    • X
    • Y
    • W
    • H

順番に解説していきます。

テクスチャ (Texture)

表示対象となる「画像のデータ本体(= Texture型)」を指定するためのプロパティです。

  • 使用できる Texture の型

UnityEngine.Texture 型を継承した以下のような型を扱えます。

型名説明
Texture2D最も基本的な静的画像。PNG/JPGなどの画像ファイルをロードして使う
RenderTextureカメラやポストプロセスなどの描画結果をリアルタイムで格納する特殊なテクスチャ
WebCamTextureWebカメラやスマホカメラからの入力映像を表す
MovieTexture(旧)動画再生用(※非推奨、古いUnity限定)

色 (Color)

テクスチャに対して乗算(Multiply)される色を指定するためのプロパティです。
「元の画像にこの色を掛け算することで、見た目を変える」ためのパラメータです。

  • 設定例
設定値(R, G, B, A)表示結果
color = (1, 1, 1, 1)元の画像そのまま表示
color = (1, 0, 0, 1)赤みだけを残して表示(青・緑を消す)
color = (1, 1, 1, 0.5)半透明になる
color = (0.5, 0.5, 0.5, 1)暗くグレーがかった見た目になる
  • 主な用途
用途解説
表示・非表示を切り替えたいcolor.a = 0(透明) or 1(不透明)で制御
フェードイン・フェードアウトcolor.a を時間経過で変化させる
色調を変えたいRGB成分を変更する(例:暗くする、グレーアウトなど)
選択状態や操作可否を表現したいアクティブな時は白、不活性な時は薄灰色など

マテリアル (Material)

Raw Image の描画処理に使用される「マテリアル(Material)」を指定するためのプロパティです。
マテリアルとは、見た目をカスタマイズするための描画ルールです。

  • 主な用途
用途マテリアルの効果
白黒・セピア表示にしたいグレースケール用シェーダーを持つマテリアルを指定
アルファマスクで切り抜きたいアルファテスト/マスク処理付きのシェーダーを使用
ブラー/発光などの視覚効果を付けたいカスタムポストエフェクトシェーダーで演出
UIでノイズや揺れなどを表現したいシェーダーアニメーションを持つマテリアルを適用
複数テクスチャを合成したいmainTex と maskTex などを合成するカスタムマテリアル
  • Unity標準のマテリアル

Raw Image にマテリアルを指定しない場合、デフォルトで UI/Default シェーダーが使用されます。
これにより、以下のような標準機能が提供されます。

  • 色(color)との乗算描画
  • テクスチャの uvRect による部分表示
  • マスク (Mask, RectMask2D) 対応

レイキャストターゲット (Raycast Target)

マウスやタッチなどの入力イベントの「当たり判定」として反応するかどうかを決めるフラグです。

以下の入力イベントに対して反応するためには、Raycast Target = true にする必要があります。

  • マウスクリック
  • タッチ操作
  • ドラッグ
  • スクロールホイール などの UIイベント

レイキャストパディング (Raycast Padding)

「レイキャストの当たり判定エリア」を拡張または縮小するための設定です。
四方向を数値(ピクセル)で設定します。
左(Left)、上(Top)、右(Right)、下(Bottom)
正の値で判定エリアが広がり、負の値で狭くなります。

  • 主な用途
  • UIが小さくて押しにくい/タップしにくいときに、判定エリアを広げる
  • 見た目と実際のクリック可能領域をズラしたい/制御したいとき
  • 複数UIが近接していて誤タップを防止したいとき
  • 設定例
設定値レイキャストエリアの変化
(10, 10, 10, 10)四方に10px広げる(押しやすくなる)
(-5, -5, -5, -5)四方に5px狭める(厳密な判定にする)
(0, 20, 0, 0)上方向だけ20px拡張(縦長UIなどに対応)

マスク可能 (Maskable)

Mask や RectMask2D の影響を受けるかどうかを制御するフラグです。
Mask や RectMask2D は、UI の一部を 指定領域内だけ表示し、それ以外を隠す仕組みです。

  • 主な用途
シーン例マスク可能の役割
スクロールビューの中の画像RawImage.maskable = true → 領域外の画像は隠れる
マスクでくり抜いた円形UIMask コンポーネント + RawImage.maskable = true
UI画像をマスク無視で常に表示したいRawImage.maskable = false にする → マスク領域を無視して描画

UV 矩形 (UV Rect)

テクスチャ画像のどの範囲を UI 上に表示するかを制御するための矩形(Rect)を指定するプロパティです。
これは 0.0〜1.0 の UV座標(テクスチャ空間の座標系) を使って範囲を定義します。

UV座標は、左下が(0, 0)、右上が(1, 1)です。
テクスチャ全体を表示する場合は、(X:0, Y:0, W:1, H:1)となります。

  • フィールド
フィールド名意味単位
X横方向の表示開始位置0〜1
Y縦方向の表示開始位置0〜1
W (width)横方向の表示サイズ0〜1(1以上も可)
H (height)縦方向の表示サイズ0〜1(1以上も可)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次