Skip to content

strangechu's Blog

  • About me
  • GitHub
  • LinkedIn

strangechu's Blog

Work & Game

[UE5][BP] 在UI上顯示特定模型

3 月 6, 2022 by strangechu

本文簡單說明使用BP在UI上顯示特定模型的製作方法。以下為最終結果圖。

此次示範使用的是UE5 Preview版。然而在UE4也能做到一樣的結果,請放心使用。本文的最終成果可以在GitHub上取得,有需要的歡迎使用。

要在UI上顯示模型的步驟,簡單說明如下:
1.使用SceneCapture2D將場景上的模型擷取至RenderTarget
2.將RenderTarget結果存到Texture
3.將Texture顯示到UI上

要完成本文的功能不需要寫任何的程式,用藍圖即可全部完成。以下從創建專案開始完整說明。

製作流程

首先開啟一個全新的Blank專案,新增一個BlueprintActor,命名為BP_UICaptureActor


在BP_UICaptureActor中新增StaticMesh和SceneCaptureComponent2D元件。


稍微調整一下位置,以及對StaticMesh任意指定一個Mesh。


在SceneCaptureComponent2D中找到TextureTarget屬性,選擇新增RenderTarget,命名為RT_UICapture。



創建一個Texture命名為T_UICapture。



點開T_UICapture,做以下設定:

將Blend Mode設定為Translucent讓我們可以對擷取的圖片做去背處理。
接著在Material Graph內點右鍵新增TextureSample

如下圖連接之後,設定TextureSample的Texture為RT_UICapture。
1-x是反轉Alpha的意思。

以上擷取並顯示的流程大致完成,我們先來試試看效果。先隨便建立一個簡單的UMG並放入Image顯示T_UICapture。

接著進入Level Blureprint在畫面上顯示UI。

把BP_UICaptureActor拉到場景後點下Play。

以下是顯示的結果。

ㄜ,是顯示出來了沒錯,可是我只想要拍到方塊本身,後面需要透明的。因此接下來需要讓它只擷取特定模型。
回到BP_UICaptureActor,將SceneCaptureComponent2D的PrimitiveRenderMode設定為UseShowOnlyList。這個設定會讓它只擷取特定Actor。

進入Event Graph,在BeginPlay中將自己設定為顯示對象。

再度回到遊戲按下Play。

這次成功去背了!正是我們要的!
只是顯示個方塊看起來有點乾,於是我們寫個簡單的選單,接著根據選取選項把模型做切換,然後再加個酷酷的旋轉,以下就是最後完成結果。

當然,要把它整合進我們遊戲的物品系統等等又是另外一個課題了,這部分請根據各自專案需求自行加油。另外這次為了解說方便,我們是直接把擷取對象放在場景,實際製作還是用動態生成的方式比較正確。

一些問題

看起來我們在UI上顯示模型的目的是達成了,但是實際的遊戲的專案中還會碰到不少問題,以下用列出可能會碰到的幾個問題,以及參考的解決方法。

Q:UI上的模型會被環境光影響!
A:由於我們擷取的模型是實際存在於場景的,因此是場景的一部分,當然也會受到打光等等的影響。如果只是打光的話,可以藉由調整Lighting Channel的方式來讓模型不會受到光照影響。如果是Post Process之類的影響,就要根據實裝方式另外想辦法了。

Q:我的遊戲開啟UI時遊戲是暫停的。因此模型的貼圖本來會動,現在不會動了!
A:遊戲暫停時很多Tick都會失效。包含貼圖的動畫、模型的物理等等。如果是在Component的Tick中處理的話,使用TickEvenWhenPaused此選項可以解決問題。至於貼圖的部分,在Time Input會有一個Ignor Pause的選項,勾選後也能解決問題。其他部分就要根據實裝方式了。

Post navigation

Previous Post:

個人遊戲月報 2022年1月

Next Post:

[UE5][BP] 使用Geometry Script Plugin產生可動態調整的樓梯

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

近期文章

  • 從《33遠征隊》看日本遊戲業的未來——JRPG的蛻變與停滯
  • 機戰傭兵6 玩後感
  • 沉沒意志 玩後感
  • Fallout影集觀後感
  • [CEDEC2024]薩爾達的餘料建造開發減法

近期留言

  • 「strangechu」於〈個人遊戲月報 2020年8月〉發佈留言
  • 「扇」於〈個人遊戲月報 2020年8月〉發佈留言

彙整

  • 2025 年 5 月
  • 2025 年 1 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 1 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 10 月
  • 2023 年 8 月
  • 2023 年 6 月
  • 2023 年 5 月
  • 2023 年 4 月
  • 2023 年 3 月
  • 2023 年 1 月
  • 2022 年 12 月
  • 2022 年 10 月
  • 2022 年 9 月
  • 2022 年 5 月
  • 2022 年 3 月
  • 2022 年 2 月
  • 2022 年 1 月
  • 2021 年 12 月
  • 2021 年 10 月
  • 2021 年 3 月
  • 2020 年 12 月
  • 2020 年 11 月
  • 2020 年 10 月
  • 2020 年 8 月
  • 2020 年 7 月
  • 2020 年 3 月
  • 2020 年 2 月
  • 2019 年 7 月
  • 2019 年 4 月

分類

  • Career
  • Game
  • Game Review
  • Monthly Report
  • UE4
  • UE5
  • Uncategorized
  • 技術
  • 演講心得

其他操作

  • 登入
  • 訂閱網站內容 RSS 資訊提供
  • 訂閱網站留言 RSS 資訊提供
  • WordPress 台灣繁體中文
© 2025 strangechu's Blog | WordPress Theme by Superbthemes