###### tags: `AirSim` # 進度紀錄 (Unreal Engine 地圖) - 12/13 ![](https://i.imgur.com/zW5i0zk.png) - 明天一定 [water](https://www.youtube.com/watch?v=86pXo9-9axU) 人偶 - 有空一定 [Grass node](https://www.youtube.com/watch?v=G6pACRjxLzY) 參考 - [UE 4 Documentation](https://docs.unrealengine.com/4.27/en-US) ## Note ### Material - 透過使用 Material Instance 可以不用進到 Material 就可以更改參數 - 快捷鍵 - ==1== 加上 ==LMB== 建立 constant node - ==L== + ==LMB== 建立 Lerp node 在 A 與 B 之間以 Alpha 為比例做插值 ![](https://i.imgur.com/6Fukp4T.png) - ==3== + ==LMB== 建立 constant3Vector node 可以使用純色 ## Foliage ### With Grass node 在原有的 Landscape Material 中 - 建立 Grass node 及 LandscapeLayerSample node 並連接 LandscapeLayerSample node 中的參數名稱必須與在 Blend node 中的 texture 名稱相同 - 建立 Grass Type 透過 Add-New 選單,選擇 Foilage/Landscape Grass Type #### 參考 - [UE4: Complete Guide to Spawning Foliage on Landscapes Using Grass Node Output](https://www.youtube.com/watch?v=G6pACRjxLzY) ### Foliage Tool 進入 Foliage Tool 面板,透過 ==Add Foliage Type== 選項選擇要使用的 Foliage Type - 建立 Foliage Type 有兩種可以選擇,Actor Foliage 以及 Statice Mesh Foliage 沒有特別需求的話可以直接使用 Statice Mesh Foliage - 跟 Landscape Tool 一樣有許多工具可以使用 #### 參考 - UE Documentation - https://docs.unrealengine.com/4.27/en-US/BuildingWorlds/Foliage/ ## Texture ### Poliigon 材質 1. 匯入 Texture - 在 UE Editor 中使用 Poliigon 的材質包時不需要 ==displacement map== - 打開 ==gloss map==,取消勾選 ==sRGB== 選項 ![](https://i.imgur.com/xAuMH4E.png) - 打開 ==normal map==,勾選 ==Flip Green channel== ![](https://i.imgur.com/gtW4d98.png) 2. 建立 Material - 建立 Texture Sample 節點 ![](https://i.imgur.com/AzXTtmH.png) 在 Details 面板中,將 ==Texture== 改成匯入的 map - oneminus 節點 ![](https://i.imgur.com/Y0JfUIg.png) 透過這個節點將 ==reflect== 及 ==gloss== map 連到 ==specular== 以及 ==Roughness== 將 ==color== 及 ==normal== map 直接連到 ==Base color== 及 ==normal== ![](https://i.imgur.com/kQyREei.png) 3. 編輯 Material - 建立 TextureCoordinate 、 Multiply 以及 Scalar parameter 節點 ![](https://i.imgur.com/dCNtkO0.png) - 將 TextureCoordinate 及 ScalarParameter 節點連上 Multiply 節點,並將 Multiply 節點連到全部的 TextureSample 節點上,並到 ScalarParameter 的 Details 面板中調整 ==Default Value== 為 1 ![](https://i.imgur.com/QxRh4qd.png) - 使用 ScalarParameter 及 Multiply 節點的組合可以在 Material Editor 外來調整該參數 ![](https://i.imgur.com/PMRBzmD.png) ![](https://i.imgur.com/86Dolrm.jpg) ### 使用 DISP map 1. 透過 Multiply node 將 displacement map 及 scalarparameter node 連接,並接到 ==World Displacement== 接點 在 Details 面板中的 ==Tessellation== 選單中 ![](https://i.imgur.com/B9dxtC5.png) - 選項 ==Tessellation Mode== 中選擇 ==flat== - 調整 ==Max Displacement== 的值 2. 同樣使用 Multiply node 將 VertexNormalWS node 插入 3. 再使用一個 Multiply node 將 Object Radius node 接上 ![](https://i.imgur.com/JgApLBN.png) 4. 建立一個 ScalarParameter node 來控制 ==Tessellation Multiplier== ![](https://i.imgur.com/0nv4Cfq.png) - 效果 ![](https://i.imgur.com/vq1Uw9U.jpg) #### 參考 - Poliigon 使用 - https://www.youtube.com/watch?v=JicpNGYA4J0&t=63s - 在 UE4 中使用 - https://www.youtube.com/watch?v=o0648Sfom8M - 在 UE4 中使用 DISP map - https://www.youtube.com/watch?v=1GkS9-94k80 ### Tiling #### Material - 將會用到的 Texture 拉近 Material Editor 中,產生 TextureSample,並透過 LandscapeLayerBlend node 將 TextureSample 連接到 BaseColor ![](https://i.imgur.com/cfWhB7N.png) - 將前面用到的 Texture 的 normal map 拉進 Editor 中,並用 LandscapeLayerCoords node 連接 normal 以及 color maps - 同樣使用 LayerBlend node 將 TextureSample 連接到材料 node 的 Normal 選項 ![](https://i.imgur.com/lRDYgJQ.png) 可以使用 constant node 來調整材料的其他性質 ![](https://i.imgur.com/36qBQv6.png) #### Assign Material - 回到地圖中選取 Landscape, 在 Details 面板的 Landscape 選單中的 Landscape Materail 選取剛建立好的 Materail - 產生 Layer info 進入 Landscape 模式,在 Paint 選單中的 Layers 中會有使用中的 Texture,選取 Texture 中的 ==+== 符號,選擇 ==Weight Blended Layer== ![](https://i.imgur.com/VjEv9px.png) #### 參考 - [UE4: Step-by-Step to Your First Landscape Material for Beginners (Day 2/3: 3-Day Tutorial Series)](https://www.youtube.com/watch?v=cWOlIvq0Etg&t=2s) ## Auto Landscape - Node - WorldAligneBlend node 使用 constant node 來控制 ==Sharpness== 以及 ==Bias== 兩個參數,其中 ==Bias== 必須小於0 ![](https://i.imgur.com/y88SBKn.png) - 將 constant node 更改成 parameter,這樣可以在 Material Instance 中更改參數 - 將要用的 texture 的 Color 以及 Normal map 拉進 Editor 中並連接到 Lerp node 的 A 與 B inputs - Lerp node Alpha input 使用 WorldAlignedBlend node 的 ==Vertex Normals== output - 如果要使用 normal map 的話,會需要將 Color map 的 Lerp node Alpha input 換成 Vertex Normals - 同樣可以將 TextureSample node 轉換成 parameter,這樣可以在 Material Instance 中更改要用的 Texture ![](https://i.imgur.com/FitOoBu.png) ### 參考 - [UE4: How to Create Your First Procedural Auto-Landscape Material Tutorial](https://www.youtube.com/watch?v=76M8Q2jXscM) - [UE4: 9 Things Every Procedural Auto-Landscape Material Must Have Tutorial](https://www.youtube.com/watch?v=b4HTCo2fRAE) ## Water 1. 增加參數來控制 large wave - 在 TexCoord node 中有 u 及 v 的速度,如果要分開控制的話可以透過 append node ![](https://i.imgur.com/ppGjS4b.png) 記得要調整 default value - 同上建立參數來控制 speed ![](https://i.imgur.com/XWuhV3C.png) 2. Sine Control ... - noise speed node 是用來調整前後的 wave 運動 - 控制 Large wave 的運動 ![](https://i.imgur.com/IBgS7EF.png) - 控制 Absolute World Position node 這會讓 large wave 在遠處的表現得更好 ![](https://i.imgur.com/Z2VHXkW.png) 3. Small Wave Control 與前面相同 ![](https://i.imgur.com/zBa68J9.png) 4. Transition ![](https://i.imgur.com/GR4MZjq.png) - 前面完成後你應該會看到這些參數 ![](https://i.imgur.com/3NHNMdl.png) 透過調整這些參數可以將水面的波型調整到適當的外型 ![](https://i.imgur.com/Foa20b8.png) ### 參考 - [UE4: How Make Water Material in “Starter Content” Work Without Stretching or Distortions - Tutorial](https://www.youtube.com/watch?v=86pXo9-9axU) # To do (細節優化_寒假再說) ![](https://i.imgur.com/4wgosDA.png)