[請益] 人物身上沾的血跡是怎麼做的?

看板GameDesign (遊戲設計)作者 (軟尾拋拋翔(′・ω・`))時間6年前 (2019/01/06 10:38), 6年前編輯推噓5(5021)
留言26則, 7人參與, 6年前最新討論串1/1
有些遊戲為求真實 除了打擊後人物會噴濺血液外 身上也會沾上血跡 打頭 頭會沾血 打胸 胸會沾血 這種技術 是怎麼做出來的? ----- Sent from JPTT on my Sony F8332. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.138.121 ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1546742281.A.F56.html

01/06 11:38, 6年前 , 1F
多疊一層只有血漬的material上去吧 我猜
01/06 11:38, 1F

01/06 13:08, 6年前 , 2F
動態改變材質
01/06 13:08, 2F
這種技術有什麼術語嗎 ※ 編輯: teeheehee (180.204.163.135), 01/06/2019 13:36:08

01/06 14:31, 6年前 , 3F
通常應該是用一個 decal texture 加上去吧
01/06 14:31, 3F

01/06 16:20, 6年前 , 4F
做法很多種. 看是動態還是靜態指定部位
01/06 16:20, 4F
動態的 ※ 編輯: teeheehee (1.162.138.121), 01/06/2019 17:12:01

01/07 02:26, 6年前 , 5F
血漬、濕度等,可用另外一個texture channel在原本的
01/07 02:26, 5F

01/07 02:26, 6年前 , 6F
材質和血漬/濕度材質之間混色。以命中點算出UV座標之
01/07 02:26, 6F

01/07 02:26, 6年前 , 7F
後,用texture-space decal的方式修改該該額外texture
01/07 02:26, 7F

01/07 02:26, 6年前 , 8F
channel。
01/07 02:26, 8F

01/07 11:13, 6年前 , 9F
直接以貼圖的方式加上去也是可以
01/07 11:13, 9F

01/07 11:14, 6年前 , 10F
舉例來說 在2D的部分 我射了1支箭在目標身上 飛行過
01/07 11:14, 10F

01/07 11:14, 6年前 , 11F
是一個物件 但是碰撞後 可以把箭"黏"目標上
01/07 11:14, 11F

01/07 11:15, 6年前 , 12F
變成一個貼圖(sprite) 把箭的角度跟相對位置存在目標
01/07 11:15, 12F

01/07 11:16, 6年前 , 13F
的其中一個變數裡面 可能是個陣列
01/07 11:16, 13F

01/07 11:17, 6年前 , 14F
當這個陣列的數量有減少的時候再重新繪製那個layer就好
01/07 11:17, 14F

01/07 11:18, 6年前 , 15F
這樣做的話 在遊戲裡 這些箭是可以回收的 也不會影
01/07 11:18, 15F

01/07 11:19, 6年前 , 16F
響太多性能
01/07 11:19, 16F

01/07 11:20, 6年前 , 17F
如果不斷中箭 一直覆蓋舊有圖塊就可以了
01/07 11:20, 17F
遇到圓曲 凹折的部位 會變得很奇怪 ※ 編輯: teeheehee (1.162.138.121), 01/07/2019 12:03:06

01/07 21:14, 6年前 , 18F
圓曲凹折的部分做動態貼圖會很怪 恐怕只是做的人實力問題吧
01/07 21:14, 18F

01/18 11:01, 6年前 , 19F
還有一個做法是事先設計全身血跡圖
01/18 11:01, 19F

01/18 11:01, 6年前 , 20F
改動被命中部位的頂點色當mask
01/18 11:01, 20F

01/18 11:02, 6年前 , 21F
頂點不能太少,且CPU不能太弱
01/18 11:02, 21F

01/18 11:03, 6年前 , 22F
lerp(正常貼圖色,染血貼圖色,Mask值)
01/18 11:03, 22F

01/18 11:04, 6年前 , 23F
射到腳,就讀腳的模型去判斷頂點距離
01/18 11:04, 23F

01/18 11:05, 6年前 , 24F
if 頂點至命中點距離 < 染血範圍值
01/18 11:05, 24F

01/18 11:06, 6年前 , 25F
則VertexColor的某通道=0.0f;
01/18 11:06, 25F

01/18 11:08, 6年前 , 26F
類似換圖,只是多了判斷,產生的遮罩
01/18 11:08, 26F
文章代碼(AID): #1SCMe9zM (GameDesign)
文章代碼(AID): #1SCMe9zM (GameDesign)