闡釋演示控制桿基本原理及試驗(yàn)
當(dāng)格斗游戲全力支持驅(qū)動(dòng)器時(shí),玩者可能會(huì)一直采用演示控制桿。在整座新體驗(yàn)過(guò)程中,科袋輸出處置可能會(huì)對(duì)產(chǎn)品質(zhì)量產(chǎn)生關(guān)鍵性影響。讓上看一些核心理念基本概念以及INVERSUS的實(shí)例。
檢查和
在修正演示控制桿以后,須要介紹其工作基本原理。當(dāng)終端控制桿時(shí),前述調(diào)查報(bào)告的硬體是什么?這是INVERSUS的控制桿檢查和的模樣。并不是說(shuō)這是最合適的操作方式方式,但大部份傳遞的重要信息都很重要。
在詳盡如是說(shuō)每一部分以后,讓得出兩個(gè)多層面的簡(jiǎn)述。正在采用相連到PC的Xbox 360驅(qū)動(dòng)器。第一行代表者左桿上的研磨期。最下面帶隊(duì)是右控制桿。會(huì)注意到,第一行比第一行顯示的統(tǒng)計(jì)數(shù)據(jù)更多。這原因在于INVERSUS僅采用左控制桿,因此得到了特定處置。只會(huì)從聽(tīng)見(jiàn)的視角談及最下面的那帶隊(duì),但對(duì)于采用格斗游戲,大部份人依然適用于于恰當(dāng)?shù)姆绞健?/p>
前兩個(gè)圓盤表示從某一硬體(比如Xbox 360驅(qū)動(dòng)器或DualShock 4驅(qū)動(dòng)器)切換為公用輸出內(nèi)部空間的操作方式。相同的硬體是相同的。機(jī)械設(shè)備上略有相同,覺(jué)得也略有相同。能說(shuō)這是兩個(gè)不言而喻的歷史事實(shí),但可能沒(méi)有考慮過(guò)。
假定在格斗街機(jī)A上合作開發(fā)格斗游戲,接著將其移殖到格斗街機(jī)B。須要維持原初修正的產(chǎn)品質(zhì)量。如果演示控制桿的犯罪行為相同,則會(huì)覺(jué)得很多不難受。這個(gè)設(shè)想是將x,y值從受全力支持的硬體內(nèi)部空間轉(zhuǎn)化成兩個(gè)公用格斗游戲內(nèi)部空間?,F(xiàn)在能將格斗游戲?qū)有拚秊榕c驅(qū)動(dòng)器類別無(wú)關(guān)。電液推桿廠家
第一期代表者徑向死區(qū)處置。由于結(jié)構(gòu)上的限制或采用中的磨損,硬體可能調(diào)查報(bào)告不良值。此期從格斗游戲中刪除了所述不可靠的值。
那么在看什么呢?紅色正方形用左下角的(-1,-1)和右上角的(1,1)限制坐標(biāo)系。沿X軸和Y軸分為四個(gè)象限。鮮紅色的圓盤是單位圓盤。這些準(zhǔn)則在以下每一期均維持不變。
小綠色圓盤是輸出值。因?yàn)檫@是第一步,所以這些是直接形成硬體的原初值。綠色軌跡顯示通過(guò)線段相連的輸出(綠色點(diǎn))的最新歷史記錄。白色小圓盤是該期的已處置輸出。
在此期獨(dú)特的是,還有兩個(gè)圓盤:內(nèi)部死區(qū)和外部死區(qū)。
內(nèi)圓內(nèi)的值不能被信任。這是內(nèi)部死區(qū)。在圖像中,正在不經(jīng)任何阻力的區(qū)域輕輕終端棍子。此處不會(huì)將棍子拉回到死點(diǎn)。隨著管制員的年齡和虐待,該地區(qū)將增長(zhǎng),轉(zhuǎn)移和扭曲。
內(nèi)部死區(qū)中的每一值都映射為零,從而為提供了可靠的格斗游戲邏輯起點(diǎn)。會(huì)注意到白色輸出圓盤始終維持鎖定在中心。如果內(nèi)部死區(qū)太緊,則當(dāng)棒移到外面時(shí)運(yùn)動(dòng)可能會(huì)漂移。
硬體供應(yīng)商通常會(huì)提供建議的內(nèi)部死區(qū)值。這是兩個(gè)不錯(cuò)的起點(diǎn),但應(yīng)該在盡可能多的驅(qū)動(dòng)器上進(jìn)行自己的測(cè)試。這些推薦值可能并不完美,采用硬統(tǒng)計(jì)數(shù)據(jù)進(jìn)行驗(yàn)證也不會(huì)受到損害。電液推桿廠家
外圈外的值不能被信任。這是外部死區(qū)。大多數(shù)格斗游戲在內(nèi)部死區(qū)方面都能接受,但由于外部死區(qū)較差(或不存在),可能會(huì)發(fā)現(xiàn)錯(cuò)誤。
在第兩個(gè)圖像中,將操縱桿筆直向上終端到頂部邊緣,接著圍繞邊緣逆時(shí)針滑動(dòng)。在頂部,調(diào)查報(bào)告單位圓上或單位圓之外的值。生活并不完美,這是能預(yù)期的。但,當(dāng)向左滾動(dòng)棒時(shí),前述上會(huì)在單位圓內(nèi)切開一點(diǎn),接著再向后伸出。此犯罪行為并非對(duì)大部份驅(qū)動(dòng)器類別都通用,但在Xbox 360驅(qū)動(dòng)器上可能會(huì)發(fā)生。
根據(jù)這些統(tǒng)計(jì)數(shù)據(jù),可能會(huì)認(rèn)為左側(cè)不準(zhǔn)確,但并非如此簡(jiǎn)單。在第二張圖片中,首先將操縱桿直接向左終端。在這種情況下,將按預(yù)期調(diào)查報(bào)告。只有將其旋轉(zhuǎn)一圈后,才能看到錯(cuò)誤。
如果錯(cuò)誤僅在旋轉(zhuǎn)之后發(fā)生,那么有多重要?根據(jù)格斗游戲的相同,可能非常重要。想象兩個(gè)格斗游戲,控制桿的大小控制著玩者的速度。如果玩者角色向上終端并向左傾斜,則將在最大速度下稍稍終端,直到釋放并再次伸出手柄為止。
外死區(qū)之外的每一值都按比例縮放為1。這為格斗游戲邏輯創(chuàng)建了兩個(gè)可靠的單位圈。請(qǐng)注意,輸出(白色圓盤)維持鎖定到邊緣。電液推桿廠家
不幸的是,外部死區(qū)可能沒(méi)有任何推薦值。再次執(zhí)行自己的測(cè)試并可視化統(tǒng)計(jì)數(shù)據(jù)。插入一堆驅(qū)動(dòng)器,看看如何反應(yīng)。格斗游戲須要考慮的復(fù)雜動(dòng)作之后可能會(huì)有細(xì)微的錯(cuò)誤。
在內(nèi)部和外部值分別捕捉為零和一的情況下,如何處置中間值?為了避免任何不連續(xù)性,對(duì)比例進(jìn)行線性插值。產(chǎn)生的邏輯可能看起來(lái)像這樣:
已經(jīng)剔除了不良值,須要將結(jié)果統(tǒng)計(jì)數(shù)據(jù)修正為一種普通覺(jué)得。許多因素影響為什么結(jié)果在相同類別的驅(qū)動(dòng)器上可能會(huì)略有相同。首先,有相同的徑向死區(qū)在起作用。第二,物理棒在相同的視角能具有相同的阻力。第三,棍棒的形狀可能相同:棍棒處于相同的高度會(huì)導(dǎo)致拇指產(chǎn)生相同的扭矩。最后,并不總是位于驅(qū)動(dòng)器上的同一位置。
通過(guò)用曲線重新映射幅度,能覺(jué)得像推桿50%或75%都能 調(diào)查報(bào)告一致的輸出,而與硬體無(wú)關(guān)。將永遠(yuǎn)無(wú)法獲得如此完美的新體驗(yàn),但總比什么都不做要更好。
在INVERSUS的情況下,Xbox 360驅(qū)動(dòng)器是基準(zhǔn),因此重映射曲線僅為(輸出=輸出)或(y = x)。該曲線作為對(duì)角線覆蓋在圖像上。曲線的輸出(幅度)呈現(xiàn)為在屏幕上滾動(dòng)的垂直線。該線在輸出值處與曲線相交。在這種某一情況下,輸出和輸出是相等的,但對(duì)于備用驅(qū)動(dòng)器,采用三次樣條使覺(jué)得電液推桿廠家更像Xbox 360驅(qū)動(dòng)器。
稍后,將進(jìn)行另兩個(gè)曲線重映射以及兩個(gè)顯示非平凡曲線的實(shí)例。
如今,此步驟已不是必需的操作方式,前述上不全力支持INVERSUS,但想提一提。有時(shí),驅(qū)動(dòng)器是采用不會(huì)輸出值圈的硬體合作開發(fā)的。可能在正方形中輸出某些內(nèi)容,或者誰(shuí)知道什么。在這種情況下,須要做一些額外的預(yù)處置,以將內(nèi)部空間重新映射到起點(diǎn)。可視化統(tǒng)計(jì)數(shù)據(jù),查看發(fā)生了什么,并采取相應(yīng)的措施。
在跳出硬體抽象化層以后,想討論P(yáng)C格斗游戲特有的復(fù)雜性。任何時(shí)候采用PC硬體-無(wú)論是用于圖形,音頻還是輸出-事情都比控制臺(tái)復(fù)雜兩個(gè)數(shù)量級(jí)。在驅(qū)動(dòng)器輸出的情況下,前述上并沒(méi)有那么遙遠(yuǎn)。希望不久的將來(lái)能刪除此部分。
問(wèn)題的癥結(jié)在于,XInput不會(huì)告訴是否插入了Xbox 360驅(qū)動(dòng)器或Xbox One驅(qū)動(dòng)器。不知道為此提供任何全力支持的接口(因此對(duì)聽(tīng)見(jiàn)其方式非常感興趣)從任何已經(jīng)解決人)。這導(dǎo)致多個(gè)問(wèn)題。首先,無(wú)法從開始/返回到查看/菜單之類的操作方式來(lái)自動(dòng)修正按鈕圖標(biāo)。其次,無(wú)法在相同的驅(qū)動(dòng)器類別之間重新映射振動(dòng)強(qiáng)度。第三(與本文更相關(guān)),不能自動(dòng)修正徑向死區(qū)。
在輸出保真度方面,Xbox One驅(qū)動(dòng)器是更好的設(shè)備。不須要360驅(qū)動(dòng)器的較大外部盲區(qū)。不幸的是,在不知道相連哪兩個(gè)的情況下,最合適的選擇是將Xbox One驅(qū)動(dòng)器限制在Xbox 360的死區(qū)中。電液推桿廠家
如果對(duì)對(duì)降低PC駭客攻擊的設(shè)想不感興趣,能跳至下一部分。否則,這是目前對(duì)如何解決INVERSUS(手指交叉)的設(shè)想。
最初考慮過(guò)采用WindowsRaw Input和HIDAPI 重寫 XInput 。從設(shè)備讀取統(tǒng)計(jì)數(shù)據(jù)并不難。為燈光和電機(jī)發(fā)送統(tǒng)計(jì)數(shù)據(jù)會(huì)比較棘手,但可行。不幸的是,XBox 360驅(qū)動(dòng)器被構(gòu)建為不適合作為HID設(shè)備采用。演示觸發(fā)器不能獨(dú)立讀取。認(rèn)為這樣做是為了提升XInput,但老實(shí)說(shuō)不確定。
后來(lái)考慮繞過(guò)HID接口并直接與USB通訊。認(rèn)為這意味著要編寫驅(qū)動(dòng)程序。覺(jué)得這太過(guò)分了。甚至可能達(dá)到無(wú)法向用戶隱藏的程度。
最近,想到了兩個(gè)新主意。前述上還沒(méi)有實(shí)現(xiàn),這有點(diǎn)瘋狂,但確實(shí)擁有大部份統(tǒng)計(jì)數(shù)據(jù)來(lái)使之成為可能[UPDATE:這完全電液推桿廠家可行]。能采用原初輸出來(lái)識(shí)別已相連的Xbox 360和Xbox One驅(qū)動(dòng)器。也能采用Raw Input從驅(qū)動(dòng)器接收HID輸出統(tǒng)計(jì)數(shù)據(jù)。通過(guò)將原初輸出的統(tǒng)計(jì)數(shù)據(jù)子集與XInput的統(tǒng)計(jì)數(shù)據(jù)(比如按鈕按下和演示控制桿)進(jìn)行比較,能將設(shè)備從兩個(gè)系統(tǒng)映射到另兩個(gè)系統(tǒng)。這應(yīng)該允許對(duì)XInput采用的驅(qū)動(dòng)器進(jìn)行分類。從理論上講,這在舊版本的XInput中也將起作用,因此全力支持舊版本的Windows。
已經(jīng)清理了統(tǒng)計(jì)數(shù)據(jù)并將其放入格斗游戲能處置的公用內(nèi)部空間。從這里開始到每一格斗游戲的細(xì)節(jié)可能會(huì)變化,但I(xiàn)NVERSUS采用的期適用于于大多數(shù)格斗游戲。還應(yīng)該提到,具有多個(gè)上下文的格斗游戲(比如,上下車)可能會(huì)根據(jù)上下文切換設(shè)置。
玩者會(huì)嘗試指向通用和某一的方向。對(duì)于INVERSUS,玩者在顯示器的二維平面內(nèi)終端。通常嘗試直接向右或直接向上終端。在矩形屏幕上的2D格斗游戲中,能輕松查看垂直和水平對(duì)齊方式。與離開左側(cè)5度角相比,玩者更有可能嘗試并準(zhǔn)確地直接向左側(cè)行走。因此,做到這一點(diǎn)應(yīng)該很容易。
通過(guò)定義一組由視角死區(qū)限制的方向來(lái)處置此問(wèn)題。在此區(qū)域中時(shí),輸出將直接映射到指定方向。在圖像中,有四個(gè)盲區(qū):上,下,左和右。當(dāng)輸出(綠色圓盤)處于盲區(qū)時(shí),輸出(白色圓盤)被鎖定到相應(yīng)的軸。類似于徑向死區(qū),能平滑地內(nèi)插每一相鄰死區(qū)之間的視角。輸出(白色圓盤)在終端時(shí)不會(huì)彈出。請(qǐng)注意,此操作方式須要首先切換為極坐標(biāo)。對(duì)視角值進(jìn)行運(yùn)算后,能切換回笛卡爾坐標(biāo)。電液推桿廠家
還能根據(jù)到原點(diǎn)的距離,用曲線修正盲區(qū)的角寬度。如果想更輕松地進(jìn)行細(xì)微的軸向運(yùn)動(dòng),能彎曲死角,使死角在中心變寬。
將針對(duì)視角死區(qū)提到其一些用例,因?yàn)榭赡懿⒉幻黠@。3D格斗游戲?qū)Ш皆趺礃???duì)于攝像機(jī)的相對(duì)運(yùn)動(dòng),玩者通常會(huì)嘗試移入/移出攝像機(jī),或左右終端。這適用于于第三人稱和第一人稱場(chǎng)景。3D相機(jī)控制怎么樣?在第三人稱和第一人稱格斗游戲中,通常采用橫向控制桿動(dòng)作來(lái)轉(zhuǎn)動(dòng)角色。玩者不想在此過(guò)程中稍微上下終端相機(jī)。使容易。類似的邏輯適用于于直視或直視。最后,讓討論一下可能須要更簡(jiǎn)單設(shè)置的情況。在駕駛格斗游戲中,玩者經(jīng)常希望準(zhǔn)確地向前或向后行駛。頂部的死區(qū)和底部的死區(qū)可能就足夠了。
這與用于硬體幅度重映射曲線的操作方式相同。還采用相同的調(diào)試渲染。被拆分,以便能以與硬體無(wú)關(guān)的方式來(lái)修正格斗游戲的覺(jué)得。不須要為每種受全力支持的驅(qū)動(dòng)器類別重做工作。
這條曲線的形狀是某一于格斗游戲的,但很可能從低處開始并向上彎曲。這將使更多的靈敏度移至控制桿的外部,從而更易于進(jìn)行修正。此曲線的細(xì)微變化在格斗游戲的玩法中可能具有驚人的重要作用。值得撥出一些堅(jiān)實(shí)的時(shí)間進(jìn)行迭代。
在INVERSUS的情況下,曲線比大多數(shù)格斗游戲可能想要的要陡一些。這原因在于相同的終端速度對(duì)格斗游戲設(shè)計(jì)有多大用處。還在曲線的開頭添加了另兩個(gè)細(xì)微差別。立即上升非常快。此修正某一于格斗游戲物理的工作方式。決定在該點(diǎn)下的輸出對(duì)播放器沒(méi)有用,想充分利用輸出范圍,所以不會(huì)浪費(fèi)任何東西。電液推桿廠家
最終顯示屏顯示完全處置過(guò)的膠棒值。在這里,能驗(yàn)證是否能夠達(dá)到格斗游戲所需的期望方向和幅度。如果運(yùn)行良好,能開始在角色物理領(lǐng)域進(jìn)一步調(diào)優(yōu)。就是說(shuō),對(duì)于格斗游戲而言,這可能不是終點(diǎn)。不斷詢問(wèn)能做些什么來(lái)改善新體驗(yàn)。
并排渲染大部份期可全面介紹輸出管道。這有助于假定修正并驗(yàn)證結(jié)果。玩者通過(guò)驅(qū)動(dòng)器的語(yǔ)言與格斗游戲?qū)υ?,翻譯可能會(huì)很混亂。須要 通過(guò)此模糊翻譯步驟來(lái)幫助指導(dǎo)某一意圖。如果能進(jìn)行準(zhǔn)確的翻譯,則能制作兩個(gè)嚴(yán)格的控制格斗游戲。
聯(lián)系電話
微信掃一掃