模擬器組 | 2022暑期學(xué)習(xí)建議


?
組別介紹
模擬器組是機(jī)器人實(shí)驗(yàn)室中較新的組別,主要負(fù)責(zé)每個(gè)賽季 RMUL、RMUC 等 RoboMaster 賽事模擬器的開發(fā)。開發(fā)模擬器的最主要目的是方便參賽操作手熟悉地圖、演練戰(zhàn)術(shù),隨著模擬器影響力的增大,它也可服務(wù)于校內(nèi)賽、跨地域線上賽等辦賽需求。
目前,我們已經(jīng)發(fā)布了2021Simulator和 2022SimulatorX 兩款可用的模擬器,也在逐步探索模擬器融入視覺、電控等真車研發(fā)環(huán)節(jié)的潛力。

工作環(huán)境搭建
“工欲善其事,必先利其器?!痹谧约旱碾娔X上搭建好趁手的工作環(huán)境是開始學(xué)習(xí)的第一步。模擬器開發(fā)流程中,我們用到的軟件有 Uniy、Rider 和 Blender。
?
#1?必備軟件?
1. Unity 2020.3.22f1 編輯器(必備)
Unity 引擎(https://unity.com)是我們最主要的工作環(huán)境。在安裝?Unity HUB?完成之后,請從:https://unity3d.com/get-unity/download/archive ?頁面中找到?2020.3.22f1?版本編輯器,并調(diào)起 Unity HUB 進(jìn)行安裝。安裝正確版本的編輯器非常重要。
2. JetBrains Rider 編輯器(必備)
你可以通過教育郵箱申請到免費(fèi)的 JetBrains 學(xué)生授權(quán),并下載安裝。在暑期學(xué)習(xí)過程中,你也可以直接使用 Unity?默認(rèn)安裝的?Visual Studio 2019?編輯器。但在模擬器組正式工作中,我們會統(tǒng)一使用 JetBrains Rider?編輯器。
3. 2.8版本以上的Blender(必備)
Blender 是我們使用的三維建模軟件。如果之前沒有使用 Blender 建模的經(jīng)驗(yàn),我們推薦學(xué)習(xí)使用最新版本的 Blender。如果過去曾經(jīng)安裝過Blender,你也需要檢查軟件版本是否在2.8以上。
當(dāng)然,你也可以選擇其他軟件進(jìn)行建模學(xué)習(xí),如 Cinema4D, 3ds Max, Maya 等。但需要注意的是,工業(yè)級的?CAD 不在推薦學(xué)習(xí)之列,因其面數(shù)過高,超出了模擬器開發(fā)的需求。
4. Git 命令行的使用(必做)
除了三個(gè)必備軟件,你也需要學(xué)會各種?Git 命令行的使用,包括 init、add、commit、push、pull 等。當(dāng)然,在掌握基礎(chǔ)命令行之后,你也可在Rider上進(jìn)行操作。
?
#2?學(xué)習(xí)建議?
1. Unity官方教程:
https://learn.unity.com/mission/programming-basics?
https://learn.unity.com/mission/programming-simple-functionality?
https://learn.unity.com/project/chu-ji-bian-cheng
https://learn.unity.com/project/zhong-ji-bian-cheng
2. 物理系統(tǒng)相關(guān)教程:
https://space.bilibili.com/28562838/channel/seriesdetail?sid=1269173
3. C# 腳本語言學(xué)習(xí):
https://www.bilibili.com/video/BV1ys411J7Pn?share_source=copy_web&vd_source=8412a1ae01bbaaf15b07a9e1d32c533b
4. 建模學(xué)習(xí):
https://www.bilibili.com/video/BV19t4y1m7aR?share_source=copy_web&vd_source=8412a1ae01bbaaf15b07a9e1d32c533b

學(xué)習(xí)任務(wù)介紹
?
#1?任務(wù)目標(biāo)?
暑期學(xué)習(xí)的目標(biāo)有三點(diǎn)。首先,學(xué)著完成示例教程中的功能,然后逐步整合成為功能完善的demo,以幫助你熟悉 Unity 編輯器的使用。其次,認(rèn)識和了解面向?qū)ο蟮木幊?,并了解其設(shè)計(jì)模式。最后,具有一定的建?;A(chǔ)。
?
#2?任務(wù)的六個(gè)板塊?
1. 做出可控制的裝甲車;
2.?做出可發(fā)射子彈的炮臺;
3. 整合板塊1和2,可移動、可旋轉(zhuǎn)打擊的炮臺裝甲車;
4. 建模RMUC基地模型,并將導(dǎo)入U(xiǎn)nity為其設(shè)置血條;
5.實(shí)現(xiàn)隨機(jī)生成增益寶石及進(jìn)攻敵人;
6. 整合各個(gè)部分并打包為完整的基地保衛(wèi)戰(zhàn)游戲,面試時(shí)驗(yàn)收;
在各項(xiàng)任務(wù)要求中,除加分項(xiàng)以外都是必做項(xiàng)。

學(xué)習(xí)任務(wù)詳細(xì)
?
#1?制作可控制的炮臺裝甲車?
任務(wù)目標(biāo):
在Unity引擎中,根據(jù)教程及素材制作可控制的車輛。
教程:
1.https://docs.unity3d.com/cn/2021.2/Manual/InstantiatingPrefabs.html
2.?https://learn.unity.com/project/unit-1-driving-simulation?
3. 學(xué)習(xí)建議中的Unity教程
任務(wù)要求:
【實(shí)現(xiàn)炮臺裝甲車基礎(chǔ)控制功能】
1. 實(shí)現(xiàn)車輛底盤四個(gè)方向的簡單移動。
2.(加分項(xiàng))實(shí)現(xiàn)四個(gè)輪子獨(dú)立仿真,引入PID邏輯;
3.?實(shí)現(xiàn)鼠標(biāo)控制炮臺視角移動;
4. 實(shí)現(xiàn)按下F分別切換第三人稱視角、炮臺第一人稱視角以及駕駛員第一人稱視角。
【實(shí)現(xiàn)發(fā)射子彈】
1. 根據(jù)槍口姿態(tài),生成子彈,并使子彈按初速度方向飛出。
2. 使子彈真實(shí)的物理表現(xiàn)(下墜、反彈等)。
3.(加分項(xiàng))實(shí)現(xiàn)彈道散布。
你將學(xué)到:
1. 對Unity編輯器界面有基本認(rèn)識;
2. 對C#腳本的編寫有基本認(rèn)識;
3. 熟悉Unity提供的部分常用的API。
?
#2?實(shí)現(xiàn)隨機(jī)生成寶石及進(jìn)攻敵人
任務(wù)目標(biāo):
制作會自主運(yùn)動、識別到目標(biāo)后會自動瞄準(zhǔn)、反擊的哨兵機(jī)器人。
教程:
https://learn.unity.com/project/unit-4-gameplay-mechanics?
任務(wù)要求:
【隨機(jī)生成增益寶石】
1. 第一個(gè)寶石生成,并于其被捕獲后第15秒生成第二個(gè);?
2. 增益寶石可提高炮臺子彈的射速以及車輛的運(yùn)動速度,持續(xù)8秒。
【隨機(jī)生成進(jìn)攻敵人】
1. 敵人從場地的各個(gè)位置生成。生成位置需在以基地為圓心、半徑自行設(shè)置的范圍外;
2. 敵人會自動朝著基地移動。
【實(shí)現(xiàn)扣血邏輯】
當(dāng)敵人進(jìn)入基地一定范圍,敵人自爆,對基地造成傷害?;匮恳约皵橙藗α孔孕性O(shè)計(jì)。
你將學(xué)到:
1. 簡單的協(xié)程使用(在后續(xù)開發(fā)任務(wù)中使用頻率極高);
2. Unity中相機(jī)視角的使用;
3. 如何在場景中生成預(yù)制件等;
4. 進(jìn)一步熟悉Unity的功能。
?
#3?建模并實(shí)現(xiàn)基地功能
任務(wù)要求:
使用建模軟件按照規(guī)格圖片進(jìn)行基地建筑的建模、導(dǎo)入,并實(shí)現(xiàn)整體游戲邏輯。
素材(請?jiān)赗M官網(wǎng)提供的RMUC規(guī)則手冊中尋找):
1. 基地的規(guī)格圖片;
2. 基地效果圖。
任務(wù)要求:
【基地建模】
1.使用建模軟件進(jìn)行基地的建模并導(dǎo)入U(xiǎn)nity;
2.(加分項(xiàng))對模型進(jìn)行UV拆分、材質(zhì)繪制等。
【基地功能實(shí)現(xiàn)】
1. 使用 shaderGraph 等功能,創(chuàng)建用于表示基地血量高低的發(fā)光燈條?
2. 使基地在被敵人打擊時(shí)扣血。
【成果結(jié)合】
1.將基地和上述兩個(gè)任務(wù)的機(jī)器人及場地合并;
2.游戲邏輯為:玩家操控炮臺裝甲車,對隨機(jī)生成的敵人發(fā)起反擊,阻止敵人對基地造成傷害,當(dāng)基地血量為0時(shí)游戲結(jié)束;
3.(加分項(xiàng))設(shè)計(jì)重生按鈕等方便游戲推進(jìn)的小組件。
你將學(xué)到:
1. 完整的Unity工作流程;
2. 建模的基本流程;
3. Unity中的shaderGraph功能的使用;
4. 學(xué)會Unity中對象之間的交互。

任務(wù)驗(yàn)收
在完成所有任務(wù)后,你需要測試并保證整個(gè)軟件的可玩性(控制正常、機(jī)器人功能正常、邏輯正常觸發(fā)),并將其打包為?Windows 64位可執(zhí)行文件。在?Github?上創(chuàng)建倉庫后,結(jié)合?Git-LFS,將你的?工程文件全部提交到 Git 倉庫中,然后將你的可執(zhí)行文件提交到倉庫的?Release?中。
在查看工程實(shí)現(xiàn)前,可執(zhí)行文件會作為任務(wù)驗(yàn)收的優(yōu)先手段,請保證其正常運(yùn)行!我們在招新面試時(shí)會對任務(wù)完成度進(jìn)行考察,規(guī)劃好自己的時(shí)間,加油完成它。

小貼士
實(shí)踐是檢驗(yàn)理論的一個(gè)重要手段,面試的時(shí)候會考核大家實(shí)踐任務(wù)的完成情況,大家一定要用心完成。
面試時(shí)請攜帶能夠代表個(gè)人水平的比賽作品或展示小任務(wù)的完成情況,詳情請見后續(xù)招新咨詢qq群通知~


文案 / 模擬器組
編輯 / 張嘉俊
美工?/ 胡鈺瑩
審核 / 徐心卓




