BVE Trainsim CSV 檔案格式物件製作設定範例


本頁從取景開始簡易說明一個較複雜的物件的製作流程,並不會著重於指令說明。
若有相關指令不了解或不知為何這樣設定請先參考物件基本指令簡易基礎範例
如內容撰寫錯誤、意義不明處請來信指出,我會對您的問題和指正做出回覆與修正。

其實從 bve2 到了 bve4 這個階段, csv 格式對於物件來說是有點稍稍落伍了,不過還是很實用。

    物件基本指令簡易基礎範例簡易電塔實例物件製作設定    


泰安站倉庫

一、現場勘查、拍攝

現場拍攝所要景色,在拍攝盡量思索一下要如何製作物件時會最方便,心理先打個底。而拍照時記得大約記一下物體的尺寸(不用特別去量,大約尺寸即可),也可在照片中找個物體當標尺(如朋友,知道身高)。

※ 物件在路線行駛時看不見之處最好不要做。要當模型來做到尺寸正確且物件精美、完整也沒關係,
  但是不要將太多這類模型放入路線中,這樣讀取起來會很吃力。


※ 拍攝物件圖片最方便的就是利用數位相機了,但是拍攝時像數的適當選擇很重要,
  若欲製作物件結構龐大則像數盡量放大(500萬像數),
  或是物件結構不需做局部切割處理(130萬像數),
  若物件結構細小或是特寫時像數可以設定較低(30萬像數)
  當然這只是提供建議,不然在相片在切割運用後造成解析度不足就令人困擾了。




★ 範例中因為倉庫被娛樂小火車和小屋擋住了,所以拍正面會產生一些完整性問題,所以拍側面吧!
  另外補一張另一面較完整的照片取代被小屋及火車遮掉的部分。

※ 也可以想辦法分段來拍正面照片,但以我經驗來說光線會有偏差,且照片會因為鏡頭帶出變形,
  而在做圖片影像處理實在光影方面處理會較為繁複,端看各位影像處理技術與喜好囉~

二、物件計劃

在看到圖片後想一下,要使用哪些部分組成一間倉庫?正常來說要有牆和屋頂對吧!計劃一下大約的座標點及面的位置。

★ 範例計畫要做屋簷、屋頂、牆 x2、屋頂支柱,同時並列出主體的大約長寬高,定出主要的屋頂,牆之座標。

三、圖片加工

拍好的照片使用影像處理軟體來處理出所要的圖片,將計劃好的圖片部分由相片擷取下來,不需要的部分用指定透明色覆蓋。

★ 範例中擷取好的圖片分為側面牆含窗、正面牆含門、斗拱、屋頂(局部)、屋簷(備用)、招牌(備用)


※ 建議使用較高階的影像處理軟體,建議使用如下:
 一、複製原圖層兩次為第一圖層(前景圖層)和第二圖層(背景圖層)後將原始圖層刪除。
 二、調整前景圖層之亮度、對比至物件有明顯輪廓。
 三、運用指令將圖片選取出要的圖片形狀(最耗時之處,看功力了)。
 四、反轉選取(以下步驟選取輪廓請勿消除)。
 四、背景圖層去背後將前景圖層刪除。
 五、轉為索引色(index)。
 六、填上欲指定為透明色之色彩。
 七、尺寸更改。
  為何要那麼麻煩?其實是避免指定透明色因去背過程混在索引色中造成邊緣有應為透明色之接近色彩出現造成邊緣顯示不佳。
  當然如果照片所要之形狀明顯用小畫家也行啦!

混色範例(放大六倍):請將滑鼠游標移到上方看透明後之狀況,左邊為正確未混色,右邊為邊緣混色)

   


四、物件擋製作

注意!以下為物件之詳細設定方式之製作,並非完整 csv 檔案寫法,寫法範例教學請參照簡易物件製作示範教學

前面有提到現場勘查時拍照時記錄的尺寸以及物件計劃中座標點和面的位置,現在就開始設計囉!

假設─總長:7m
   總寬:5m
   總高:3.6m
   屋頂最高處離地:5m
   屋簷突出:0.5m

其實在一個物件中座標原點的設定很隨意,你可以任意設定原點的位置,是在物件中心、最左下、最右下等等…,其中也可用修改原點的指令來變動,或是在路線中再更動座標位置及高度,但是同一個檔案內其物件的座標設定原點必須設為為同一點。

設定的方式即 AddVertex, Vx, Vy, Vz

依照欲構成的設定,依每一項構成位置順序輸入各點之座標。例如:

;前側面牆含窗
AddVertex,-2.5,5.0,0;0
AddVertex, 2.5,5.0,0;1
AddVertex, 2.5,0.0,0;2
AddVertex,-2.5,0.0,0;3
………

因為在此範例中因為使用同一張材質圖,所以可以合併寫入座標。

;後側面牆含窗
AddVertex,-2.5,5,7;34
AddVertex, 2.5,5,7;35
AddVertex, 2.5,0,7;36
AddVertex,-2.5,0,7;37

也就是直接寫入 38 個座標點來製作 10 個面。

泰安車站倉庫座標點 (ddVertex)的設定
預定構成位置 前側面牆含窗 正面牆含門 斗拱x4 屋頂 後側面牆含窗
座標 Vx Vy Vz Vx Vy Vz Vx Vy Vz Vx Vy Vz Vx Vy Vz
點位 V0 -2.5 5 0 1.45 3.6 0 1.45 2.8 5.75 -0.5 5 -0.5 -2.5 5 7
點位 V1 2.5 5 0 1.45 3.6 7 3 2.8 5.75 -0.5 5 7.5 2.5 5 7
點位 V2 -2.5 0 0 1.45 0 7 3 1.5 5.75 2.5 3.3 7.5 2.5 0 7
點位 V3 2.5 0 0 1.45 0 0 1.45 1.5 5.75 2.5 3.3 -0.5 -2.5 0 7
點位 V4             1.45 2.8 4.5  2.5 3.2 -0.5      
點位 V5             3 2.8 4.5  2.5 3.2 7.5      
點位 V6             3 1.5 4.5  -0.5 5 -0.5      
點位 V7             1.45 1.5 4.5  -0.5 5 7.5      
點位 V8             1.45 2.8 2.5  -2.5 3.3 7.5      
點位 V9             3 2.8 2.5  -2.5 3.3 -0.5      
點位 V10             3 1.5 2.5            
點位 V11             1.45 1.5 2.5            
點位 V12             1.45 2.8 1.25            
點位 V13             3 2.8 1.25            
點位 V14             3  1.5  1.25            
點位 V15             1.45 1.5 1.25            

到此,點的位置已設定完畢了,接下來就是設定面。
其實面的寫法只是將各座標欲形成的顯像面的點依順時針方向將所屬之點位 V輸入,如上表數字之顏色各代表所形成的面。

指令寫為 AddFace, V1, V2, V3, ... ,Vn

例如前側面牆就是:點位 V0、點位 V1、點位 V2、點位 V3的組合。座標點寫成如下:

;前側面牆含窗
AddVertex,-2.5,5.0,0; 0
AddVertex, 2.5,5.0,0; 1
AddVertex, 2.5,0.0,0; 2
AddVertex,-2.5,0.0,0; 3
…………

那麼依照座標點的相關位置依欲顯示面順時針排列,寫成 AddFace,0,1,2,3,四點形成一面矩形的牆。

屋頂的面組合是點位 V0、點位 V1、點位 V2、點位 V3及點位 V2、點位 V3、點位 V4、點位 V5的組合。
為什麼呢?因為屋頂像一個倒V字型,中間兩點可製作兩個面,但是中間座標因為接合重複,所以省略了兩座標點,而後兩座標點位 V向前調整。

★ 範例中這是其實是屋頂轉屋簷的位置,因為想簡要說明的關係直接將其視為屋頂)

當所有的面設定完了,使用 Structure Viewer 查看應該會看到如下圖的情況。

★ 此時範例圖中顯示之顏色實際應為全白帶些陰影,為了做顯示面的識別而上顏色作為識別。


現在就要貼上材質圖了,在這再次向各位介紹材質圖幾個概念。

下圖左方是欲貼上的材質圖,右方是方便給各位對照左邊的材質圖,本圖像素尺寸原為512x256 ,因版面設定等因素尺寸略有更動。

 

※ 材質圖在貼上物件面時要設定依虛擬的座標(材質圖座標)告知程式欲貼上的材質圖需要取用的範圍為何,材質圖的原點可以不固定,
  但是在使用同一材質圖之物件上訂的原點座標必定要相同,故 Tu 與 Tv 值不見得要在圖的右上角,但是當 Tv 下為 0 ,上為 1 時,
  貼圖會上下顛倒,同理 Tu 值左為 1 ,右為 0 時,貼圖會左右顛倒,所以可以依個人所需設定座標。

※ 材質圖在使用時像素尺寸都要是 2 的平方為單位,所以最小像素尺寸為 2 ,依序為 4、8、16、32、64、128、256、512、1024…。而
  圖檔的格式,務必以 8bit(256 色)索引色模式或者 24bit(全彩)的非壓縮圖檔格式(*.bmp),其他格式尚未接受。

※ 材質圖是可以分割的,如果只要使用到材質圖的某個區域,以上面範例來說,前側面牆含窗(亮綠色)之貼圖在設定上其 Tu 及 Tv 之材
  質圖座標必大於 0.5 小於 1.0。

※ 當物件尺寸面積過大,而材質圖解析度不足,要重複使用同一貼圖時,不需製作新座標及面,利用材質圖座標做補點即可,亦即材質圖
  的 Tu 及 Tv 值可以大於 1,也可以小於-1,調整至解析度可接受為止。無論設定是大於 1 或小於 1 ,貼圖並不會上下或左右顛倒造
  成對稱。

※ 一開始時不能理解,所以無法類似本範例這樣合併材質圖也沒沒關係(檔案大小沒省多少,好整理而已)

經過以上概念說明,那麼我們可以開始貼圖了。

SetTextureCoordinates, NVertex, Tu, Tv

其實這裡是將座標點和材質圖座標做整合,就是告訴程式,我在(Vn)這一座標點時,材質圖的座標(NVertex)為何。寫成如下:

;前側面牆含窗
SetTextureCoordinates,0,1.0,0, ← NVertex = 0 , Vn = 0
SetTextureCoordinates,1,0.5,0, ← NVertex = 1 , Vn = 1
SetTextureCoordinates,2,0.5,1,
SetTextureCoordinates,3,1.0,1,
…………

 
材質圖座標 (SetTextureCoordinates)的設定
預定構成位置 前側面牆含窗 正面牆含門 斗拱x4 屋頂 後側面牆含窗
座標 Tu Tv Tu Tv Tu Tv Tu Tv Tu Tv
點位 V0 1 0 0.25 0 0.25 0 0.125 0.5 1 0
點位 V1 0.5 0 0.5 0 0 0 0 0.5 0.5 0
點位 V2 0.5 1 0.5 1 0 0.5 0 0.98 0.5 1
點位 V3 1 1 0.25 1 0.25 0.5 0.125 0.98 1 1
點位 V4         0.25 0 0.125 1    
點位 V5         0 0  0 1    
點位 V6         0 0.5 0.125 0.5    
點位 V7         0.25 0.5  0 0.5    
點位 V8         0.25 0  0 1    
點位 V9         0 0 0.125 1    
點位 V10         0 0.5        
點位 V11         0.25 0.5        
點位 V12         0.25 0        
點位 V13         0 0        
點位 V14         0

0.5 

       
點位 V15         0.25 0.5        

這樣依序輸入至指令中就完成材質圖座標設定了,然後再使用 Structure Viewer 看看辛苦製作的成果吧!



嗯?物件出現了材質圖中我們設為透明色的藍色,看來我們遺漏輸入透明色設定指令了。

透明色設定(SetDecalTransparentColor)要依自己設定的透明色 RGB 色彩輸入其設定,
例如上面範例中藍色的為 R=0 G=0 B=255,
那麼將這個設定值輸入指定透明色指令後。

SetDecalTransparentColor, Red, Green, Blue
SetDecalTransparentColor, 0, 0, 255,

這時 Structure Viewer 按下 F5 重新讀取後, 原本物件上出現指定透明色的藍色就會立刻消失啦!



※ 若是設定後指定透明色仍未消失,可能是圖檔的長寬尺寸設定方式不正確,請確認其長寬以 2 的平方為單位長。

※ 部分顯示卡當螢幕顯示色彩設定低於全彩(24位元)時,所指定的透明色會無效;或是該顯示卡不能支援現今 Direct X 版本之功能,
  亦無法使指定透明色邊緣有最佳表現。

※ 因為在設定上材質圖色彩多變化之關係,所以指定的透明色也不會都設定相同,亦即當製作樹林或山坡時時就盡量不要指定墨綠色系的
  顏色作為透明色,除了日後有需要修改圖片時可能會造成困難外,圖上有些需要但相同顏色也會一併透明化。


五、物件完成確認

當一個物件製作完成後,要再仔細檢視物件之座標是否需要做些微調,避免有面與面因為貼圖關係未能接合、物件貼圖比例怪異或是不該有透明化的地方產生透明化的狀況,做些調整則這個物件就算大功告成了。
六、將物件放入路線中


2005/5/2~5/7 草擬
2006/5/27 新增現場拍攝與圖片加工內容
2006/7/5 HTML程式碼重新排版與部分教學製作細節修改

遊戲安裝遊戲操作遊戲問題製作工具製作路線製作列車製作物件製作音效
鐵道知識製作心得檔案下載物件圖片真實場景路線風光站務紀錄本站首頁
製作感想網站推薦自我介紹音效編輯影像處理站內導覽簡易分站無用留言



Copyright © 2002~2009 Chikainn83