接上回書~~我們開啟一個新場景來創建目標材質的測試環境
創建新的測試場景
由于我把舊的刪了新的也叫TempMaterial好了
最終材質連線的全貌,下面開始具體分析各個部分是如何思考的
頂點動畫部分
碰撞檢測坐標與當前參與運算的頂點坐標進行距離運算,同時減去偏移值完成波形偏移運動
基礎的形狀處理
提出指定高度的波形并優化
接下來是顏色的過度
顏色過度部分的解析
創建測試載體
創建一個staticMeshActor類型的藍圖作為目標
這個mesh是引擎自帶的,勾選顯示引擎自帶內容即可搜到了
編寫之前還需要對模型的碰撞就行一定的修改,我們需要更細致的碰撞效果先把舊的刪了
在菜單欄找到ConvexDecomposi,我們可以用它生成數個小型碰撞體拼接成當前模型的近似形狀
由于純測試,精度和數量都給滿
可以更改視圖模式【playerCollision】來觀察目前的碰撞形狀,同時我們看到總共用了12個碰撞做的組合【大部分都在地盤的形狀模擬上,球型部分其實就一個網格】
由于是大致模擬無法填滿球型,所以姑且點開collision模式,刪掉自動創建的上半部分碰撞
換個球形碰撞體
縮放并移動到合適的位置后player collision模式下檢查一下
碰撞模型處理完再來處理一下材質對象
創建一個材質實例作為實際使用對象
對材質實例中的數值做一定調整,每個參數作用如名字所示,so
打開該藍圖類,進行編輯
BeginPlay的時候將剛才創建的動畫材質實例付給主要材質通道,同時獲得該材質的引用,通過Cut Color 事件來處理藍圖到材質的參數賦值
我這里是定義的5秒完成由0~1的變化
將剛才做好的測試物體放在場景里
接下來是做一個射線檢測功能來獲取碰撞點坐標
在場景藍圖創建射線檢測腳本
用tick每幀繪制出當前射線的觸發點方便我們測試觀察
在下面做個按鍵觸發的射線檢測功能,同時將檢測結果發送給測試物體【這里沒做判斷打到地面也是會觸發的,不必在意】
最后測試與開篇效果一致無誤~