最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

騎砍戰(zhàn)團(tuán)引擎淺層剖析(四)人與場(chǎng)景物機(jī)制的異同

2018-11-13 14:48 作者:killyouready  | 我要投稿

第一期講了武器和場(chǎng)景物有一定同源的引擎功能和機(jī)制,本期講講人和場(chǎng)景物功能機(jī)制上的同源性。

從總體層面上,其實(shí)人可以看成是一個(gè)被條件寫(xiě)死一些運(yùn)動(dòng)和碰撞特性的Physics(動(dòng)態(tài))場(chǎng)景物,而戰(zhàn)團(tuán)幾乎全部現(xiàn)有場(chǎng)景物可以看作是默認(rèn)關(guān)閉動(dòng)態(tài)物理效果的static(靜態(tài))場(chǎng)景物。

為什么這么說(shuō)呢?首先人(agent即troop中的一個(gè)個(gè)體實(shí)例)與場(chǎng)景物(sceneprop)都有可以關(guān)閉開(kāi)啟的動(dòng)態(tài)物理效果,開(kāi)啟關(guān)閉后一些運(yùn)動(dòng)碰撞特性有很多相似的地方。區(qū)別是:

1.在旋轉(zhuǎn)運(yùn)動(dòng)方面,人在引擎內(nèi)部有一個(gè)校準(zhǔn)地面坡度的設(shè)定,使得無(wú)論是Physics還是static狀態(tài)的人不處于撞倒殺傷的情況下會(huì)保持身體與地面垂直的空間相對(duì)位置關(guān)系,使得無(wú)法使用旋轉(zhuǎn)的基礎(chǔ)操作對(duì)人體進(jìn)行對(duì)x或y軸的空間位置旋轉(zhuǎn)運(yùn)動(dòng)而場(chǎng)景物可以(所以這時(shí)候人的對(duì)x或y軸的旋轉(zhuǎn)要靠動(dòng)畫(huà)了,不過(guò)對(duì)z軸的可以靠位置坐標(biāo)變換)。

2.在平移運(yùn)動(dòng)方面,static狀態(tài)的人沒(méi)有開(kāi)放在兩個(gè)坐標(biāo)間勻速動(dòng)畫(huà)式平移的功能(場(chǎng)景物在mod系統(tǒng)中有這一功能開(kāi)放),不過(guò)可以用極限變換坐標(biāo)實(shí)現(xiàn)static人移動(dòng)(而Physics狀態(tài)的人就是靠引擎的地面坡度檢測(cè)和碰撞檢測(cè)加上mod系統(tǒng)可修改層面的ai系統(tǒng)驅(qū)動(dòng)移動(dòng))。

3.在箭矢攻擊方面:Physics狀態(tài)的場(chǎng)景物在箭矢擊中的情況下也會(huì)呈現(xiàn)與Physics狀態(tài)的人一樣的中箭狀態(tài)(即保持箭在射中相對(duì)位置隨人或場(chǎng)景物的移動(dòng)一起移動(dòng),而static狀態(tài)的場(chǎng)景物中箭移動(dòng)箭矢還是會(huì)處于原坐標(biāo)位置),還有的不同之處是人在某些情況下會(huì)被動(dòng)受引擎設(shè)定清除身上中的箭矢,而Physics狀態(tài)的場(chǎng)景物在如今的mod系統(tǒng)中可以支持mod作者控制所中箭矢的清除(這并不是說(shuō)明人和場(chǎng)景物在中箭效果上引擎層面有什么差別,應(yīng)該是利用同一原理,只是對(duì)于mod作者來(lái)說(shuō)只開(kāi)放了場(chǎng)景物的箭矢清除操作,要搞清楚有沒(méi)有和給不給的區(qū)別)。

4.在碰撞方面:在前面我講了好多碰撞的東西,所以我再通俗講一下碰撞檢測(cè)機(jī)制到底是什么意思,就是當(dāng)物體A移動(dòng)的時(shí)候,保證A在開(kāi)發(fā)者所設(shè)想的位移允許條件下,環(huán)境中不允許越過(guò)的其他物體就是障礙物,A在預(yù)期的移動(dòng)方向上將與障礙物有表面或內(nèi)部的坐標(biāo)交叉,通過(guò)碰撞檢測(cè)反應(yīng)達(dá)到一定條件就會(huì)利用障礙物和A最先達(dá)到模型碰撞交叉的區(qū)域的坐標(biāo)距離判定來(lái)阻止A在這個(gè)方向的移動(dòng)(比如向前移動(dòng)檢測(cè)到快撞上障礙物就會(huì)觸發(fā)某條件停止運(yùn)行前進(jìn)的移動(dòng)代碼)。所以不難看出碰撞檢測(cè)的關(guān)鍵在于物體模型在游戲環(huán)境中的坐標(biāo)的獲取。而出于優(yōu)化考慮,一般游戲獲取坐標(biāo)的方式有兩個(gè),一個(gè)是只需時(shí)刻知道物體身上的特征點(diǎn)(比如人,采用hitbox,只需要知道手腳頭肩膀等等人體關(guān)鍵部位的一個(gè)或幾個(gè)坐標(biāo)就可以滿足碰撞控制的需求),另外一個(gè)就是raycast,利用類似紅外制導(dǎo)的射線對(duì)物體表面的坐標(biāo)進(jìn)行獲?。ū热鏟hysics狀態(tài)的場(chǎng)景物,不過(guò)騎砍mod系統(tǒng)也可以直接判斷Physics狀態(tài)的場(chǎng)景物是否交叉,但原理上還是對(duì)raycast的應(yīng)用封裝的功能)。

所以人和場(chǎng)景物在碰撞檢測(cè)層面所用的坐標(biāo)獲取方面是不一樣的,但是坐標(biāo)獲取后的判定碰撞原理是大同小異的,比如想在地面上走不沉下去只要能獲取模型底面區(qū)域的坐標(biāo)和地表接觸區(qū)域的坐標(biāo)就可以根據(jù)坐標(biāo)距離來(lái)限制向z坐標(biāo)反方向的移動(dòng)代碼即可,其他障礙物也是同理(把整個(gè)大地也可以看成一個(gè)障礙物或場(chǎng)景物,其實(shí)說(shuō)法也沒(méi)錯(cuò),因?yàn)榇蟮靥炜张c部分石頭樹(shù)木在引擎里給過(guò)命名叫他們“環(huán)境場(chǎng)景物”,比那些正常的“裝飾場(chǎng)景物”在mod系統(tǒng)上缺少大部分控制權(quán)限),順便提一下,一般向前碰到障礙物對(duì)向前移動(dòng)的代碼進(jìn)行限制的時(shí)候有的游戲里就算你只按W還會(huì)加一點(diǎn)對(duì)z軸旋轉(zhuǎn)運(yùn)動(dòng)來(lái)致使單位可以被動(dòng)繞開(kāi)障礙物,不過(guò)騎砍不是,騎砍是只按W向前遇到障礙物就不能觸發(fā)前移移動(dòng)的代碼了,這時(shí)候你就需要鼠標(biāo)+W或ASD來(lái)繞開(kāi)了(使控制體和障礙物體拉開(kāi)碰撞判定的條件距離)。

5.動(dòng)畫(huà)方面:人和場(chǎng)景物都有動(dòng)畫(huà),雖然所用動(dòng)畫(huà)形式不一樣,前者采用骨骼動(dòng)畫(huà),后者采用頂點(diǎn)動(dòng)畫(huà),其實(shí)騎砍還有一種動(dòng)畫(huà)叫做UV動(dòng)畫(huà),但應(yīng)用上我們更習(xí)慣于把UV動(dòng)畫(huà)的應(yīng)用歸于Shader系統(tǒng)。還有,電腦上最早的3D模型動(dòng)畫(huà)是骨骼動(dòng)畫(huà)quake-MDL,而最早的頂點(diǎn)動(dòng)畫(huà)md2和md3技術(shù)是基于MDL的,而半條命的mdl技術(shù)和quake的是一樣的,半條命二代的mdl是根據(jù)doom3開(kāi)發(fā)過(guò)程的中間產(chǎn)物MD4改造的,所以事實(shí)上骨骼動(dòng)畫(huà)和頂點(diǎn)動(dòng)畫(huà)很多原理是差不多的,區(qū)別是優(yōu)化和可維護(hù)程度,并且一定條件下可以互相轉(zhuǎn)化。而騎砍的Physics狀態(tài)的人動(dòng)畫(huà)和運(yùn)動(dòng)攻擊互動(dòng)等行為互為觸發(fā)條件的,如果有耐心和基礎(chǔ),場(chǎng)景物也是可以根據(jù)此變成活物。所以這在人和場(chǎng)景物兩者間從引擎層面上開(kāi)發(fā)潛力沒(méi)有多大差距。

6.通俗解釋動(dòng)態(tài)物理效果決定了什么:動(dòng)態(tài)物理效果決定的就是物體的運(yùn)動(dòng),前面所說(shuō)的平移旋轉(zhuǎn)自然是物體的運(yùn)動(dòng),而前面所說(shuō)的碰撞和動(dòng)畫(huà)也只是對(duì)物體運(yùn)動(dòng)的環(huán)境條件的限制調(diào)整以及觸發(fā)條件或運(yùn)動(dòng)產(chǎn)生的后果。

所以綜上所述:人和場(chǎng)景物功能機(jī)制在引擎內(nèi)部具有同源性,對(duì)于他們的模型資源的功能設(shè)定上很多是相同的,不過(guò)根據(jù)游戲中的具體分工對(duì)一些基礎(chǔ)功能進(jìn)行了條件限定或者只是沒(méi)有對(duì)mod制作者開(kāi)放一些功能的控制權(quán)限。

題外話:騎砍的人和場(chǎng)景物在引擎里的關(guān)系這就像自然界人和動(dòng)物的關(guān)系,有同一個(gè)祖宗,在自然界擔(dān)任不同的分工,具體功能上出現(xiàn)分化,但還是有大量相似特征。不過(guò)人總以自己的標(biāo)準(zhǔn)評(píng)判是非愚智,不會(huì)畫(huà)畫(huà)算人類算術(shù)的動(dòng)物就一定比會(huì)這些的大猩猩聰明?聰明的標(biāo)準(zhǔn)要看環(huán)境和場(chǎng)合,動(dòng)物也有許多本事和智慧行為是人類無(wú)法做到的(比如聲吶貓頭鷹的夜視能力鳥(niǎo)類對(duì)獵物鎖定的精準(zhǔn)運(yùn)算),但是一般不會(huì)糾結(jié)這個(gè),因?yàn)榉止げ煌?,評(píng)價(jià)需要中肯客觀。但是也可以互相學(xué)習(xí),可以得到一些不可思議的提升,而且你也不能否定大自然這個(gè)造物者以后會(huì)讓某個(gè)動(dòng)物也進(jìn)化出類似人的生物。


騎砍戰(zhàn)團(tuán)引擎淺層剖析(四)人與場(chǎng)景物機(jī)制的異同的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
营口市| 东乌珠穆沁旗| 彭水| 恩施市| 买车| 扶风县| 福州市| 长兴县| 乐清市| 麟游县| 彭泽县| 南丰县| 柳江县| 岳池县| 韩城市| 古交市| 杭锦后旗| 兰坪| 宁安市| 兴宁市| 新民市| 高青县| 衡南县| 宁津县| 新乡县| 原平市| 汪清县| 百色市| 阜城县| 辛集市| 日土县| 南阳市| 青冈县| 房产| 丹寨县| 宁津县| 平遥县| 盘锦市| 扎囊县| 静安区| 新巴尔虎左旗|