Trainz/使用 Blender 建立法線貼圖
|
本教程的靈感來自 Trainz 內容創作論壇上的許多討論,以及作者對為 Trainz 建立法線貼圖的興趣。Paul Hobbs 在他的優秀 Blender 教程中討論了法線貼圖[1],這些教程可以在他的網站上找到。這些教程是為早期版本的 Blender 編寫的,Blender 2.5 的介面與之有很大不同。
有一些關於 Blender 中法線貼圖的 You Tube 影片,但以下影片推薦觀看
- [blender 2.5 法線貼圖教程 (HY6-RtGwfLo)] - 由 Blender Nerd 製作
- [Blender 法線貼圖教程 (mU-cSUSR0Vs)] - 由 d123s404 製作
本教程演示瞭如何使用從法線貼圖紋理和簡單的漫反射(彩色)紋理建立的材質,在平板上模擬鉚釘。然後將該材質應用於一個簡單的立方體的側面,該立方體用作 Trainz 中的場景資源。
在下面的步驟中,有一些操作可能與您在 Trainz 中建立內容的正常方法不同。沒關係。只需使用適合您的方法即可。本教程中將資原始檔從工作資料夾複製到 Trainz 編輯資料夾的方法僅為簡化操作。作者使用 Andi06 的 AssetX[註釋 1] 程式[2] 來管理此過程。
本教程在 Blender 中使用圖層來臨時將物體移開。這些圖層的編號包含在 Blender 手冊中[3]。基本上,頂行上的 10 個圖層框從 1 到 10 編號,底行從 11 到 20 編號。
本教程中的一些操作需要您處於物件模式或編輯模式。為確保您處於正確的模式,本教程將提醒您正確的模式。
- 在 Blender 中建立物體和使用 Blender Trainz 匯出器的經驗。
- 在 Trainz 中建立資源的經驗。
您將需要一個鉚釘網格來進行此練習。出於 Trainz 的目的,鉚釘可以簡單地是一個半球,獲得合適鉚釘的最簡單方法是下載 Paul Hobbs 網站上的 Bits Box(駕駛室控制)。集合中有一個適合的 rivet.blend 檔案。將 rivet.blend 的副本放在已知位置。
演示如何使用 Blender Bake 選項在 Blender 中建立法線對映物體。物體從 Blender 匯出並匯入 Trainz 作為新的場景資源。
- Blender 2.5 (2.57.x 或 2.58.0)
- Blender Trainz 匯出器 (0.96 版本)
- Trainz Simulator 12 (build 47059) (TS9 和 TS10 也應該可以工作,但尚未由作者測試)
- 一個無壓縮 TGA 格式的彩色紋理檔案。只需一個黑色、紅色或藍色檔案即可。它必須符合 Trainz 紋理檔案的標準。
- Blender 2.5 (2.57.x 或 2.58.0)
- Paul Hobbs 的 Bits Box 中的物體 http://www.44090digitalmodels.co.uk/bitsbox/cab_controls.html
- Paul Hobbs 的 Bits Box 中的物體 http://www.44090digitalmodels.co.uk/bitsbox/cab_controls.html
在本教程完成後,您應該在 Trainz 中擁有以下資源。

- 開啟 Trainz 內容管理器並建立一個新的場景資源。將資源名稱更改為“Normal Test”。記下 KUID 號並儲存資源。由於我們還沒有網格,可以忽略錯誤。退出內容建立者 Plus。
- 開啟 Trainz 內容管理器並建立一個新的場景資源。將資源名稱更改為“Normal Test”。記下 KUID 號並儲存資源。由於我們還沒有網格,可以忽略錯誤。退出內容建立者 Plus。
- 提交資源,忽略錯誤並再次開啟進行編輯。這將更新資源名稱並確保資源在編輯資料夾中被正確命名。
- 提交資源,忽略錯誤並再次開啟進行編輯。這將更新資源名稱並確保資源在編輯資料夾中被正確命名。
- 在你的 Blender 使用者區域建立一個新資料夾並命名為“Normal Test”。
- 將 “…\Auran\...\UserData\Editing\Normal Test” 資料夾中的 config.txt 複製到你的新 Blender 資料夾中。我們稍後會編輯 config.txt。
- 啟動 Blender 並將預設專案儲存為 Blender Normal_Test 資料夾中的 Normal_Test.blend。
- 物件模式
- 標準立方體有點大,所以將其在所有軸上縮放到 0.5,或者只是將 X、Y 和 Z 尺寸調整為 1。
- 更改 Z 位置值,將立方體的底部移到網格地板的水平面上。
- 將比例和位置應用於立方體(Ctrl A)。
- 將立方體移動到圖層 6。我們稍後會使用它。
- 將 3D 遊標定位在零 (0,0,0)(Shift C)。
- 新增一個新的平面網格並將其命名為“lo poly”。
- 使用 7 鍵盤數字鍵更改為頂檢視。
- 使用尺寸值調整大小或將平面縮放到一個 Blender 單位的正方形。
- 應用比例。如果你使用尺寸值調整了平面,這也很必要。
- 在屬性編輯器中,選擇物件資料圖示(三角形),開啟法線捲曲並取消選中雙面。這不是嚴格必要的,但匯出器會對此發出警告。
- 在 3D 編輯器中,選擇 lo poly 網格並使用 Shift D 建立一個副本。按 Esc 鍵避免移動新網格。
- 將副本網格從“lo poly.001”重新命名為“hi poly”。
- 將 hi poly 網格移動到圖層 1,然後選擇圖層 1,以便我們可以處理 hi poly 網格。
- 儲存 Blender 檔案。

- 物件模式
- 將鉚釘網格匯入你的工作 Blender 檔案中。詳細說明:
- 檔案->附加
- 選擇 rivet.blend 檔案
- 物件->鉚釘
- 從庫中連結/附加
- 附加命令將鉚釘放置在位置 0,0,0,但需要將其繞 Y 軸旋轉負 90 度。
- 選擇鉚釘並將 Y 旋轉值更改為 -90。
- 然後按 Ctrl A,然後應用旋轉,將此放置設定為標準方向。
- 匯入的鉚釘為 0.02 Blender 單位,大約相當於 ¾ 英寸。你可以將鉚釘重新縮放到大約 0.025,大約相當於 1 英寸。這可能會使鉚釘在 Trainz 中更清晰可見。嘗試不同的尺寸,找到適合你的鉚釘尺寸。一個英寸鉚釘的尺寸值為 X = 0.025,Y = 0.25,Z = 0.0125。

- 將鉚釘移動到板的左上角,並使用它以你喜歡的任何圖案建立其他鉚釘。你可以透過選擇鉚釘,然後 Shift D 然後是 X 或 Y 來複制鉚釘。X 或 Y 允許你沿著這兩個軸中的任何一個移動複製的鉚釘。一旦你有 2 或 3 個鉚釘,只需選擇它們全部並根據需要複製。
- 將鉚釘移動到板的左上角,並使用它以你喜歡的任何圖案建立其他鉚釘。你可以透過選擇鉚釘,然後 Shift D 然後是 X 或 Y 來複制鉚釘。X 或 Y 允許你沿著這兩個軸中的任何一個移動複製的鉚釘。一旦你有 2 或 3 個鉚釘,只需選擇它們全部並根據需要複製。

- 建立所有所需的鉚釘後,選擇它們,但不選擇平面,並使用 Ctrl J 形成一個單一網格。
- 建立所有所需的鉚釘後,選擇它們,但不選擇平面,並使用 Ctrl J 形成一個單一網格。
警告!你還需要將鉚釘網格與 hi poly 網格連線,但是,如果你最後選擇 hi poly 網格,所有鉚釘都將被展平。這可能是因為 hi poly 網格是一個簡單的平面。
- 先選擇 hi poly 網格,然後選擇鉚釘網格,並使用 Ctrl J 連線。透過檢視側檢視(鍵盤數字鍵 3)檢查連線是否正常。鉚釘應該在平面之上可見。
- 更改回俯檢視。
- 網格名稱將發生變化,因此將網格重新命名回“hi poly”。
- 儲存 Blender 檔案。
我們現在可以建立材質和法線貼圖了。
- 物件模式
- 更改到圖層 1 並選擇 lo poly 網格。
- 在另一個面板中開啟 UV/影像編輯器。如果你沒有一個可見的,請建立一個。使用 512 * 512 的尺寸建立一個名為“rivets_normal”的新影像(影像->新建影像)。保持 alpha 選中並選中 32 位浮點。
- 選擇 lo poly 網格並在屬性編輯器中選擇材質圖示。
- 材質設定
- 建立一個名為“rivets.m.tbumptex”的新材質。
- 將鏡面設定更改為 Blinn 著色器,強度為 0.2。
- 將著色->發射更改為 0.5。
- 保持其他設定不變。
- 注意:這些設定在 Trainz 中產生了合理的結果。這是你可以嘗試不同設定以改善結果的一個領域。
- 在屬性編輯器中,選擇紋理圖示。
- 法線紋理設定
- 使用影像或電影型別建立一個名為“normal”的新紋理。
- 在影像捲曲中,選擇最左邊的按鈕(瀏覽要連結的影像),並從列表中選擇 rivets_normal。
- 注意:這使用 Blender 中的“生成”影像。這可能需要在建立最終的法線貼圖後更改為外部檔案。
- 在影像取樣中選擇法線貼圖,並保持其他設定不變。
- 在對映中將座標設定更改為 UV。
- 在影響中取消選中漫射->顏色並選中幾何->法線。
- 儲存 Blender 檔案。
我們現在可以開始烘焙過程了。
- 物件模式
- 轉到圖層 2 並將 hi poly 網格移動到圖層 1。
- 移動到圖層 1 並選擇 lo poly 網格。
- 移動到編輯模式(Tab)並確保你已選擇面選擇模式。
- 編輯模式
- 展開網格(U->展開),網格將被投影到 rivets_normal 影像上。由於 lo poly 網格上只有一個面,它只填充影像。
- 返回物件模式。
- 物件模式
- 確保你處於 Blender 渲染模式。此模式顯示在 Blender 資訊面板中 - 通常位於主 Blender 視窗的頂部。
- 在屬性編輯器中選擇渲染圖示(照相機)。
- 關閉所有子視窗“捲曲”,並開啟烘焙子視窗。
- 烘焙視窗的設定如下:
- 烘焙模式->法線
- 從多解析度烘焙->未選中
- 法線空間->切線
- 清除->選中
- 選中到活動->選中
- 邊距->2
- 距離->0
- 分割->自動
- 偏差->0.08(見註釋 2)
- 選擇 hi poly 網格,然後 Shift 選擇 lo poly 網格。確保 lo poly 網格是活動網格,因為我們將從選定網格烘焙到活動網格。
- 選擇 hi poly 網格,然後 Shift 選擇 lo poly 網格。確保 lo poly 網格是活動網格,因為我們將從選定網格烘焙到活動網格。

- 選擇烘焙選項,你應該會看到 rivets_normal 影像被轉換為法線貼圖。
- 選擇烘焙選項,你應該會看到 rivets_normal 影像被轉換為法線貼圖。

- 轉到 UV/影像編輯器視窗,將法線貼圖影像(另存為影像)儲存為名為 rivets_normal.tga 的原始 Targa 檔案。“原始 Targa”檔案型別可以從視窗左側“另存為影像”捲曲中的檔案型別中選擇。檢查儲存位置,因為 Blender 傾向於嘗試將檔案儲存在 C: 驅動器的根目錄中。
- 將 hi poly 網格移動到圖層 2。這樣做是為了使網格不包含在 Trainz 的匯出 IM 檔案中。
- 選擇 lo poly 網格。注意,我們還看不到物件上的鉚釘。
- 在屬性編輯器中,選擇法線紋理並從磁碟重新載入 rivets_normal 檔案。見註釋 1。
註釋 1:如果你已將影像打包到 Blender 中,則重新載入選項將不可用。如果發生這種情況,你需要解鎖資料塊。但如果你按照上述說明操作,則不需要這樣做。
註釋 2:預設偏差值為零,如果未更改,可能會導致凸起出現飛濺效果。這是作者觀察到的影片教程中選擇的數值。你可以嘗試不同的數值,看看哪種效果最好。結果可能取決於正在建模的凸起和凹陷的型別。
- 在 3D 編輯器中選擇低多邊形網格。
- 在屬性編輯器中,選擇紋理圖示。
- 使用影像或電影型別建立一個名為“diffuse”的新紋理。載入你簡單的單色紋理檔案。本例使用許多模型共有的 black.tga 檔案。
- 將對映 -> 座標更改為 UV。
- 影響 -> 顏色應被選中,這是預設設定。
此時,你可以將低多邊形網格匯出到 Trainz,但它會顯示為一個平面。一個更有趣的物件是法線貼圖立方體,因此我們將使用立方體進行匯出。
- 物件模式
- 移動到圖層 6 或包含立方體的圖層。
- 選擇立方體,然後轉到屬性編輯器並選擇材質圖示。如果有現有的材質,則將其刪除。
- 將 rivets.m.tbumptex 材質應用於立方體。
- 更改為編輯模式。
- 編輯模式
- 選擇立方體的所有面並展開立方體以對映到 rivets_normal 影像。
- 如果需要,移動和調整每個立方體面以佔據整個 rivets_normal 影像。
- 更改為物件模式。
- 物件模式
- 儲存 Blender 檔案。
- 使用 Blender Trainz 匯出器匯出。你無需更改任何匯出器設定,但確保它匯出到你的 Normal_Test 資料夾中。
假設你沒有錯誤,你現在就可以準備匯入 Trainz 了。
- 使用你喜歡的編輯器開啟 normal_test 資料夾中的 config.txt 檔案。新增或更改檔案以反映下面的示例 config.txt。記住不要刪除或更改檔案的首行。
- 使用你喜歡的編輯器開啟 normal_test 資料夾中的 config.txt 檔案。新增或更改檔案以反映下面的示例 config.txt。記住不要刪除或更改檔案的首行。
kuid {your kuid number}
username "Normal Test"
kind "scenery"
trainz-build 3.4 (or whatever was provided by your content manager)
mesh-table {
default {
auto-create 1
mesh "normal_test.im"
}
}
category-class "XVG"
thumbnails {
0 {
image "$screenshot$.jpg"
width 240
height 180
}
}
注意:假設你有一個合適的縮圖影像。你可以刪除或省略該部分,但 TS12 會報錯。PEV 的 AssetX 程式有一個縮圖生成功能。
我們現在需要將資原始檔匯入 Trainz 內容管理器。有幾種方法可以做到這一點,但為了本教程的目的,我們將使用 Windows 複製功能複製檔案。
- 確保資源在內容管理器中是“可編輯”的。開啟一個視窗到資料夾 …\Auran\TSxx\UserData\editing\Normal Test。
- 開啟包含 Blender 檔案的開發資料夾。
- 以下檔案需要從開發資料夾複製(不要移動)到 Trainz 編輯資料夾。
- Config.txt
- Normal_test.im
- Rivets_normal.tga
- Rivets_normal.texture.txt
- Black.tga(這是我的漫反射顏色檔案 - 替換你使用的任何檔案)
- Black.texture.txt
以下圖片顯示了我的原始檔夾,其中突出顯示了要複製的檔案,以及目標資料夾。


複製檔案後,轉到 Trainz 內容管理器,選擇 Normal Test 資源並提交。如果出現錯誤,請檢查你是否擁有所有檔案以及 tga 檔案是否未壓縮。
從內容管理器啟動 Trainz(Ctrl L),找到合適的測試路線和會話,並將“Normal Test”風景物件新增到你的會話中。燈光會影響法線貼圖紋理的顯示,並且在水平面上效果最佳。在某些燈光下,鉚釘很難看到。以下是資源在我的 Trainz 會話(TS12)中的外觀。你可能需要嘗試不同的顏色和設定,以獲得最適合你的效果。由於鉚釘比較小,因此效果比較微妙,並且在某些光照條件下幾乎不可見。

最後一張圖片顯示了 UV/影像編輯器中的法線影像,3D 編輯器中的紋理立方體以及屬性編輯器 -> 紋理編輯器中法線材質的部分屬性。請注意,在 3D 編輯器屬性面板的著色面板中選擇了 GLSL 選項。這只是為了拍攝這張圖片,以便模型上同時顯示兩種紋理。

Blender 官方網站,網址為 http://www.blender.org
Van Gumster,Jason(2011)。Blender For Dummies 第 2 版。印第安納波利斯,印第安納州:Wiley Publishing,Inc. SBN 978-0470-58446-0。
WiKiBooks 還擁有一個 Blender 專屬的集合,網址為 Blender 3D,包括“Blender:菜鳥到專家”,網址為 Blender 3D:菜鳥到專家,其中包含關於凹凸貼圖和法線貼圖的部分。
- 所有技術和許多 HowTo 參考通常都來自
- TrainzOnline wiki,
- 它的模板形成一個外部連結到給定頁面標題的 N3V Wiki HELP 名稱空間頁面。
- 它向連結新增 NS 和 HowTo 引數,以連結到 Help 名稱空間,例如
http://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Tools
- 內部編碼
<span class="plainlinks">[http://online.ts2009.com/mediaWiki/index.php/HowTo/{{{1|{{{URL|{{{url|}}}}}}}}} {{{p|{{{2|{{#replace:|{{{1|{{{URL|{{{url|}}}}}}}}}|_| }}}}}}}}]</span>
用法
[編輯原始碼]仔細閱讀顯示,作為{{{1}}} 或 URL= 或 url= 給定的連結字串是 TrainzWiki Help TOC 頁面列表 N3V 幫助文章後的子頁面地址。
- 就像大多數 Trainz 模板一樣,它可以獲得漂亮的文字引數“|p= some string”,它會形成優先輸出,否則,該模板旨在將 url 中的下劃線替換為空格,並顯示頁面標題,就像它是在任何基於維基百科的維基專案上的本地頁面連結一樣。
- 它還為佔位符引數
{{{2}}}設計,以支援通常在維基標記語言中看到的更方便的管道分隔呼叫
{{HT|some_underscored_url_pagename |Some pretty name'}}'''
對於這個模板,由於子頁面名稱和 Trainz Wiki 分割槽都以主題清晰度命名,因此使用頁面名稱的更短形式可能是你想要的
{{HT|some_underscored_url_pagename}}
</noinclude>HowTo 頁面
- 或各種 內容建立者指南(線上或在 Trainz 的舊版本中)。
- 許多 Trainz 資料模型 資源引用在此華夏公益教科書中,位於頁面標題欄中的 參考連結 下。
- ↑ AssetX 內建了 Windows 幫助檔案,但如果你不熟悉 Trainz 行為以及多年來 Trainz 資料模型 的演變,它仍然很難掌握。另請參閱論壇主題:[AssetX] 以瞭解更多資訊。

