小屋創作

日誌2020-05-09 13:20

在2D遊戲Topdown視角下模擬三軸物理[ Unity ]

作者:迷途巴哥

紀錄一下最近研究的東東。

因為畢製打算做一款純2D的遊戲,但又想要在2D的畫面下加入更豐富的物理,於是我開始了製作虛擬y軸之路。

製作概念:
針對場景中所有平台設TriggerCollider,並且設一個虛擬高度參數,然後再利用RayCast去偵測角色所站地面的虛擬高度,將角色速度分為平面的xz軸和y軸,y軸速度透過高度比例換算並和xz軸速度相加後再給rigidbody,當角色有跳躍或是引力向下的y軸速度時,利用此速度反推移動量,在調整角色站的地面位置,這樣就能夠準確知道角色目前的虛擬高度和位移。

實際效果:
平台高度差

平台跳躍

不同角度平台高度差

高度差跳躍

斜坡高度差修正

值得注意的是場景中會有非單一高度的平台,如斜坡、或者凹凸不平的起伏地面,為此我設計的一個能夠針對凸多邊形頂點設定高度的程式,只要針對凸多邊形的頂點設定高度,程式會自己運算出圖形中間任一點高度(如下圖)。


雖然目前只用到很簡單只有2種頂點高度的斜坡,但這套運算方式基本上只要是凸多邊形都能準確計算。

運算的步驟:
1.先找出任意頂點經過目標位置到圖形邊的線段
2.取得圖形邊的點後可利用此邊上的兩個頂點換算此點的高度
3.再利用此點和頂點去換算這條線段上目標位置的高度
4.對每個頂點重複1~3步驟後將結果相加並且除以頂點數
這樣就能得知被每個頂點高度影響後的目標位置的高度了(此步驟只能用在凸多邊形)


實機DEMO:

之後會再陸續增加其他物理功能(如推、拋、丟、彈跳、摩擦力等等)。

6

1

LINE 分享

相關創作

Unity 現學現賣紀錄 - 2024.4

台灣獨立遊戲《人造機械之翼》參展CooMIC²,體驗JRPG風格的浪漫飛行冒險

【遊戲開發日誌 #27】久久畫了個勇造/物品選單(搞定)/存檔介面(換這個未完)

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】