向 玲,楊 揚
(西南交通大學 信息科學與技術學院,成都 611756)
隨著我國鐵路的快速發展,對鐵路信號相關專業的人才需求越來越大,目前,國內很多高校均開設了鐵路信號專業。由于高等院校往往缺乏實際的信號設備[1],在教學過程中通常采用2D 圖紙展示,而2D 圖紙展示的信號設備不夠立體直觀,且受其結構復雜、布設分散、聯動復雜等條件限制[2],使得學生對相關理論難以深入理解和掌握。3D 技術的應用,為教學過程中信號設備的展示提供了新的途徑。
目前,3D 技術主要應用在地圖仿真、駕駛系統仿真、船舶海洋仿真、場景展示、游戲開發、建筑、航天及外科手術等領域[3-5],在鐵路信號專業的應用相對較少,本文利用3D MAX 的建模功能和 Unity 3D 的動畫仿真功能,結合模型與場景,設計基于3D 技術的轉轍機仿真操作平臺。
轉轍機仿真操作平臺架構,按功能劃分為設備與環境模型、用戶體驗交互界面、3D 動畫展示、通信,共4 個模塊,如圖1 所示。
1.1.1 設備與環境模型模塊
本模塊是平臺的基礎,主要制作操作平臺中所用的模型。轉轍機與環境的3D 模型決定了場景的真實度與還原度,該模塊主要遵循還原度和美觀度2個原則。還原度描述的是轉轍機在3D 制作中要盡可能接近真實情況,美觀度是在還原度的基礎上給予視覺上的享受[6-8]。
如圖1 所示,模塊分為2 個部分:3D 轉轍機模型和3D 環境模型。3D 轉轍機模型可以進一步分為轉轍機外部模型和轉轍機內部模型;3D 環境模型主要由山、樹、道岔等多個模型組合而成。
1.1.2 用戶體驗交互界面模塊

圖1 轉轍機仿真操作平臺架構
用戶體驗交互界面模塊用于還原真實車站場景,并增添了在場景中用鼠標模擬行走、動畫展示轉轍機等功能,進一步提高用戶體驗滿意度。
如圖1 所示,該模塊由轉轍機展示界面、全局界面和漫游界面組成[9]。
漫游界面用鼠標或者鍵盤作為媒介,實現對整體場景的觀察和控制,類似人在真實環境中進行巡游,主要包括場景的放大縮小,視覺的四周移動,以及視覺的旋轉;全局界面可以對場景進行俯瞰;轉轍機展示界面可實現結構觀察、動畫展示,以及3D 顯示。
該模塊有2 個輸入端:(1)接收用戶輸入交互需求,界面響應對應需求,展示相關內容;(2)接收轉轍機轉向信息,切換展示界面。交互界面是實現人與軟件實時信息交換的重要界面。
1.1.3 3D 動畫展示模塊
3D 動畫展示基于轉轍機的動作原理和現實情況。根據轉轍機不同的狀態信息將轉轍機狀態分為定位、反位及四開。根據轉轍機狀態在界面展示相關動畫,包含解鎖、轉換、鎖閉整個動作過程。動畫制作時,對不同結構進行動畫制作,最后進行動畫組合。3D動畫展示模塊以設備與環境模型模塊提供的實體作為動畫制作基礎,接收站內道岔解析后的信息和轉轍機動畫驅動信息,向用戶體驗與交互界面模塊輸出轉轍機轉向信息。
3D 動畫主要依據轉轍機的動作原理和轉動鎖閉邏輯。Unity 3D 中的動畫模塊一般切割成2 個動畫,形成控制動畫邏輯。
1.1.4 通信模塊
通信模塊主要實現聯鎖軟件和上位機軟件之間的通信。該模塊分為采集端和驅動端:采集端采集并解析站內道岔狀態信息,驅動端輸出轉轍機動畫驅動信息。
通信采用TCP/IP(Transmission Control Protocol/Internet Protocol)協議,實現通信的關鍵點在于對轉轍機狀態的采集與驅動。定義Socket 通信函數來實例化客戶端的對象,響應Socket 通信函數,對采集的數據進行分析和判斷,收到服務器的響應,實現3D 顯示。
平臺設計流程如圖2 所示:(1)建立設備3D 模型;(2)建立整體3D 環境和用戶交互界面;(3)完成通信模塊的數據采集和動畫驅動。

圖2 平臺設計流程
3D 模型制作的關鍵在于利用3D MAX 軟件建模。
3D 模型分為基本物體和復合物體,基本物體采用基本模型結構,如球、多面體、線等。復合物體需要將物體分為不同基本物體,采取布爾等操作實現。
對于復雜的模型無法使用基本物體進行模型搭建時,需要采用樣條線編輯。每個不規則3D 物體都可以看作是由不規則2D 圖形增加厚度形成,而不規則2D 圖形可以看作是由不同樣條線組合而成,利用不同樣條線組合,擠出相應樣條線,可形成不規則復合圖形。除此之外,對齊陣列調整操作,用于批量處理規律分布的多個相同模型[8]。
除了相關操作上的技術難度,由于轉轍機模型存在一定的結構特殊性,在模型建立與組合的過程中需要對不同的模型進行結構組合,最后進行視覺上的渲染工作。
轉轍機建模的技術路線如圖3 所示。

圖3 轉轍機3D 建模技術路線
以動靜接點模型建立為例。動靜接點的模型由3 部分組成:(1)幾何體實現動接點圓柱體;(2)樣條線編輯實現螺旋線;(3)復雜幾何體實現基本框架。第1 動接點結構大小需要與接點缺口的結構大小契合,第2 動接點下方模型需要與表示桿的缺口吻合。整體的高度既要做到貼近現實,又要做到整個表示部分相對協調。
實現交互界面的關鍵是攝像機的設置、腳本函數的編寫及鼠標鍵盤的控制。
攝像機的操作是該部分的主要難點和關鍵點,對攝像機的基礎設置是界面完成的重要基礎。攝像機的初始位置控制界面進入的初始視角,確定整個界面不同坐標軸方向的靈敏度和移動速度,需要對不同視角進行一定的范圍界定。
鼠標、鍵盤控制:確定鼠標基本位置,確定鼠標滾輪的縮放靈敏度。完成鼠標和攝像機操作需要設定更新函數,更新函數中,需要對每一幀操作,定義3 個主要腳本函數,分別是 cameraRotate,camera-Move 和 scaleChange,3 個函數分別實現旋轉、移動和場景切換功能,其中,實現旋轉和移動功能的2個函數的編寫比較復雜。
(1)cameraRotate 函數:旋轉函數執行流程如圖4 所示。判斷鼠標右鍵是否按下,獲取x 軸、y 軸的旋轉角度,處理獲得的值并控制在一定范圍內,最后給x、y 賦值。
(2)cameraMove 函數:移動函數執行流程如圖5 所示。以鼠標中右鍵的狀態作為判斷依據,需要獲取鼠標前后位置的更新值,最后移動攝像機。

圖4 攝像機旋轉函數執行流程

圖5 攝像機移動函數執行流程
對轉轍機來說,動畫表現轉轍機的整個動作過程,包括解鎖、轉換、鎖閉。在實現動畫制作時,不同結構需要制作不同動畫,最后進行動畫拼接。
動畫制作的關鍵在于平移動畫制作及旋轉動畫制作。關鍵幀是控制和實現動畫的重要工具[8-9],關鍵幀指的是動畫展示的關鍵時間點,在動畫前后插入關鍵幀和變化的關鍵位置點,兩個關鍵幀之間自動填充相應平移或旋轉動畫。動畫制作技術路線如圖6 所示。
在實驗室內,采用Window 8 作為運行環境,在Visual Studio 2017、3D MAX 和Unity 3D 開發環境下,基于面向對象程序設計方法、TCP/IP 通信技術,使用C#、C++語言編程,實現轉轍機仿真操作平臺。本文從3 個方面展示平臺仿真結果。

圖6 轉轍機動畫制作技術路線
ZYJ7 型轉轍機的整體結構(包含轉轍機外殼、電動機、動靜接點等),如圖7 所示;外鎖閉裝置(包含鎖閉桿),如圖8 所示。ZD6 型轉轍機的整體結構(包含轉轍機外殼及內部基本結構),如圖9所示。

圖7 ZYJ7 型轉轍機主機3D 模型

圖8 ZYJ7 型外鎖閉裝置模型

圖9 ZD6 型轉轍機主機3D 模型
主要展示各子界面,包含俯瞰整個場景的地形輪廓圖、轉轍機結構圖、轉轍機視角圖,以及可以實現場景漫游的場景仿真圖。地形場景輪廓圖展現了整個場景的大致形態,場景中包含的山體、軌道、地面等,如圖10 所示。轉轍機視角圖展示了ZYJ7型轉轍機主機3D 模型靜態基本結構,如圖11 所示。全局界面場景圖展示了當用鼠標、鍵盤在場景中操作時用戶看到的界面,如圖12 所示。

圖10 地形場景輪廓

圖11 ZYJ7 型轉轍機主機3D 模型靜態基本結構

圖12 全局界面場景
初始狀態下,2D 站場圖中的道岔處在定位狀態,觀察3D 場景中轉轍機從定位到反位的動作過程,最后保持在反位狀態。轉轍機處于定位狀態,如圖13所示;轉轍機經轉換,狀態變至反位,紅色圓圈部分位置發生了改變,如圖14 所示。

圖13 轉轍機定位場景

圖14 轉轍機反位場景
本文設計并實現了轉轍機操作平臺中對轉轍機內部結構仿真、場景漫游等多個功能,達到預期設計目的,滿足教學實踐需求。目前,該平臺已在西南交通大學實驗室投入使用,獲得較好效果。此外,平臺預留了設備接口,后期可以添加更多信號設備,也可以根據CAD 圖紙自動生成站場,將工程設計與3D 場景結合,實現具有設計、預覽、故障檢修及培訓功能的一體化平臺。