UE5 PCG學習筆記

https://www.bilibili.com/video/BV1onUdY2Ei3/?spm_id_from=333.337.search-card.all.click&vd_source=707ec8983cc32e6e065d5496a7f79ee6

一、安裝PCG

  • 插件里選擇以下進行安裝
    在這里插入圖片描述
  • 移動目錄后,可以使用 Update Redirector References,更新下(否則會刪除不干凈或存在殘留文件)
    在這里插入圖片描述
  • 調出Filters刷選器,更方便操作
    在這里插入圖片描述

二、創建PCG圖表

在這里插入圖片描述

  • 將PCG拖入場景中,通過Scale設置PCG的大小

三、地形布置隨機點

  • 通過PCG方塊接觸到地形,使用Get Landscape Data節點來獲取地形數據
    在這里插入圖片描述

  • 拉線出來,選擇Surface Sampler,表面采樣器。并選擇此節點,按D(Debug),看到采樣情況
    在這里插入圖片描述

  • 按A,查看點位信息
    在這里插入圖片描述

  • 密度為1是白色,密度為0是黑色

  • 修改點數、松散度和隨機性;unbounded設置是否為全局,通過Point Extents設置點的大小
    在這里插入圖片描述


四、設置樹木

  • 可以通過選擇 Show all projects,把不支持5.4的內容添加到5.4中間
  • 選擇樹木模型,右鍵,勾選Nanite
    在這里插入圖片描述
  • 在 Surface Sampler拖出 Static Mesh Spawner 靜態網格生成器
  • 設置Mesh Selector的模型
    在這里插入圖片描述
  • 生成樹木
    在這里插入圖片描述
  • 增加數組,加入3個模型,并可以設置weight,權重
    在這里插入圖片描述
  • 查看效果
    在這里插入圖片描述

五、設置點的旋轉與縮放

  • 先把靜態網格節點按E (enable) 取消使用
  • 從surface sampler節點,拉出Transform points 進行調試 D
    在這里插入圖片描述
  • 設置transform points的隨機屬性
    在這里插入圖片描述
  • 樹木看起來更加自然
    在這里插入圖片描述
  • 當地形有坡度時,勾選 Absolute Rotation,防止樹木長歪
    在這里插入圖片描述在這里插入圖片描述

在這里插入圖片描述


六、巖石

  • 移除重疊節點
    在這里插入圖片描述
  • 從大到小,保留大的節點
    在這里插入圖片描述
  • 邊界修改器,改動節點的邊界大小;調整邊界是為了模型與隨機點的方塊大小基本匹配
    在這里插入圖片描述在這里插入圖片描述

在這里插入圖片描述


七、巖石與樹不要重疊

  • 使用Difference節點,去除樹和巖石的重疊,保留樹
    在這里插入圖片描述

  • Density Function一定要設置成,Binary
    在這里插入圖片描述

  • 調整下樹的點位邊界為0.6,在Bounds Modifler中
    在這里插入圖片描述
    在這里插入圖片描述

  • 連接節點,完成去除
    在這里插入圖片描述
    在這里插入圖片描述

  • 先去除與樹重的點,再去除巖石重疊的點,效果更好


八、植被

  • 加入Sufrace Sampler,并設置默認大小
    在這里插入圖片描述
    在這里插入圖片描述
  • 加入Static Mesh Spawner,設置植被,并去掉碰撞
    在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

  • 改變點的大小 Transform Points
    在這里插入圖片描述
  • 用Difference把巖石重疊部分排除
    在這里插入圖片描述
    在這里插入圖片描述

九、使用參數,設置植被的縮放

  • 點擊Surface Sampler節點,并點擊Graph Settings
    在這里插入圖片描述
  • 添加變量Parameters
    在這里插入圖片描述
  • 與植被的點做乘法操作
    在這里插入圖片描述
    在這里插入圖片描述
  • scale X 一個數,賦值給scale
  • 打開場景的PCG_Land_Base組件,并選擇其中的PCGComponent
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
  • 來設置縮放的大小

十、使用參數,設置對象的網格模型

  • 通過Graph Settings,設置參數為網格數組
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述

十一、使用參數,更改網格模型的權重

  • 創建一個結構體
    在這里插入圖片描述
  • 在Parameters里,建立一個結構體的數組
    在這里插入圖片描述
  • 建立Match And Set Attributes,來輸出模型
    在這里插入圖片描述
    匹配并設置屬性是weight
    在這里插入圖片描述
    靜態網格生成器里屬性名稱是Mesh
    在這里插入圖片描述

這樣做后,哪怕把模型的碰撞關掉,人物跑動起來,有不自然現象。


十二、表面采樣器 Suface Sampler,點的數量用參數代替

  • 設疑個新的參數,FoliagePoints
    在這里插入圖片描述
  • 打開表面采用器,使用參數
    在這里插入圖片描述

其他參數都可以做出參數


十三、保存為實例

  • 保存實例后,程序視圖就不見了
    在這里插入圖片描述
  • 并過去切換Graph到實例,來實現這個功能
    在這里插入圖片描述

十四、創建樣條線

  • 新建一個actor藍圖,命名為BP_PathSpline
  • Add一個Spline
    在這里插入圖片描述
  • 設置tag名為PathSpline
    在這里插入圖片描述
  • 把藍圖拖入場景,并拉長樣條線,經過PCG場景
    在這里插入圖片描述

十五、在PCG中獲取樣條線

  • Get Spline Data節點
    在這里插入圖片描述
  • 通過Tag確定樣條線
    在這里插入圖片描述

十六、建立一條路

  • 藍圖節點
    在這里插入圖片描述

  • 樣條線在一個端點上,按住alt鍵,可以拖動產生一個新的端點;

  • Spline Sampler的Mode使用Distance
    在這里插入圖片描述

  • 通過 邊界修改器 bounds modifier,修改樣條線的大小
    在這里插入圖片描述

  • 通過 Projection 投影節點,把樣條線與地形貼合
    在這里插入圖片描述

  • 此時已經有了貼合地形的一段路,把輸出都連接到上面的Difference節點中,把其他模型都排除掉

  • 最終效果
    在這里插入圖片描述


十七、建立一另一條樣條線

  • 拷貝出來2條樣條線
    在這里插入圖片描述

  • 在 Get Spline Data里,設置
    在這里插入圖片描述

  • 這樣2條樣條線都正常工作了
    在這里插入圖片描述

  • 樣條線與其他點之間的間距

  • 調整Spline Sampler 樣條采樣器里的steepness值,1間隙最小
    在這里插入圖片描述


十七、制作一個PCG物體

ctrl+e:可以快捷打開圖標

  • 新建一個PCG Graph
  • 制作PCG節點如下:
    在這里插入圖片描述
  • Get Actor Data (獲取Actor數據)設置為,過濾器為自身、模式為單點
    在這里插入圖片描述
  • Static Mesh Spawner(靜態網格生成器),拖入一個模型,比如一顆枯樹干
  • Bounds Modifier (邊界修改器)設置邊界大小;可開啟D,調式模式,把白色矩形剛好蓋住模型
  • Transform(變換點)設置旋轉0-360,縮放1-3
    在這里插入圖片描述

這樣,當拖動PCG藍圖的時候,樹干就會隨機變化(0-360度與1-3倍縮放間)
在這里插入圖片描述

  • 把絕對縮放勾上,物體縮放大小不會受PCG體積影響

十八、在樹干上長蘑菇

在這里插入圖片描述

  • 網格體采樣器
    在這里插入圖片描述
    設置樹干為采樣網格,此時采樣的點會在原點
    在這里插入圖片描述
  • 復制點
    復制之前樹干作為目標,把采樣的點的位置同步在樹干上
    在這里插入圖片描述
  • 排除不朝上的點
    在這里插入圖片描述
    法線轉成密度,z軸朝上為1,朝下為0
    用密度過濾器,篩選密度范圍
    在這里插入圖片描述
    *選擇點,并變化點
    按比率選擇點,減少點的密度,并變化點,讓點更隨機,并按z軸偏移,讓蘑菇種在樹里
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
  • 靜態網格生成器,讓多種蘑菇隨機排布,并設置無碰撞

在這里插入圖片描述


十九、把樹干放入地圖中

在這里插入圖片描述

  • 表面采樣器,在表面采樣,可以設置松動,設置樹干多少
    在這里插入圖片描述
    在這里插入圖片描述
  • 之前做的PCG_Obj因為沒有設置Input與Out,需要來設置這個參數
    在這里插入圖片描述
    新建一個PCG_Obj_Input藍圖
    輸入是為了在大地圖里,連接采樣器使用
    輸出是為了模型一些排斥等使用,所以輸出只要樹干部分就可以,蘑菇不用理會了

二十、樹干模型重疊問題解決

  • 在PCG_Obj_Input藍圖,加入Difference節點,拖入模型,會排除重疊的樹干
    在這里插入圖片描述
    排斥的邏輯,路(排斥)所有4種;樹(排斥)巖石;樹干(排斥)樹、巖石

此課程非常不錯,需要記錄的先到此,有興趣的朋友可以繼續學習,祝福學習愉快

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/82423.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/82423.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/82423.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

工業現場ModbusTCP轉EtherNETIP網關引領生物現場領新浪潮

生物質發生器是一種能夠產生、培養生物的設備。客戶現場需要將生物發生器連接到羅克韋爾系統,但是二者協議無法直接通訊,需要通過ModbusTCP轉Ethernet/IP網關將兩者進行通訊連接,生物質發生器以其獨特的工作原理和優勢,使得生物的…

寶藍德中間件部署war包時,配置的絕對路徑讀取錯誤。

文章目錄 問題場景解決辦法寶藍德是什么??一、基礎環境與依賴配置二、自動化部署工具鏈三、高可用性與集群配置四、安全與合規性措施五、產品線差異化部署六、典型部署流程示例七、運維與優化 原因1. 明確“當前工作目錄”與“絕對路徑”的關系2. 問題根…

Java、Python、NodeJS等開發環境安裝及配置鏡像加速到國內源

文章目錄 Java1.Windows1.1 scoop方式安裝JDK 2.Linux2.1 apt方式安裝JDK2.1.1 切換JDK2.1.2 驗證版本2.1.3 原理 Python1.Windows1.1 scoop方式安裝Python1.2 uv方式安裝Python(推薦) 2.Linux2.1 apt方式安裝Python2.1.1 配置版本切換2.1.2 切換Python2…

Linux系統管理與編程16:PXE自動化安裝部署centos7.9操作系統

蘭生幽谷,不為莫服而不芳; 君子行義,不為莫知而止休。 0.準備 1)防火墻和SELinux systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config (很不好的…

MCP(Model Context Protocol)是專為LLM(大語言模型)應用設計的標準化協議

核心定義 MCP(Model Context Protocol)是專為LLM(大語言模型)應用設計的標準化協議,通過安全可控的方式向AI應用暴露數據和功能。主要提供以下能力: 標準化的上下文管理安全的功能調用接口跨平臺的數據交…

Fiori學習專題三十四:Responsiveness

在這一步中,我們提高了應用程序的響應能力。SAPUI5應用程序可以在手機、平板電腦和臺式機設備上運行,我們可以配置應用程序以充分利用每種場景的屏幕狀態。幸運的是,像sap.m.Table這樣的SAPUI5控件已經提供了許多我們可以使用的功能。 1.修改…

解決 TimeoutError: [WinError 10060] 在 FramePack項目中連接 Hugging Face 超時的問題

#工作記錄 以下是針對 TimeoutError: [WinError 10060] 的完整排查方案,適用于 FramePack項目中。 (一般該錯誤的發生原因請重點排查Hugging Face模型倉庫受限需要登錄的情形) FramePack項目參考資料 FramePack部署(從PyCharm解…

obj = null; 賦值null之前沒有其他引用指向obj對象,那么,當obj=null時,會被垃圾回收機制立即回收嗎?

不會立即回收。 具體原因是: 賦值 obj null; 后,對象變成“不可達”,符合垃圾回收條件,但垃圾回收器并不會立刻回收它。垃圾回收是CLR自動控制的非確定性過程,什么時候執行回收取決于系統內存壓力、GC策略、分代情況…

【Ubuntu 安裝Docker CE-Jenkins】

安裝Docker CE(Ubuntu) Install | Docker Docs官網 使用apt倉庫安裝 DNS配置(可選) #手動替換 sudo vim /etc/systemd/resolved.conf #典型配置如下 [Resolve] DNS8.8.8.8 DNS114.114.114.114 FallbackDNS1.1.1.1 # 備用 DNS#sed替換 sudo sed -i /^#DNS/ {s/#DNS/DNS8.8.8…

5、開放式PLC梯形圖編程組件 - /自動化與控制組件/open-plc-programming

76個工業組件庫示例匯總 開放式PLC編程環境 這是一個開放式PLC編程環境的自定義組件,提供了一個面向智能倉儲堆垛機控制的開放式PLC編程環境。該組件采用蘋果科技風格設計,支持多廠商PLC硬件,具有直觀的界面和豐富的功能。 功能特點 多語…

內網和外網怎么互通?外網訪問內網的幾種簡單方式

在企業或家庭網絡中,經常會遇到不同內網環境下網絡互通問題。例如,當公司本地局域網內有個辦公OA網站,在辦公室內電腦上網可以登錄使用,但在家帶寬下就無法直接通信訪問到。這就需要我們采取一些實用的內外網互通技巧來解決這個問…

使用大語言模型進行機器人規劃(Robot planning with LLMs)

李升偉 編譯 長期規劃在機器人學領域可以從經典控制方法與大型語言模型在現實世界知識能力的結合中獲益。 在20世紀80年代,機器人學和人工智能(AI)領域的專家提出了莫雷奇悖論,觀察到人類看似簡單的涉及移動和感知的任務&#x…

【計算機視覺】OpenCV實戰項目: opencv-text-deskew:實時文本圖像校正

opencv-text-deskew:基于OpenCV的實時文本圖像校正 一、項目概述與技術背景1.1 核心功能與創新點1.2 技術指標對比1.3 技術演進路線 二、環境配置與算法原理2.1 硬件要求2.2 軟件部署2.3 核心算法流程 三、核心算法解析3.1 文本區域定位3.2 角度檢測優化3.3 仿射變換…

可視化圖解算法33:判斷是不是平衡二叉樹

1. 題目 描述 輸入一棵節點數為 n 的二叉樹,判斷該二叉樹是否是平衡二叉樹。 在這里,我們只需要考慮其平衡性,不需要考慮其是不是排序二叉樹 平衡二叉樹(Balanced Binary Tree),具有以下性質&#xff1…

【Linux網絡】應用層自定義協議與序列化

應用層自定義協議與序列化 應用層 我們程序員寫的一個個解決我們實際問題,滿足我們日常需求的網絡程序,都是在應用層. 協議是一種"約定".Socket的接口,在讀寫數據時,都是按"字符串"的方式來發送接收的.如果我們要傳輸一些"結構化的數據"怎么辦…

MySQL + Elasticsearch:為什么要使用ES,使用場景與架構設計詳解

MySQL Elasticsearch:為什么要使用ES,使用場景與架構設計詳解 前言一、MySQL Elasticsearch的背景與需求1.1 為什么要使用Elasticsearch(ES)?1.2 為什么MySQL在某些場景下不足以滿足需求?1.3 MySQL Elas…

PPL困惑度的計算

1. 公式 PPL(Perplexity)困惑度 是自然語言處理(NLP)中常用的評估語言模型(Language Model)性能的指標。PPL 用于衡量語言模型對語言序列的預測能力,數值越小,說明模型的預測能力越…

MegaCLI Raid管理工具

整理在CentOS 7.9和Ubuntu 24.04上,MegaCLI 工具的安裝與常用命令。 1. 參考 下載和安裝MegaCLI工具 MegaCli RAID管理工具 Megacli 批量磁盤巡檢 ubuntu24.04 No such file libncursesw.so.5 dell服務器硬盤的狀態變成外來(foreign)命…

HTML9:頁面結構分析

頁面結構分析 元素名描述header標題頭部區域的內容(用于頁面或頁面中的一塊區域)footer標記腳部區域的內容(用于整個頁面或頁面的一塊區域)sectionWeb頁面的一塊獨立區域article獨立的文章內容aside相關的內容或應用(…

分布式處理架構

分布式處理架構是一種將計算任務分散到多臺計算機或服務器上協同完成的系統設計方法。這種架構通過將工作負載分配到多個節點(可以是物理機、虛擬機或容器)來提高性能、可靠性和可擴展性。下面我將從多個角度詳細解釋這一概念: 分布式架構的…