Trainz/containers/soundscript 容器
|
|||
|
用於定義資產聲音的容器型別標籤。Soundscript 容器能夠控制“相對響度”、衰減範圍、隨機範圍,並具有特定觸發器。
每個 soundscript 子容器都支援以下標籤。每個標籤都與其預設值一起顯示。
| 規範與示例 |
|---|
| 規範 |
soundscript (container)
{
soundscript-ID (Optional-Name[note 1])
repeat-delay 0,0
distance 50,150
ambient 0
attachment ""
nostartdelay 0
priority 1
trigger ""
volume 1
value-range 0,0
sound
{
}
}
|
| 簡單示例 |
soundscript
{
dayloop (optional name)
{
ambient 1
repeat-delay 20,25[note 2]
distance 10,100
sound (subcontainer)[note 3]
{
dogbark.wav
lildogbark.wav
bigdogbark.wav
dogsallbark.wav
}
}
} (adapted: KB dogbark,<kuid:52682:39098>)
|
- 在上面的示例中,該資產很可能只會被聽到一次,除非它在附近被停止(車站、岔線?),並且聲音列表中隨機選擇了一個聲音,因此會給停在附近的耳朵帶來不同的聽覺體驗。
- 型別:布林值 — 除 1 和 0 之外的值將生成錯誤訊息!
- 預設值:0
- 強制:否
- 描述:如果為真,則此為“環境”聲音,環境聲音以 2D 方式播放,不使用世界中的 3D 定位,隻影響音量。與位置聲音不同,環境聲音可以是立體聲。
- 型別:附件點
- 預設值:""
- 強制:否
- 描述:要將聲音源附加到的點。附件點在建立過程中在網格檔案中指定。
為什麼聲音不應該有附件點,瑪蒂爾達、喬治和米莉森問道。為什麼,當聲音被路線構建者以“路線軌道周圍的可聽場景”的形式放置時,就像他放置一棵樹一樣。就像視覺效果一樣,聲音效果由建模師用來提供一種味道和真實的印象——因為沒有一個兩秒鐘的聲音檔案可以模仿持續聲音的真實性。
- 型別:小數對 — 米:radius_Begin_fading,radius_cut_off_&_stop
- 預設值:50,150
- 強制:否
- 描述:從源頭算起的聲音可聽距離範圍,以米為單位。
- 最小距離定義了聲音保持 100% 音量的半徑。
- 超過該距離,聲音音量將自然衰減。
- 最大距離定義了一個半徑,超過該半徑,遊戲將不再播放聲音。這並不意味著聲音衰減行為按此值縮放,以便在最大距離處衰減到零,而是聲音將在該點突然切斷.提示:由內容創作者選擇合適的距離 - 較小的距離對效能更好,因為資產影響半徑越早被越過,CPU 的程序流程越早從迴圈週期中將其丟棄,並將注意力集中到其他事情上。幀率抓取者請注意!那個漂亮的音效是有代價的。
- 型別:布林值
- 預設值:0
- 強制:否
- 描述:如果新增併為真,則此標籤指定聲音將在觸發後立即播放。預設情況下,聲音在 0 到 4 秒之間有一個隨機的開始延遲。在大多數情況下,應保持開始延遲處於活動狀態,因為將其關閉可能會在多個相同聲音靠近時導致明顯的音訊偽影。
- 型別:整數
- 描述:設定聲音的優先順序,如果沒有足夠的音效卡可用,則會優先播放優先順序更高的聲音。預設為 1,可以為負數。
- 型別:小數對
- 預設值:0,0
- 強制:是 (3.4)
- 描述:聲音播放完後延遲的時間範圍(以秒為單位),然後再次播放聲音。要設定恆定的延遲,請將這兩個值設定為相同的值,或者只提供其中一個值,否則將在它們之間隨機選擇一個值。與觸發事件一起使用時(請參閱“trigger”標籤),正值表示聲音不應該重複,而應該等待再次觸發。
- 型別:容器
- 預設值:{}
- 強制:是
- 描述:包含要播放的聲音檔案的鍵/字串列表。如果列表中有多個條目,則將從列表中隨機選擇一個檔案。此容器中每個標籤的值都是 WAV 音訊檔案的名稱。檔名相對於資產的基目錄,即相對於配置檔案的位置。列表中使用的鍵並不重要:Trainz 的列表約定是從零開始對每個選項進行數字編號,雖然強烈建議遵循此約定,但沒有技術上的要求。
- 有效的 WAV 檔案是
- 未壓縮的。
- 8 或 16 位
- 單聲道、立體聲或環繞聲(截至 3.7 版本,環繞聲尚未完全測試)
- 取樣率可以是 22kHz(22,050Hz)或 44kHz(44,100Hz)。較高的取樣率使檔案大小翻倍,但質量沒有明顯提高,不建議使用。對於某些目的,有額外的要求 - 例如,方向聲音必須是單聲道的。
- 型別:字串
- 預設值:""
- 強制:否
- 描述:“trigger”標籤為你的聲音賦予一個名稱,該名稱可以允許它從 TrainzScript、動畫和某些預定義事件中播放。(至少有一個這樣的“預定義事件”是在將 soundscript 容器包含在“kind mojunction”的 config.txt 檔案中時使用“toggle”一詞。這將使聲音在每次切換道岔時觸發)
- 型別:浮點數對
- 預設值:0,0(關閉)
- 強制:否
- 描述:2 個數字,其中數字不相同,它們設定聲音播放的開始時間和結束時間。午夜是 0.5,中午是 0.0 或 1.0。(待定。這有點含糊不清。)
- 型別:小數
- 預設值:1
- 強制:否
- 描述:指定聲音的音量增益。預設為 1 (100%)。
- 型別:stringvalue,一個識別符號名稱
- 預設值:""
- 必填:否,除非聲音指令碼容器管理的多個聲音。(見下面的早晨和晚上示例)
- 描述:指定用於連線到軟體其他部分的聲音控制代碼或文字識別符號。
與 索引_標籤_&_容器 中其他帶有“ -ID”字尾的容器術語類似。
具有不同晝夜背景聲音的地圖資產的 示例 config.txt 檔案
kind map
kuid <KUID2:497853:13052:3>
soundscript
{
morning
{
ambient 1
value-range 1, 0.1
volume 0.3
sound
{
0 ctry_day_1.wav
1 ctry_day_2.wav
}
}
night
{
ambient 1
value-range 0, 0.9
volume 0.3
sound
{
0 night_loop.wav
}
}
}
這是一個實際的 TB v1.3 資產升級到 V2.7(TC1&2)——這個級別是一個有用的中間狀態,包含大多數必要的主要更改,並作為檢查,消除了現在非法的、以前有用的快速分類 TBS 標籤,例如區域、型別、資產名稱和其他此類已停用的關鍵字,例如自動動畫(其操作被合併到諸如網格表 容器 和自動建立引數之類的結構中)。
kind "scenery"
light 1
category-class "BU"
trainz-build 2.7
username "KB trainannouncer sound-aRus"
category-region "00"
category-era "1960s;1970s;1980s;1990s;2000s;2010s"
description "username = 'KB trainannouncer sound-aRus'
-- This is a 27 second long muted platform soundtrack with indistinct but obvious near-continuous distant loudspeaker announcement.
Original description:
-- This is a sound add-on.
-- To use it you must place this object in Surveyor at or adjacent to any area that you wish to hear this sound from.
credit: Thanks to USER.RO for creating the sound regions object. It makes the creation of objects in this package easy & quick.
original trainz-build 1.3
Rev-A 2015-0115 - by Fabartus - update to update ranges...
and eliminate these obsolescent tags:
asset-filename 'KB_trainannounce'
autoanimation 1
region 'AAA Sounds'
type 'Trains'
---------
This faulty asset originated in C:\TS09-SP3\UserData\editing 2014-1008
Asset foldername: kuid2 52682 39352 0;v2-6;Platform sound effect;KB Trainannouncer sound-aRus
Original folder: C:\TS09-SP3\editing\KB trainannounce
******************************************************************************************
soundscript
{
dayloop
{
repeat-delay 20,38
distance 10,80
sound
{
trainannounce.wav
}
}
}
mesh-table {
default {
mesh "invisible-platform_body.im"
auto-create 1 }
}
thumbnails {
0 {
width 240
height 180
image "$Soundeffect screenshot (240).jpg" }
}
kuid-table {
}
作為修復後的資產,不適合上傳,修復的火車製造者可以選擇調整排序引數,例如使用者名稱、描述資料和類別-xxx 引數,以適合資產種類的限制。在這種情況下,作為一個相信良好文件的程式設計師,描述塊用於跟蹤更改(更改記錄),因為從 TS2009 版本開始,合法的備註或評論已從 Trainz 中刪除。該示例還展示了對作者原始名稱的更改和合規性:儘可能保留相同的短語,並按照相同的順序,新增擴充和澄清的詞語或短語,如果可能的話,並常規地新增更改字尾“ -aRus”。這實際上意味著:Altered(修改)、Repaired(修復)、Upgraded(升級)、Screenshot(螢幕截圖);並且 -a 字尾將在 CM 中作為名稱引數進行排序。
上面的示例也用於說明另一個要點——C 語言程式設計實踐世界中存在不同的縮排風格。聲音指令碼容器使用一種這樣的格式約定,而最後三個容器使用另一種常見的縮排方法。作為規則,內容管理器將解壓縮並生成容器的第一種形式,但 CM & CMP 對其他形式非常寬容,只要字元之間存在空格字元即可。在 C、C++ 和 C# 語言中,不需要這種空格填充,括號字元本身就足以在解析資料元素時進行分隔。Trainz 解析要嚴格得多,能力也更差。
- ↑ 僅當配置檔案中有多個時才需要名稱。請參見 地圖檔案中的聲音指令碼 示例中的晨昏標籤。
- ↑ 許多較舊的資產在這裡缺少第二個數字,這會導致 N3V 的 CM 錯誤檢查中出現故障。
• 否則,重複之前的延遲將在第一個數字和第二個數字之間隨機生成。
• 使之相等以獲得恆定的延遲。
• 重複延遲為 0,0 使聲音成為一個連續迴圈。 - ↑ 如果列表中有多個條目,則將從列表中隨機選擇一個檔案。
| 此參考頁面改編自 TrainzOnline Wiki,根據 CC-BY-SA 3.0 許可。此頁面可能包含比 相同主題的源頁面 更多的文字解釋、說明、歷史和/或示例。 TrainzOnline Wiki 在很大程度上由程式設計師或經驗豐富的 內容創作者維護,可能包含有關當前 trainz-build 程式碼 標準的更新資訊,這些標準在軟體新增功能時會發生一些變化。 |

