虚幻4中的碰撞设置
轉自:http://www.52vr.com/article-758-1.html
大家都見過次世代游戲中的物理碰撞效果,非常精確和震撼,虛幻的物理模擬(Physics Simulation)是基于強大的 PhysX 3.3物理引擎,其碰撞計算、物理互動來源于此。虛幻4的碰撞選項卡如下所示。
要理解和靈活應用虛幻引擎提供的碰撞系統,需要搞明白以下兩個基本概念:
物體類型(Object Type)
碰撞響應(Collision Responses)
物體類型Object Type是一個分類,一些響應同樣碰撞效果的物體可以劃分到同一個類中。比如地面,我們希望它對任何場景物體都阻礙(Block)(虛幻4.8把這個翻譯為區塊….),就是說任何物體和地面的碰撞都是地面阻止物體穿過自己(如果物體有速度的和地面碰撞,僅僅設置碰撞為block并不能產生反彈效果,需要結合物體模擬設置)。
向項目中增加自定義Object Type的方法是編輯—項目設置—碰撞。
碰撞響應(Collision Responses)有三種:Ignore,Overlap,Block,譯為忽略,重疊,區塊(這個翻譯為阻礙、阻擋更加易于理解)。
Block就是阻止物體穿過自己,當別的物體以一定速度撞上自己時,兩者不會發生互相重疊的情況(需要兩者都設置為Block),至于它們如何模擬物理反應(反彈效果),需要另外設置。
碰撞響應設置為Block時,兩物體發生碰撞的瞬間激活On Component Hit事件。
Overlap和Ignore都會讓兩個物體互相重疊、穿過。它們的區別是當設置為overlap時,兩物體開始和結束overlap(重疊)時,可以激活事件ReceiveBeginOverlap and ReceiveEndOverlap。
當碰撞預設值(Collision Presets)設置為Custom時,可以自定義本物體對不同類的響應類型(大部分時候都是設置為custom)。
比如自己是一個墻壁(Object Type為Wall),它對普通玩家的碰撞響應為Block,對無敵玩家的碰撞響應為overlap,對子彈的碰撞響應為ignore,則需要的設置如下:
結果就是Object Type為NormalPlayer的actor類藍圖(或者組件)無法穿過自己;Object Type為GreatPlayer的actor類藍圖(或者組件)可以穿過自己,但我們可以確切的得知它什么時候開始接觸墻壁、什么時候離開墻壁;Object Type為Bullet的actor類藍圖(或者組件)可以穿過自己,不會激起任何事件觸發。
需要注意的是,碰撞響應的設置是需要雙方配合的。上面的例子中,不僅僅要設置Wall對其他類型的碰撞響應方式,還要設置其他類型對wall的碰撞響應方式。只有碰撞的兩個物體都設置為對對方為Block時,才會真的產生block效果
下圖是GreatPlayer的設置:
上面的例子不一定合理,只是用來說明問題的。部分圖片來自官方文檔。
關于虛幻引擎碰撞模塊的詳細介紹可以參見官方文檔,點擊這里。
總結
- 上一篇: 我爱家乡手抄报(我爱家乡手抄报 一等奖
- 下一篇: 脱发如何治疗(治疗脱发的偏方妙方)