回覆列表
-
1 # 造型師浩東
-
2 # 劉曉氓
最早的向量炮是由Dim神觸(滾大幕)製作的Templar系列。
向量炮的分類?
按照xyz軸是否具有可變推力條件
向量炮分為單線向量炮(只有一個方向的可變推力,只能實現單線打擊)
二維向量炮(有兩個方向的可變推力,能實現平面打擊)
三維向量炮(有三個方向的可變推力,能實現立體打擊)。
當然,向量炮還可以按照常規與非常規分,或者按照地對地,地對空,空對地的分法進行分類,這在之後會有所提及,這裡便不細講了。
什麼是掃射向量炮?
掃射向量炮是在向量炮定點打擊的基礎上,安裝附加裝置讓打擊點能夠發生自動變化,實現自動掃射的向量炮。這種附加裝置我們稱為“掃射火控”。而目前實現掃射的火控形式一共有計數,記點,計算三大類,這在之後會有詳細的介紹。
關於發射器
首先是一些大家應該都清楚的,發射器是實體方塊,它能夠被充能
當發射器被各種方式啟用的時候,它能夠將它的內容物發射出去
如果發射器已經處於啟用狀態,那麼再給發射器一個紅石訊號將無法啟用它(圖中的情況就是,我在最右邊放了個紅石粉卻沒有讓發射器把水收回)這種無法啟用的情況就被稱作啟用鎖定。
而發射器對於紅石炮的意義就是它能夠將TNT以實體的形式發射出來,這樣的性質讓紅石炮的連發成為可能。
接下來就是一些大家可能不知道的,這也是發射器部分的重點
和活塞類似,發射器是有BUD(Block Update Detector,方塊更新感應器)的,這意味著它能夠像活塞一樣接收它上方方塊的訊號,從而被啟用。如果讓發射器處於亞穩態,那麼此時如果給它一個更新,它就會被啟用。
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
什麼是向量炮?
向量炮是一種透過調節xyz各方向對同一格內的tnt的推力大小來對某一固定範圍實行定點打擊的紅石炮
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
最早的向量炮是由Dim神觸(滾大幕)製作的Templar系列。
向量炮的分類?
按照xyz軸是否具有可變推力條件
向量炮分為單線向量炮(只有一個方向的可變推力,只能實現單線打擊)
二維向量炮(有兩個方向的可變推力,能實現平面打擊)
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
三維向量炮(有三個方向的可變推力,能實現立體打擊)。
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
當然,向量炮還可以按照常規與非常規分,或者按照地對地,地對空,空對地的分法進行分類,這在之後會有所提及,這裡便不細講了。
什麼是掃射向量炮?
掃射向量炮是在向量炮定點打擊的基礎上,安裝附加裝置讓打擊點能夠發生自動變化,實現自動掃射的向量炮。這種附加裝置我們稱為“掃射火控”。而目前實現掃射的火控形式一共有計數,記點,計算三大類,這在之後會有詳細的介紹。
關於發射器
首先是一些大家應該都清楚的,發射器是實體方塊,它能夠被充能
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
當發射器被各種方式啟用的時候,它能夠將它的內容物發射出去
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
如果發射器已經處於啟用狀態,那麼再給發射器一個紅石訊號將無法啟用它(圖中的情況就是,我在最右邊放了個紅石粉卻沒有讓發射器把水收回)這種無法啟用的情況就被稱作啟用鎖定。
而發射器對於紅石炮的意義就是它能夠將TNT以實體的形式發射出來,這樣的性質讓紅石炮的連發成為可能。
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
接下來就是一些大家可能不知道的,這也是發射器部分的重點
和活塞類似,發射器是有BUD(Block Update Detector,方塊更新感應器)的,這意味著它能夠像活塞一樣接收它上方方塊的訊號,從而被啟用。如果讓發射器處於亞穩態,那麼此時如果給它一個更新,它就會被啟用。
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
提到發射器的BUD有什麼用?這裡問大家一個問題,同樣是啟用3×3的九個發射器,請問是左邊的方式好還是右邊的方式好?
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
答案是左邊的方式好。為什麼?這裡補充兩個知識
知識點一:
當一種紅石元件(不知道怎麼描述比較好)處於BUD狀態的時候,如果不對它進行更新,那麼它所處的狀態便不會更改
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
對於一個發射器而言就是,如果它透過BUD被啟用,此時如果不給它一個更新的話,那麼它便會處於啟用鎖定狀態,此時再給它一個紅石訊號是不會讓它有所反應的。在紅石炮中的表現就是,發射器不會發射tnt。
比如這種情況
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
大家可以自行嘗試一下,這種情況會導致自第二次啟用開始,有些發射器便可能不再發射tnt
知識點二:
紅石中繼器在放置、啟用、失去啟用時會有一個比較奇特的更新範圍,它只會更新其前方方塊和該方塊的毗鄰方塊(圖中所示染色玻璃的區域)
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
我們讓這些活塞處於亞穩態
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
放置中繼器便會出現這種情況
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
知識點三:
雖說活塞和發射器都有BUD但是不同之處在於,活塞啟用時可以更新周圍的區域(或者叫其毗鄰方塊,即下圖紅色染色玻璃標出的區域),但是發射器不行,發射器在被啟用時是無法更新其毗鄰方塊的
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
我們可以透過以下實驗進行驗證
首先我們要清楚,紅石線在放置,破壞,亮起,熄滅的時候會更新其毗鄰區域以及其毗鄰的毗鄰(下圖紅色染色玻璃標出的區域,包括紅石線本身和那個鐵塊)
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
我們可以做出以下的實驗裝置進行驗證
圖中染色玻璃標識出的為紅石線的更新範圍,透過對比我們可以發現,右側裝置中只有上方的活塞處於紅石線的更新範圍(左圖黃色染色玻璃標出的位置)下方兩個活塞都不在紅石線的更新範圍之內,其中一個已經處於亞穩態,而另一個如果在上方紅石線更新的條件下,也將處於亞穩態
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
點亮紅石線,我們發現三個活塞都伸出了
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
其原因在於,左上角的活塞會更新左下角的活塞,而左下角的活塞又會更新右下角的活塞,從而三個活塞同時伸出
我們把活塞換成發射器來看看,發射器中都裝有箭
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
點亮紅石線,只有左上角的發射器射出了箭
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
大家可以自行驗證一下
那麼我們回到我上次留的那個問題(自己挖了個坑往裡跳orz事後發現這個問題其實蠻難解釋清楚的)
為什麼交錯的中繼器啟用會比並排的中繼器啟用方式要好
首先我們來看並排式的,這是一個前後的示意圖
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
圖中紅色玻璃標出的發射器(以下簡稱紅髮射器)處於有三個能觸發BUD的位置,黃色玻璃標出的發射器(以下簡稱黃髮射器)有兩個能觸發BUD的位置。
既然發射器本身的啟用是無法更新其毗鄰方塊的,那麼那些連射的大炮是怎麼實現穩定射程的呢,或者說,什麼讓第一次發射後因為BUD而處於啟用鎖定狀態的發射器被更新而回歸原始態呢?
答案就是中繼器。之前也向大家展示過中繼器的更新範圍了。
中繼器可以更新這個發射器板中的一個十字形區域。
我們先來分析一下比較簡單的黃髮射器
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
從目前的種種現象來看,各種紅石器件的更新是按順序的,同種紅石器件的更新也是逐序的,因為我本人也不是太清楚具體的更新順序,所以我只能窮舉一下各種情況了(據說紅石線的更新是隨機的……簡直有毒)
情況1:更新順序先紫後藍(那個紫色其實是品紅但是為了方便表述我就直接用紫色了)
在紫發射器被強充能後,黃髮射器會處於亞穩態,但由於中繼器更新不到它,所以它不會被啟用。隨後藍髮射器被強充能,黃髮射器被更新,也被強充能方塊啟用(具體順序未知)。在發射器失去啟用時,紫發射器首先失去充能,隨後藍髮射器失去充能並給黃髮射器一個更新,黃髮射器迴歸原始態,所以這種情況不會出問題。
情況2:更新順序先藍後紫
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
在藍髮射器被強充能後,黃髮射器被啟用,隨後紫發射器被強充能,黃髮射器處於一個亞穩態。在藍髮射器後的中繼器失去啟用時,會給黃髮射器一個更新,而此時黃髮射器正好是處於亞穩態的,這個更新讓黃髮射器進入了啟用鎖定狀態,隨後紫發射器後的中繼器失去啟用,但是更新不到黃髮射器。
第二次啟用時,藍髮射器被強充能,同一gametick內,發射器被中繼器更新,不過此時發射器依舊算啟用鎖定狀態。這一gametick過後,黃髮射器算作被強充能而處於啟用鎖定狀態,此時給它一個紅石訊號也無法讓它被啟用。之後失去啟用的情況就和第一次一樣了。
根據上面的分析,情況二也就是先啟用藍髮射器再啟用紫發射器的情況下,黃髮射器就會出現第二次及其以後的啟用不發射物品的情況(如果不給它一個額外的更新的話)
那麼紅色發射器呢?它的更新情況更加的複雜,不過,其實這些情況只是黃髮射器情況的延伸
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
考慮到對稱性,其實紅髮射器之有三種情況,即藍藍紫,藍紫藍和紫藍藍。大家可以根據前面的分析自己推導一下,只要紫發射器不是最後一個更新,那麼紅髮射器就會一直處於啟用鎖定狀態。
然後我們再來看看這種交叉佈線的情況
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
對於那些只有一個可以觸發BUD位置的發射器(比如圖中的黃髮射器),我們不用考慮,因為在中繼器失去啟用後帶來的更新會讓其迴歸原始態。在這組發射器中,我們只需要考慮紅髮射器,因為它有三個觸發BUD的位置。
紅髮射器所處的情況其實比較複雜,不過我們可以分兩種情況來看,一種情況是紅髮射器最後更新,一種是紅髮射器不是最後更新。
情況1:紅髮射器最後更新
由於紅髮射器最後更新,所以不管之前它處於什麼狀態,在所有中繼器失去啟用後它都將處於原始態。
情況2:紅髮射器不是最後啟用
由於紅髮射器不是最後啟用,所以根據之前的分析,紅髮射器應該要處於啟用鎖定狀態,但是事實並非如此,紅髮射器每次都能夠正常啟用,這是為什麼呢?
其實,這個是由紅石線的更新導致的。不管紅髮射器是否處於啟用鎖定狀態,在第二次啟用時,由於紅髮射器後中繼器所連的紅石線能夠給紅髮射器一個更新(紅石線的更新範圍之前有提),所以紅髮射器會迴歸原始態,這個更新只需要花費1gametick的時間,而中繼器啟用發射器需要2gametick,所以發射器會再次被啟用。那麼,有沒有可能把中繼器改為紅石線來讓紅髮射器一直處於啟用鎖定狀態呢?不行。因為在我這種情況下,把中繼器改為紅石線會改變紅石線的指向,有些紅石線是不會指向發射器的,自然無法啟用它。
不過,從另一個角度考慮,如果不讓紅石線更新紅髮射器的話,紅髮射器依舊有可能一直處於啟用鎖定狀態?
是的,我們可以把裝置的佈線改成這樣
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
由於紅石線更新的隨機性,我在每個不同的位置都放紅石兩次,結果還真的讓我找到了一個可以讓紅髮射器一直處於啟用鎖定狀態的位置
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
我的版本是1.7.10,此時面朝的方向為西,由於紅石線更新規律隨機,而且每次更新順序固定(這是好像跟java的版本有關,而且每個版本的順序可能還不同,所以這個實驗的復現性比較差),所以當紅發射器後的中繼器不是最後一個更新時,紅髮射器便會一直處於啟用鎖定狀態。
那麼,如何避免出現啟用鎖定狀態的情況呢?
發射器牆可以用交錯佈線,而下圖的這種情況,我們有另外一種方式。
有時為了提高空間利用率,我們會採用這樣的炮管
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
而如果直接在發射器上鋪紅石線的話,又可能出現啟用鎖定的情況
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
所以,為了避免出現啟用鎖定的情況,這樣放置發射器時我們不能直接在發射器上鋪紅石線,不過我們可以這樣弄
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
利用半磚上鋪紅石線來啟用發射器,這裡利用了BUD和紅石線的更新範圍。根據前面的推導,如果看明白的話這裡應該可以直接推了,圖中的發射器要麼沒有觸發BUD的位置要麼只有一個觸發BUD的位置,不會出現啟用鎖定的情況。
所以說我們也不能用下圖的方式啟用發射器,由於紅石線能夠對實體方塊弱充能(而不會充能半磚),所以會出現有多個觸發BUD的位置的發射器。
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
在有些對射速和穩定性要求比較高的紅石炮中,我們會用到這樣的壓縮裝置
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
這個裝置可以提供五個tnt用來壓縮炮管中的tnt(具體怎麼用之後會講)
我們可以這樣佈線
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
有時候因為方向的限制,我們可能會這樣布
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
但是這樣其實是不行的。至於為什麼,大家可以自行分析一下(只能說有可能不行,因為那個蛋疼的隨機更新順序。所以,為了保證不被隨機所影響,我們佈線時要儘量避免BUD影響的情況出現,如果按下圖方式啟用,圖中最遠端的那個發射器會處於啟用鎖定狀態)
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
至於為什麼我要畫這麼大的篇幅來講發射器?因為掃射向量炮必須保證每個射程都是穩定的,有一個發射器出問題都不行。而我相信這樣對於發射器的詳細分析能夠讓諸位在紅石炮除錯過程中發現問題時迅速找到問題的根源所在
實體tnt
好了接下來我們來講實體tnt。因為實體tnt的性質與紅石炮炮體的結構有很大的關係,所以炮體的部分我會穿插在實體tnt的內容之中以保證內容的銜接。
關於實體tnt,我們先從wiki上摘下一段話,接著分析(其實也可以直接上原始碼但是好麻煩orz)
一旦被啟用後,TNT 就會變成一個實體。
它會在被啟用的TNT方塊的中心(+0.5,+0.5,+0.5)生成,它是一個邊長為0.98的正方體。
如果它被紅石或火啟用,它會在40次紅石計時(4秒/80次遊戲計時)後爆炸。
生成後,被啟用的TNT會被給予垂直速度0.2米/刻,隨機方向的水平速度0.02米/刻。
如果沒有被任何方塊卡住,它將會在平地上移動0.166m。
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
其實發射器發射tnt時,效果是一樣的
從第一句,開始,被髮射的tnt是一個實體。
這句話意味著,tnt是可以卡入方塊之中的
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
這個性質導致在活塞壓縮時可能會出問題。
我們開始第一個關於炮體的延伸
所謂的炮體,其功能就是壓縮(或者叫集中)tnt,讓tnt儘量聚集在一起,共同對彈頭進行推進。所以炮體一般分為兩個主體部分,一個用來壓縮推進用的tnt,一個用來壓縮彈頭的tnt(因為包含一個tnt的彈頭的打擊範圍往往沒有包含多個tnt的彈頭的打擊範圍大,這和實體tnt的一個bug有關)
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
這是GT索魂的一門炮裡的炮口,可以清楚地看到有兩根炮管對著此處,其中一根提供的是推進藥,而另一根提供的就是彈頭。
為了接下來的表述方便,紅石炮主體的結構會按照下圖的方式表達
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
壓縮器:對推進藥tnt起壓縮作用的裝置,未標明的話特指tnt壓縮器
炮管:在紅石炮主體中供tnt運動的部分,未標明的話特指供推進藥tnt運動的部分
推進藥爆炸點:推進藥爆炸,對彈頭產生推進的地方
彈頭供應器:顧名思義,提供彈頭的裝置
對於一個比較複雜的紅石炮,我們會按照下圖方式表述
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
推進藥一、二級壓縮器:多個壓縮推進藥tnt的裝置,按照壓縮器的工作順序分級。(彈頭壓縮器類推)
推進藥供應器組:供應推進藥的發射器組(彈頭供應器組類推)
推進藥炮管:供推進藥運動的炮管(彈頭炮管類推)
炮架:或者稱為炮口,決定彈頭被推進後的執行軌跡的部分。
對於tnt的壓縮,我們一般有三種方式:tnt壓縮、水流壓縮和活塞壓縮,我們一般以tnt壓縮為主,水流壓縮和活塞壓縮為輔
長距離的炮管運動用tnt壓縮,一般是一個壓縮器壓縮長度為六的供應器供應的tnt,因為如果再長的話壓縮器的爆炸推力就推不到了(當然縮短是沒問題的)
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
如果需要運動的距離比較長,我們也可以這麼做
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
這裡用到了tnt壓縮,水流壓縮和透門原理
由於六個發射器發射的tnt與壓縮器的距離不同,但是這些tnt要運動到相同的位置,所以,靠壓縮器近的tnt獲得的速度大但是運動距離也長,靠壓縮器遠的tnt獲得的初速度小但是運動距離短,那麼,靠壓縮器最近的那個位置的tnt可能不是最快到達指定位置的那個tnt
所以這個時候我們就需要靠在炮管中加水流來輔助
《我的世界》掃射向量炮製作圖文教程 掃射向量炮怎麼製作
流動的水讓靠壓縮器最近的tnt稍稍前移,這樣能夠更快地到達預定位置(要實現這樣的效果你需要卡時序)