LV. 19
GP 1

【心得】嘗試2D遊戲Topdown視角模擬三軸移動心得

樓主 星期三邊緣工程師 asd3465789
GP27 BP-
分享最近嘗試在2D TopDown視角去模擬高度變化。

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

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

實際效果:
平台高度差

平台跳躍

不同角度平台高度差

高度差跳躍

斜坡高度差修正

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


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

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


實機DEMO:


小弟第一次發文><,如果有錯誤歡迎大家指教,希望有人能一起討論。
27
-
未登入的勇者,要加入 2 樓的討論嗎?
板務人員:

230 筆精華,05/09 更新
一個月內新增 0
歡迎加入共同維護。


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

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