PDA

Просмотр полной версии : Дымонепропускающие объекты для маршрутов


awaken
26.02.2009, 01:56
Разбирался с одной проблемой, получился типа туториал.

Как сделать объект , который не пропускает дым если под ним проезжает локомотив?
Это может понадобиться при установке в маршрут мостов, тоннелей, депо, цехов.


Требуется выполнить два условия:
1) Объект должен быть установлен в маршрут как Collision object а не как Static (в RE при установке ставится соответствующая галочка).
для уже установленных объектов это заменить в RE нельзя, но путем небольшой хитрости, можно отредактировать файл тайла в текстовом редакторе.

2) Объект должен иметь Complex box. Что это такое? Эт примерно то же что bounding box, воображаемый паралелепипед вокруг границ объекта. Только в данном случае у одного объекта может быть несколько таких параллелепипедов.

Вот так должен выглядеть .sd файл для объекта с complex box-ом :


SIMISA@@@@@@@@@@JINX0t1t______

shape ( uf_depo1.s
ESD_Detail_Level ( 0 )
ESD_Alternative_Texture ( 257 )
ESD_Complex( 3
ESD_Complex_Box
(
0 0 15
-5 8.0 0
-2.5 0 -0.1
2.5 2 83.6)

ESD_Complex_Box
(
0 0 -15
5 8.0 0
-2.5 0 -0.1
2.5 2 83.6)

ESD_Complex_Box
(
0 0 0
0 0 0
-2.0 11.0 -0.02
2.0 14.0 83.5 )
)

)

разберем по косточкам, что же тут написано:

ESD_Complex( 3
------------------------
3 - это общее число комплекс боксов
------------------------
0 0 15
вращение бокса по координатам x, y, z (в данном случае наклон на 15 градусов)
------------------------
-5 8.0 0
позиция пивота у бокса (точка начала координат) x, y, z.
в данном случае объект сдвинут влево на 5м (первая координата), и поднят на 8м над землей (вторая координата).
------------------------
-2.5 0 -0.1
min X, min Y, min Z (нижние границы соответствующих координат)
------------------------
2.5 2 83.6
max X, max Y, max Z (верхние границы соответствующих координат)
------------------------

min и max определяются относительно пивота модели.
например если это длинное здание (83м длиной) и пивот у него на одном конце, то min/max Z будут 0 и 83.
а если бы пивот был в центре объекта, тогда было бы -40,15 и 40,15

картинка которая все объясняет:
здание депо имеет три комплекс бокса, возвышающихся над землей на достаточной высоте, чтобы останавливать дым. между локомотивом и боксом должен быть зазор.

http://s43.radikal.ru/i102/0902/57/aa277f84f674.jpg

awaken
26.02.2009, 01:57
а так это работает:
http://s39.radikal.ru/i084/0902/8c/2e1e521c4044.jpg

DeBUG
26.02.2009, 19:34
Оформить это и в тех.помощь разработчикам. На сайт в статьи.

MJack
28.01.2015, 20:52
awaken, большое спасибо, ваша инструкция очень пригодилась. Причем в RTS (http://www.trainsim.ru/forum/forumdisplay.php?f=50). Эти же параметры ESD_Complex_Box позволяют игроку перемещаться в RTS по заданным плоскостям, в т.ч. и наклонным (например лестницам). Скриншоты можно посмотреть тут (http://www.trainsim.ru/forum/showpost.php?p=481229&postcount=121).
Заодно проверил сразу в трех симуляторах (MSTS, RTS, OpenRails), пропускает ли этот ESD_Complex_Box дым и дождь. Результаты такие:
MSTS - задерживает дым, но пропускает дождь;
RTS и OpenRails - пропускают и дым и дождь.

Хочу так же поделиться одним полезным советом для маршрутостроителей.
...
1) Объект должен быть установлен в маршрут как Collision object а не как Static (в RE при установке ставится соответствующая галочка).
для уже установленных объектов это заменить в RE нельзя, но путем небольшой хитрости, можно отредактировать файл тайла в текстовом редакторе.
Немного "погуглил" и выяснил, что можно включить настройки столкновения для любого объекта, который уже установлен на маршруте. Источник: прямая ссылка (http://www.elvastower.com/forums/index.php?/topic/22034-creating-bumpers/page__st__30__p__126351#entry126351) (ссылка на страницу (http://www.elvastower.com/forums/index.php?/topic/22034-creating-bumpers/page__st__30)).

Перевод инструкции:

1. Выделяем объект (F2);
2. Нажимаем Ctrl+M (выделение объекта сбросится) - эта комбинация и добавляет вкладку "Столкновения" в окно свойств объекта;
3. Выделяем объект снова (F2);
4. Нажимаем F6 (или правой кнопкой мышки на объекте) - открываются свойства;
5. Редактируем свойства на вкладке "Столкновения";
6. Сохраняем маршрут.

P.S. Перед добавлением свойств столкновений объекта надо прописать в .sd файле параметры столкновений: ESD_Bounding_Box или ESD_Complex.