- 积分
- 33739
- 最后登录
- 1970-1-1
- 在线时间
- 小时
逍遥元-
分享点-
TA的每日心情 | 开心 前天 00:45 |
---|
签到天数: 4669 天 连续签到: 48 天 [LV.Master]董事长
|
变量Variables
速度Speed 如上述,MSTS中行车速度,单位米/秒。
距离Distance 与列车的距离,单位是米,我没有实验过。
变量1Variable1 它应该有用,可惜实际上似乎没有。它是轮子的线速度,单位米/秒,和轮子直径有关,好像也和模型中动画帧数有关。我没有弄明白。
变量2Variable2 计量了列车循环数目和/或载重。对蒸汽机车的行为影响显著,但是没有什么作用。
变量3Variable3 蒸汽机车中指“铲煤速度”,单位百磅/小时。内燃机车中可计量动力制动的程度,取值从0.0到1.0,0.0代表关闭,0.5即50%应用,1.0为100%应用。
曲线Curves
在变量触发器Variable_Triggers的例子中,可见音频流Stream()小节中的曲线Curves,它直接跟在触发器Triggers ()一项之后。曲线有2种,音量曲线VolumeCurve和频率曲线FrequencyCurve。先讲点声学课,声音由空气的振动传播,包含2个属性,频率和响度。各种不同振动合起来就成了噪音。在MSTS中我们用到2个值,频率指出了音调(例如标准A大调频率为440赫兹),响度指定了音量Volume。音量曲线和频率曲线让您能够调节这2个属性。
每条曲线可以为2个变量(X轴)控制,速度或者变量2。
下面是一个简单的音量曲线实例:
VolumeCurve (
SpeedControlled
CurvePoints ( 4
0.0, 0.25
0.4, 0.2
1.6, 0.1
2.0, 0.0
)
Granularity ( 0.01 )
)
首先,曲线中落在VolumeCurve ()或FrequencyCurve ()中括号之间的部分才会被播放,详见下述。这定义了Y轴。第二,X轴上由速度或变量2(例如)决定取值。CurvePoints ()括号内指出了曲线上几个点的位置。如例子中所示,点的定义方式和音频流Streams, 触发器Triggers, 灯光Lights中的格式一致。点本身以X,Y的格式列出,最后关闭CurvePoints括号。
下一个属性是梯度Granularity (),它指示了计算机计算X值时的步长。
不熟悉高等数学的人可能第一眼看不懂。其实很简单,如果我们要作一条曲线,首先要找到相关的值,在一个坐标系中转换为相应的点。然后我们就知道了曲线的形状并通过各点绘出这条曲线。
计算机不会绘图,但它可确定这个函数,并作出取值表。在计算机从最小到最大依次为X取值并计算相应的Y值时,梯度Granularity指出X值的步长。在上面的例子中,计算机从X=0.00, 0.01, 0.02, 0.03…, 1.96, 1.97, 1.98, 1.99, 2.00依次取值计算。
音量Volume与频率Frequency
在上一节中我们看到音量和频率可以改变,本节讲述其具体方法。
音量Volume
想来音量取值范围应为从0到1,但有人用大于1的值实验并获得成功。我以为该值的意义是相对于.wav文件的原始音量,0.5为其一半,1.0不变,2.0加倍。
频率Frequency
这点比较难懂。下面是gp38cab.sms中的频率曲线部分。
CurvePoints ( 8
0.000 12025
0.150 12025
0.450 13000
0.500 13000
0.501 12025
0.550 12025
0.850 13000
1.000 13000
)
Y值初看起来难以理解,但了解到MSTS中要求.wav文件为11025赫兹以后问题就明朗了。大于11025的值会使音调高于原始.wav文件,小于的相反。因为存在限制,取某些值时可能不能得到满意的音效,需进一步实验。 |
|