接上回書~~我們開啟一個(gè)新場景來創(chuàng)建目標(biāo)材質(zhì)的測試環(huán)境

創(chuàng)建新的測試場景

由于我把舊的刪了新的也叫TempMaterial好了

最終材質(zhì)連線的全貌,下面開始具體分析各個(gè)部分是如何思考的
頂點(diǎn)動畫部分

碰撞檢測坐標(biāo)與當(dāng)前參與運(yùn)算的頂點(diǎn)坐標(biāo)進(jìn)行距離運(yùn)算,同時(shí)減去偏移值完成波形偏移運(yùn)動

基礎(chǔ)的形狀處理

提出指定高度的波形并優(yōu)化
接下來是顏色的過度

顏色過度部分的解析
創(chuàng)建測試載體

創(chuàng)建一個(gè)staticMeshActor類型的藍(lán)圖作為目標(biāo)

這個(gè)mesh是引擎自帶的,勾選顯示引擎自帶內(nèi)容即可搜到了

編寫之前還需要對模型的碰撞就行一定的修改,我們需要更細(xì)致的碰撞效果先把舊的刪了

在菜單欄找到ConvexDecomposi,我們可以用它生成數(shù)個(gè)小型碰撞體拼接成當(dāng)前模型的近似形狀

由于純測試,精度和數(shù)量都給滿

可以更改視圖模式【playerCollision】來觀察目前的碰撞形狀,同時(shí)我們看到總共用了12個(gè)碰撞做的組合【大部分都在地盤的形狀模擬上,球型部分其實(shí)就一個(gè)網(wǎng)格】

由于是大致模擬無法填滿球型,所以姑且點(diǎn)開collision模式,刪掉自動創(chuàng)建的上半部分碰撞

換個(gè)球形碰撞體

縮放并移動到合適的位置后player collision模式下檢查一下
碰撞模型處理完再來處理一下材質(zhì)對象

創(chuàng)建一個(gè)材質(zhì)實(shí)例作為實(shí)際使用對象

對材質(zhì)實(shí)例中的數(shù)值做一定調(diào)整,每個(gè)參數(shù)作用如名字所示,so
打開該藍(lán)圖類,進(jìn)行編輯

BeginPlay的時(shí)候?qū)偛艅?chuàng)建的動畫材質(zhì)實(shí)例付給主要材質(zhì)通道,同時(shí)獲得該材質(zhì)的引用,通過Cut Color 事件來處理藍(lán)圖到材質(zhì)的參數(shù)賦值

我這里是定義的5秒完成由0~1的變化

將剛才做好的測試物體放在場景里
接下來是做一個(gè)射線檢測功能來獲取碰撞點(diǎn)坐標(biāo)

在場景藍(lán)圖創(chuàng)建射線檢測腳本

用tick每幀繪制出當(dāng)前射線的觸發(fā)點(diǎn)方便我們測試觀察

在下面做個(gè)按鍵觸發(fā)的射線檢測功能,同時(shí)將檢測結(jié)果發(fā)送給測試物體【這里沒做判斷打到地面也是會觸發(fā)的,不必在意】
最后測試與開篇效果一致無誤~