游戲《太空工程師》自動(dòng)采礦船:編隊(duì)采礦腳本使用說明


一切為了生產(chǎn)力!

由于我的VS的MDK更新失敗,所有我重新建立了新的腳本,后續(xù)的一些更新將會(huì)發(fā)生在新腳本里。另外藍(lán)圖使用腳本的可能不是最新的腳本,新腳本需手動(dòng)導(dǎo)入編程塊。
目錄
1、適用范圍
2、流程說明
3、采礦區(qū)的點(diǎn)的示教
4、采礦船參數(shù)設(shè)置
5、采礦船按鈕說明
6、母船參數(shù)設(shè)置
7、陀羅儀及遠(yuǎn)程控制塊安裝說明
8、運(yùn)行效果視頻

1、適用范圍:
只能在星球重力圈內(nèi)使用。編隊(duì)采礦的采礦船和母船都必須有天線,且天線的通信范圍必須能覆蓋對(duì)方。
太空采礦請(qǐng)使用此腳本:


2、流程詳解:
此流程主要是為了給想研究腳本的“太空工程師”們理解腳本用的,同時(shí)也為了讓各位“太空工程師”們,更好地去熟悉和使用礦船,以便快速理解和排除使用中遇到的一些問題。此流程為每臺(tái)采礦船核心的飛行流程,編隊(duì)飛行以此為基礎(chǔ)擴(kuò)展。
使用這套設(shè)備的關(guān)鍵是:點(diǎn)位,模式和階段。理解好這三樣就可以更好地去操作這套設(shè)備。
點(diǎn)位:可以把這臺(tái)礦船簡(jiǎn)單理解成一臺(tái)上下料的機(jī)器人,使用機(jī)器人時(shí)需要給機(jī)器人示教點(diǎn),大致操作就是把機(jī)器人末端夾具移動(dòng)到一個(gè)目標(biāo)位置,然后點(diǎn)擊示教盒上的按鈕,機(jī)器人就會(huì)記錄下當(dāng)前點(diǎn)位的坐標(biāo)信息。這臺(tái)飛船可以理解成機(jī)器人的末端夾具,將飛船移到一個(gè)目標(biāo)位置,點(diǎn)擊一個(gè)按鈕,飛船便將當(dāng)前點(diǎn)位置的坐標(biāo)信息,存入按鈕所對(duì)應(yīng)的名稱的點(diǎn)。接下來的講解大量會(huì)講到點(diǎn)位,即以此原理為基礎(chǔ)。
模式(Mode):出發(fā)(depart),返回(back),停止(stop)和返回并停止(backandstop)。
階段(Stage):0~8??梢源致缘乩斫鉃槁窂健.?dāng)所有的點(diǎn)示教完成后,飛船根據(jù)不同的點(diǎn),在點(diǎn)與點(diǎn)之間建立了飛行路徑。
不同的模式和階段,飛向的目標(biāo)點(diǎn)不同。粗略地看,每個(gè)階段都會(huì)有出發(fā)和返回兩種模式。


采礦船在成功連接后,會(huì)轉(zhuǎn)入 Stage0 階段,該階段會(huì)自動(dòng)充電、氣,并將采礦船的貨物卸入母船的礦石貨箱中。卸貨功能需對(duì)母船的貨箱進(jìn)行命名——Ore and Ice Cache——用以為采礦船指定一個(gè)卸貨目標(biāo)。只有完成充電、氣和卸貨后,飛船才會(huì)重新出發(fā)。
另外,ApproachPoint1 和?ApproachPoint2?可以設(shè)置在同一個(gè)位置,只需在同一位置分別按下那兩個(gè)位置的示教點(diǎn)即可。采礦船單機(jī)運(yùn)行時(shí)這三個(gè)點(diǎn)都可以在線修改,點(diǎn)擊完對(duì)應(yīng)的示教按鈕后立即生效。
此區(qū)域的示教按鈕都在第二頁。
接下來介紹采礦船的采礦流程,采礦船的采礦方式是豎直向下鉆,然后豎直返回。

采礦區(qū)的所有點(diǎn)都是基于 MineField1,MineField2?和 MineField3?這三個(gè)點(diǎn)計(jì)算出來,具體如何示教這三個(gè)點(diǎn)暫時(shí)放后面再講。
采礦船在前往開鉆的點(diǎn)(DrillPoint)之前,會(huì)到一個(gè)預(yù)備的點(diǎn)(DrillApproachPoint),這個(gè)點(diǎn)在開鉆點(diǎn)的正上方。到達(dá)終止點(diǎn)(EndPoint)之后,會(huì)上升回預(yù)備點(diǎn)(DrillApproachPoint),并在此點(diǎn)執(zhí)行 Stage8 ——飛船會(huì)在此懸停并從記錄表從讀出下一個(gè)鉆點(diǎn)的位置,然后才再次從此出發(fā)前往下一個(gè)預(yù)備點(diǎn)(DrillApproachPoint),然后繼續(xù)下一個(gè)鉆孔循環(huán)。
其中 Stage6?和?Stage7?只做單向移動(dòng),只發(fā)生在飛船到達(dá)了終止點(diǎn)(EndPoint)之后,并且只有出發(fā)(depart)模式。一但在這兩個(gè)階段轉(zhuǎn)變成返回(back)或返回并停止(backandstop)模式,飛船會(huì)切換成對(duì)應(yīng)的階段。此時(shí)飛船不會(huì)執(zhí)行鉆孔循環(huán),而是先飛回停船區(qū),執(zhí)行停船區(qū)的流程。

Stage3?主要用于水平飛行,切換不同的位置點(diǎn)。

3、采礦區(qū)的點(diǎn)的示教:

采礦區(qū)域是一個(gè)四邊形,只需要示教出三個(gè)頂點(diǎn),程序會(huì)自己計(jì)算出其余的所有點(diǎn)。類似給機(jī)器人碼垛劃定一個(gè)范圍。

4、采礦船參數(shù)設(shè)置

打開采礦船的編程塊,帶箭頭標(biāo)注的參數(shù)是需要設(shè)置和了解的,其余的可以忽略。
在 [ShipInformation] 下:
ShipName——設(shè)置當(dāng)前采礦船的無線電呼號(hào)。這個(gè)是與 IGC?有關(guān)的功能,用于與母船通信時(shí)區(qū)分收發(fā)信息的采礦船。編隊(duì)采礦時(shí),每臺(tái)采礦船的船名不能相同。(注意如果有多艘母船,或者一艘母船上有多個(gè)地面控制臺(tái),也必須區(qū)分礦船名稱,否則別的母船發(fā)出的信息也會(huì)影響當(dāng)前采礦船,同時(shí)當(dāng)前采礦船發(fā)出的信息也會(huì)影響別的母船)
AutoPilotName——指定一個(gè)遠(yuǎn)程控制塊給編程塊,編程塊會(huì)識(shí)別與此項(xiàng)命名相同的遠(yuǎn)程控制器。飛船如果只有一個(gè)遠(yuǎn)程控制塊并且被編程塊設(shè)置為自動(dòng)駕駛時(shí),“工程師”無法通過無線方式獲取到控制飛船的權(quán)限,所以可以通過放多一個(gè)遠(yuǎn)程控制塊,讓“工程師”來使用。為了區(qū)分這兩個(gè)遠(yuǎn)程控制器,給編程塊使用的就設(shè)置一個(gè)名稱,等同于說指定一個(gè)遠(yuǎn)程控制器給編程塊用,其余的不需要。
Connector——指定一個(gè)連接器給編程塊,也是為了防止出現(xiàn)多個(gè)同類型有設(shè)備。
Thrust Power Correction Faction——此項(xiàng)目前已暫時(shí)停用,腳本里程序仍在,但已被注釋,調(diào)整這個(gè)參數(shù)不會(huì)有任何作用。
在 [Mission]?下:
IGC——用于開啟和關(guān)閉與母船的聯(lián)系。Offline 為單機(jī)運(yùn)行狀態(tài),Online?為編隊(duì)運(yùn)行狀態(tài)。其中為?Offline?時(shí),當(dāng)前采礦船也不會(huì)接收母船發(fā)出的??奎c(diǎn)更新的坐標(biāo)。
SpeedLimit——設(shè)置飛船的最大飛行速度,單位:m/s。程序目前使用距離比例的方式來限速。例如當(dāng)設(shè)置成50時(shí),飛船在與目標(biāo)點(diǎn)距離超過50米時(shí),按50m/s的限速飛行,當(dāng)距離小于50時(shí),按距離的平方根值來限速運(yùn)行,當(dāng)計(jì)算值小于1m/s時(shí),按1m/s的限速飛行直到到達(dá)目標(biāo)點(diǎn)時(shí)停止。此方法目前用在編程塊的 UpdateFrequency?為 Update100 時(shí)效果良好。
Height——DrillApproachPoint?與 DrillPoint?之間的高度差,也就是飛 Stage4?的那段距離,單位:米。這一項(xiàng)只在進(jìn)入和離開采礦區(qū)時(shí)使用,為防止在距離和其它的物體相碰,這一項(xiàng)一般設(shè)置得比較高。
Height2——DrillApproachPoint?與 DrillPoint?之間的高度差,也就是飛 Stage4?的那段距離,單位:米。與上一項(xiàng)的區(qū)別是,這一項(xiàng)一般用在鉆孔循環(huán)中,高度一船低于上一項(xiàng),以減少飛行的路程。
Depth——設(shè)置采礦的深度,單位:米。該腳本以10米為一層,不足10米的按10米算。例如設(shè)置為4,會(huì)挖10米;設(shè)置為14會(huì)挖20米,但是會(huì)分兩層挖;設(shè)置為24米會(huì)挖30米,但是會(huì)分三層挖……
DrillPointNum——顯示當(dāng)前采礦船在挖的點(diǎn)位的序號(hào)。強(qiáng)制修改數(shù)值,采礦船會(huì)跟著改變挖礦的點(diǎn)位。
DrillPointTotal——顯示采礦點(diǎn)位的總數(shù)量。這是一個(gè)由程序計(jì)算得出,當(dāng)?shù)V區(qū)的點(diǎn)設(shè)置完成后,此項(xiàng)會(huì)有新結(jié)果。強(qiáng)制修改程序可能會(huì)報(bào)錯(cuò)。
Interval——設(shè)置鉆點(diǎn)之間的間隔,單位:米。
DrillSpeed——設(shè)置鉆頭挖礦時(shí)的進(jìn)給速度,單位:m/s。

5、采礦船按鈕說明:


以下是對(duì)應(yīng)位置的按鍵說明,設(shè)置是所有字母必須大寫。
1、2、3、4——這四個(gè)指令分別對(duì)應(yīng):停止(stop),出發(fā)(depart),返回(back)和返回并停止(backandstop)。其中返回并停止是指飛船回到對(duì)接點(diǎn),完成充電、氣和卸貨后,不再出發(fā),但該指令會(huì)在以下三種情況下失效:飛船電量低于30%,飛船氣量低于30%,貨物量為100%。上述三種情況下,飛船會(huì)強(qiáng)制為返回(back)狀態(tài)。另外如果采礦船的 IGC?為 Online,按下出發(fā)(depart),采礦船會(huì)向母船申請(qǐng)采礦點(diǎn)的序號(hào),并按母船發(fā)來的采礦點(diǎn)的序號(hào)前往對(duì)就的采礦點(diǎn)。
UL——解鎖。該功能是解鎖的預(yù)備操作,也就是不會(huì)真解鎖連接器。當(dāng)飛船與連接器連接后,會(huì)有以下狀態(tài):推進(jìn)器全關(guān)閉,電池全部處于充電狀態(tài),氣罐處于充氣狀態(tài)。如果此時(shí)直接按P鍵,飛船會(huì)直接從連接器上掉下來。因此要想解鎖鏈接器,先按一下UL。按下后程序會(huì)執(zhí)行以下動(dòng)作:推進(jìn)器全打開,電池改為自動(dòng)狀態(tài),氣罐取消充氣狀態(tài)。
OKR——一鍵返回。無論什么狀態(tài)下,按下此按鍵,飛船會(huì)改為返回(back)狀態(tài),并在此基礎(chǔ)上,將階段改為 Stage3,也就是飛船會(huì)直接向?ApproachPoint2?飛。該功能可以配合 4?組合使用,先按 OKR?讓飛船轉(zhuǎn)為 Stage3,再按 4。
D1、D2、D3——分別示教 DockingPoint、ApproachPoint1?和?ApproachPoint2。采礦船單機(jī)運(yùn)行時(shí)這三個(gè)點(diǎn)都可以在線修改,點(diǎn)擊完對(duì)應(yīng)的示教按鈕后立即生效。當(dāng)采礦船與母船處于通信狀態(tài)(IGC?為?Online)時(shí),按下任意一按鍵示教,會(huì)自動(dòng)關(guān)閉與母船的通信(IGC?變?yōu)?Offline),示教完成后需要按 D4?手動(dòng)開啟與母船的通信。
D4——發(fā)送示教好的?DockingPoint、ApproachPoint1?和?ApproachPoint2?這三個(gè)點(diǎn)的位置信息給母船,同時(shí)將 IGC?的狀態(tài)改為 Online。此時(shí)飛船加入采礦編隊(duì)。(此按鈕按下后,母船會(huì)有兩段操作,先是將接收到的坐標(biāo)與母船的遠(yuǎn)程控制器的當(dāng)前位置坐標(biāo)進(jìn)行矩陣計(jì)算,并得出一個(gè)基于母船遠(yuǎn)程控制器為原心的局部坐標(biāo)系的方向向量記錄在母船的編程塊的自定義數(shù)據(jù)內(nèi)。第二段是向全體 IGC Online?的飛船廣播一次新的停泊點(diǎn)坐標(biāo),使用記錄的方向向量與遠(yuǎn)程控制器的當(dāng)前位置坐標(biāo)再進(jìn)行一次矩陣計(jì)算,并得出一個(gè)全局坐標(biāo),并將此坐標(biāo)向外廣播,此操作可能會(huì)帶來一個(gè)短暫且明顯的卡頓。另外,當(dāng)母船發(fā)生一次位置變動(dòng),并且線速度和角速度降為0時(shí),會(huì)再執(zhí)行一次第二段操作。)
D5——將?IGC?的狀態(tài)改為 Offline。注意,此時(shí)采礦船也不會(huì)接收母船的停泊點(diǎn)位的坐標(biāo)的廣播。
M1、M2、M3——分別示教?MineField1、MineField2?和?MineField3。其中按下 M3?會(huì)結(jié)合鉆孔點(diǎn)間隔、采礦深度,進(jìn)行鉆孔點(diǎn)坐標(biāo)計(jì)算,將所有點(diǎn)以 ini?格式存入本地編程塊中,這些點(diǎn)的信息不會(huì)顯示出來,并將采礦點(diǎn)序號(hào)設(shè)置為1(意思是準(zhǔn)備去挖第一個(gè)點(diǎn))。當(dāng)采礦船與母船處于通信狀態(tài)(IGC?為?Online)時(shí),按下任意一按鍵示教,會(huì)自動(dòng)關(guān)閉與母船的通信(IGC?變?yōu)?Offline),示教完成后需要按?D4?手動(dòng)開啟與母船的通信。
M4——根據(jù)本地記錄的?MineField1、MineField2?和?MineField3?三個(gè)點(diǎn),結(jié)合鉆孔點(diǎn)間隔、采礦深度,進(jìn)行鉆孔點(diǎn)坐標(biāo)計(jì)算,將所有點(diǎn)以 ini?格式存入本地編程塊中,這些點(diǎn)的信息不會(huì)顯示出來,并將采礦點(diǎn)序號(hào)設(shè)置為1(意思是準(zhǔn)備去挖第一個(gè)點(diǎn))。此操作不會(huì)中斷通信,也不會(huì)進(jìn)行任何示教,一般為單機(jī)時(shí)使用。
M5——將本地記錄的?MineField1、MineField2?和?MineField3?三個(gè)點(diǎn),以及鉆孔點(diǎn)間隔、采礦深度,發(fā)送給母船,同時(shí)打開 IGC。母船在接收到當(dāng)前礦船發(fā)送的礦區(qū)信息后,自己也會(huì)結(jié)合鉆孔點(diǎn)間隔、采礦深度,進(jìn)行鉆孔點(diǎn)坐標(biāo)計(jì)算,將所有點(diǎn)以 ini?格式存入本地編程塊中。完成計(jì)算后,會(huì)向所有 IGC Online?的采礦船廣播礦區(qū)信息,這些采礦船在接收信息后也會(huì)生成一份采礦點(diǎn)坐標(biāo)集以 ini?格式存入自身編程塊的當(dāng)中。
M6——向母船申請(qǐng)礦區(qū)信息,在接收到礦區(qū)信息后,會(huì)執(zhí)行一次 M4。

6、母船參數(shù)設(shè)置:

母船的編程塊內(nèi)的自定義數(shù)據(jù)也是以 ini?格式存儲(chǔ)。該腳本提供最多10臺(tái)采礦船的控制,一般建議只用其中4臺(tái)編隊(duì),船越多發(fā)生碰撞的概率越大。
每臺(tái)采礦船的信息都獨(dú)立建立了一個(gè) Section?來存儲(chǔ),也就是每個(gè) [Ship1~10]?開頭。其中只要關(guān)注 ShipName?這一項(xiàng),與采礦船的 ShipName?相呼應(yīng)。
組隊(duì)采礦時(shí),使用其中一臺(tái)采礦船示教好礦區(qū)點(diǎn)位后,將點(diǎn)廣播出去(M5),然后去每臺(tái)采礦船上點(diǎn)一下 2?出發(fā)(depart)便可開始編隊(duì)自動(dòng)采礦的流程。一般習(xí)慣是讓示教礦區(qū)的船執(zhí)行一次?OKR 讓礦船自己回去充一下電,而且此時(shí)飛船的階段也不明確,也不用手動(dòng)去設(shè)置飛船的階段值。如果其它的采礦船沒有開啟 IGC,可以去每臺(tái)礦船上手動(dòng)點(diǎn)一下 M6 申請(qǐng)礦區(qū)信息,然后再點(diǎn) 2 出發(fā)(depart)。


按鈕的操作方法可以翻看下文的視頻。按鈕的指令如下(指令需全部大寫):
Up——UP
Down——DN
Back——BK
Enter——EN

7、陀羅儀及遠(yuǎn)程控制塊安裝說明:
陀羅儀在手動(dòng)使用時(shí)可以不注意方向,但實(shí)際上它是有分方向,大家可以到陀羅儀的選項(xiàng)里頭,使用越級(jí)控制手動(dòng)拉一下滑塊感受一下方向,這里由于腳本已經(jīng)寫死,方向必須與下方圖片一致。不一致會(huì)導(dǎo)致飛船無法修正自身姿態(tài)。
編程塊所控制的那個(gè)遠(yuǎn)程控器塊必須安裝在飛船正中央,飛船上下升降時(shí)會(huì)發(fā)生水平自旋,其自旋的中心在遠(yuǎn)程控制塊的中心,為的是防止在礦坑中發(fā)生嚴(yán)重碰撞,以及確保挖的坑是以遠(yuǎn)程控制塊為中心,否則可能會(huì)造成點(diǎn)與點(diǎn)之間有沒挖到的體素,影向下一步的挖掘。

8、運(yùn)行效果視頻:



