PDA

Просмотр полной версии : Обратный ход sms


сандро
02.02.2008, 00:03
Вроде бы я уже разобрался со звуковой схемой чс6, но есть один неустранимый глюк (точнее их два, но с первым как мне кажется, я в состоянии разобраться сам) - выключение вентиялторов ПТР. Они должны некоторое время звучать после выхода на безреостатную позицию, но их звук обрывается (FrequencyCurve 0). Идея проста, на предыдущей позиции включить комманду PlayonShot. Но, есть одно, "но". При сбросе позций (или переключении на более низжую - реостатную позицию) должен проигрываться другой звук. Т.е при наборе позиций (при переходе с реостатной на безреостаную позицию вентиялторы должны глохунть, а наоборот заводится) должен быть один звук, а при сбросе дргуогой. И как быть если движение планируется на реостатной позции, которая на 1 меньше безреостатной (т.е. комманда PlayonShot будет выполнена - файл будет проигран один раз и все - далее пауза, там где вентиляторы должны вращаться)?

NoiSe
03.02.2008, 03:57
выше потолка не прыгнеш
но возможно стоит рассмотреть вариант с триггерами регулирущими громкость Stream типа
Variable_Trigger ( Variable3_Inc_Past 0.02 SetStreamVolume ( 0.45 ))

сандро
03.02.2008, 11:23
выше потолка не прыгнеш
но возможно стоит рассмотреть вариант с триггерами регулирущими громкость Stream типа
Variable_Trigger ( Variable3_Inc_Past 0.02 SetStreamVolume ( 0.45 ))
На самомо деле можно и у тебя это сделано в виде звуков для 2ТЭ10М, а как действует пармаметр SetStreamVolume ( 0.45 ))? Он может плавно глушить звук в пределах одной позиции?

NoiSe
03.02.2008, 21:46
На самомо деле можно и у тебя это сделано в виде звуков для 2ТЭ10М, а как действует пармаметр SetStreamVolume ( 0.45 ))? Он может плавно глушить звук в пределах одной позиции?

да это возможно если привязаться к переменной меняющей своё значение
например к скорости как в примере
Variable_Trigger ( Speed_Inc_Past 2.0 SetStreamVolume ( 0.90 ))
Variable_Trigger ( Speed_Inc_Past 2.1 SetStreamVolume ( 0.70 ))
Variable_Trigger ( Speed_Inc_Past 2.2 SetStreamVolume ( 0.50 ))
Variable_Trigger ( Speed_Inc_Past 2.3 SetStreamVolume ( 0.30 ))
Variable_Trigger ( Speed_Inc_Past 2.4 SetStreamVolume ( 0.10 ))
Variable_Trigger ( Speed_Inc_Past 2.5 SetStreamVolume ( 0.00 ))
будет убавлять громкость при достижении скорости 7.2 км.ч
при 9 км.ч громкость будет на 0

к стати Variable2 тоже меняется не сразу а спустя какоето время
настройка скорости изменения переменной находится в ENG файле
EngineControllers (
Throttle ( 0 1 0.025 0
первая цыфра это минимальное значение
вторая максимальное значение
третья шаг

то есть при переключении контроллера с позиции на позицию
изменение значения Variable2 будет происходить с шагом 0.025
этот эффект позволил мне сделать щелконье контакторов

Variable_Trigger ( Variable2_Dec_Past 0.029 PlayOneShot ( 1 File ( "../../R_TEM2-Alias/SOUND/contactor/c0.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Variable2_Inc_Past 0.009 PlayOneShot ( 1 File ( "../../R_TEM2-Alias/SOUND/contactor/c1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )

работает точно как в настоящем локе

сандро
03.02.2008, 22:41
Однако в случае с чс6 этот вариант никак не может подойти. Поскольку вентиляторы останавлииваются вне зависимости от скорости и не постепенно. Они прекращают охлаждение на безреостатной позиции. И кстати в моем случае выключение (хотя триггер 2 не является триггером контроллера) вентиляторов происходит с 28 по 32, затем опять включаются и выключаются на 52 позции на совсем. Но, по нобъяснимым причинам иногда включение/выключение происходит не на тех позициях.

Лично я шаг считал очень просто 1/56 позиций = 0,017857142857142857142857142857143 (несколько цифр слева можно отбросить). А, что четвертая цифра обозначает?

NoiSe
04.02.2008, 01:29
Однако в случае с чс6 этот вариант никак не может подойти. Поскольку вентиляторы останавлииваются вне зависимости от скорости и не постепенно. Они прекращают охлаждение на безреостатной позиции. И кстати в моем случае выключение (хотя триггер 2 не является триггером контроллера) вентиляторов происходит с 28 по 32, затем опять включаются и выключаются на 52 позции на совсем. Но, по нобъяснимым причинам иногда включение/выключение происходит не на тех позициях.

Лично я шаг считал очень просто 1/56 позиций = 0,017857142857142857142857142857143 (несколько цифр слева можно отбросить). А, что четвертая цифра обозначает?

возможно имеет место "пропуск триггера"(глюк симулятора)
для решения этой проблемы принято повторять Release часть триггера
Discrete_Trigger ( 54 ReleaseLoopReleaseWithJump ( ))
Discrete_Trigger ( 54 ReleaseLoopReleaseWithJump ( ))
Discrete_Trigger ( 54 ReleaseLoopReleaseWithJump ( ))
Discrete_Trigger ( 54 ReleaseLoopReleaseWithJump ( ))
это конструкция встречается в управлении скрипом колодок

с шагом тут не так всё просто
если шаг в енге поставить 0,01785
возникает большая вероятость описаннго выше глюка
так как нет промежуточных шагов между позициями
0 0
1 0,01785
2 0,03571
3 0,05355


если шаг в енге поставить 0,025 при 15 позициях
пусть первая соотвествует 0,3
тогда сим придёт к 0,3 шагая по 0,025 через 12циклов.
0 0
1 0,3

для 56 позиций
в енге поставить 1/(56*3) = 0,005952381
3 шага между позициями повысит надёжность срабатывания триггеров

про четветую цифру незнаю

Im-Ho-Tep
04.02.2008, 08:01
Четвертая цифра - дефолтное значение, с которым лок появляется в игре.