PDA

Просмотр полной версии : Сезоны. Секрет приготовления



Эрендир
28.01.2013, 18:27
Начиная с ТРС2010, появилась поддержка сезонных объектов. В отличие от, например, РВ, ТРС имеет более гибкую настройку таких сезонов. К сожалению, найти более менее полную информацию о том, как их настроить, в сети невозможно. Даже на wiki и то описание посредственное, и в чем-то даже неправильное.

И так, как же сделать сезонный объект. Для начала разберёмся, к чему же можно применять сезоны. Их можно применять к любым видимым объектам на карте. То есть к различным зданиям, машинкам, человекам, деревьям, индустриям, рельсам, путевым объектам, сплайнам и в конечном итоге к текстурам земли.
Первое, что необходимо сделать, это создать нужные объекты. В отличии от РВ, в ТРС нельзя просто менять текстуру объекта под соответствующий сезон. Это значит, что если мы хотим сделать домик с текстурой снега и тп, нам надо делать два домика с разными текстурами.

И так, с сезонами определились, объекты сделали. Теперь необходимо создать непосредственно сами сезоны. Для этого имеется контейнер

season-selector
{
}

В нём мы и будем описывать наши сезоны. Все сезоны записываются как условия. В качестве условия используется период года и определяется тегом

season-range xxx, yyy
с двумя значениями "xxx" - дата начала сезона, "yyy" - дата окончания сезона, определяемые дробным числом от 0.0 до 1.0. Началом года, как бы это не казалось абсурдным, является 1 июня. Это значит, что значение 0.0 соответствует 0:00 1 июня.

Для определения номера сезона, а именно он понадобится для мешей, используется тег

output-season x
где "x" - номер сезона. Их может быть сколько угодно, и не обязательно по порядку. Собственно этот тег является выходом из условия.
Для проверки, выполняется ли условия сезона служат два контейнера

branch-true
{
}

содержимое которого проверяется, если дата уложилась в заданный период и

branch-false
{
} если дата в заданный период не укладывается. Оба эти контейнера являются аналогией основного контейнера

season-selector
{
}

То есть, новое условие или выход мы пишем в них.
Вот простенький пример из 4х сезонов


season-selector
{
season-range 0.0,0.3

branch-true
{
output-season 0
}

branch-false
{
season-range 0.3,0.6

branch-true
{
output-season 1
}

branch-false
{
season-range 0.6,0.9

branch-true
{
output-season 2
}

branch-false
{
output-season 4
}
}
}
}
Вот таким образом и создаётся дерево сезонов.

Теперь необходимо указать мешам в какие сезоны им появляться. Для этого есть тег

mesh-season x
где x - номер требуемого сезона из нашего дерева.

То есть мешь в mesh-table будет выглядеть так

summer
{
mesh "mymesh.im"
auto-create 1
mesh-season 2
}

Как видно, ничего сложного в этом нет.


Заранее прошу прощения у тех, кто ничего, как и я, из написанного не понял. Я не самый лучший объясняльщик.

ak_timur
28.01.2013, 19:23
Четыре сезона стоит делать для флоры (деревья, трава, кустарник) и для текстур поверхности.
Остальные объекты могут обойтись двумя - зима-лето.

Вот пример конфига для двухсезонного объекта scenery:


kuid <kuid2:68213:15004:2>
username "Derelict baggage car 01"
kind "scenery"
trainz-build 3.6

mesh-table
{
summer
{
auto-create 1
mesh-season 0
mesh "summer\derelict_baggage_car_01.im"
light 1
}

snow
{
auto-create 1
mesh-season 1
mesh "snow\derelict_baggage_car_01.im"
light 1
}
}
category-keyword "baggage;static"
height-range -50,50

obsolete-table
{
0 <kuid2:68213:15004:1>
}
rollstep 1
rotate-yz-range -180,180

season-selector
{
above-snow-line "1"

branch-true
{
output-season "1"
}

branch-false
{
output-season 0
}
}
category-class "BR"
category-era "1930s"
category-region "US"
description "Derelict baggage car, static scenery only.

For this update I have toned down the brightness, added normal-mapped, altitude-dependent summer/snow textures, and simplified the mesh using opacity instead of Boolean techniques. Made with gmax, no LOD, 448 triangles, 1 material per mesh."
author "Deane Tunaley"
license "Freeware, for distribution only by N3V. No publicly distributed reskins please."
contact-email "dxt333@hotmail.com"

thumbnails
{
0
{
image "$screenshot$.jpg"
width 240
height 180
}
}

kuid-table
{
}


А вот сам объект, посмотреть, как устроен: :click-me: (http://www.mediafire.com/?r9r1366ymp9kixf)

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

Skif
28.01.2013, 20:21
С рельсами работает?

kemal
28.01.2013, 20:28
Skif, должно.

Эрендир
28.01.2013, 20:28
ak_timur, тот конфиг к нашим объектам не подходит. В нём стоит условие на нахождение объекта выше линии снежных шапок, а к календарю там никакой привязки.

RONNI
28.01.2013, 20:29
ak_timur, хороший конфиг, после объяснения Эрендира прям наглядный пример поставил все на свои места. Только не согласен, что для объектов(дома) нужно только 2 сезона. Осень никак нельзя списать со счетов. Думаю трех времени года будет достаточно: зима-лето-осень. Только обязательно нужно поставить границы этим временам года. Т.е. зима к примеру с 1 декабря до 31 февраля(но на самом деле это не всегда так). Может получиться ситуация, что один автор сделал зиму с 1 дек до 15 февр а другой до 31 февр. Т.е если поставить эти оба объекта на карту и выбрать 23 февр то один дом еще во снеге(зимний вариант) а второй уже с летней текстурой.

kemal
28.01.2013, 20:31
Началом года, как бы это не казалось абсурдным, является 1 июня. Это значит, что значение 0.0 соответствует 0:00 1 июня.
После 0.0 - полдень это уже не выглядит неожиданно.

Кстати про дерево. А почему у тебя ветвление только по else? Можно же было равномернее распределить. Тот же вопрос по дереву ЛОДов.

Skif
28.01.2013, 21:05
И рельсам тоже два сезона мало - весной и осенью они в 90% случаев окрашиваются в черный из-за конденсата и влаги. Особенно деревянные шпалы. Да и цветов балласта больше реализуется в межсезонье.

B.U.G.O.R.
29.01.2013, 14:50
А еще надо унифицировать название. Чтобы не искать среди тонн объектов сезонные. Я вот уже сделал один объект себе, я перепилю все остальные свои, но чтобы знать точно, что объект сезонный, предлагаю писать где-нибудь в начала (S), ну типа season. За\против?

Может получиться ситуация, что один автор сделал зиму с 1 дек до 15 февр а другой до 31 февр.
А на счет этого, я предлагаю просто взять уже готовые теги для конфига из деревьев Cap1e. За\против?

---------- Сообщение добавлено в 16:50 ---------- Предыдущее сообщение размещено в 16:49 ----------


31 февраля
Кстати, это интересно.

ak_timur
29.01.2013, 15:01
B.U.G.O.R., кроме имени файла есть такой тэг category-keyword , по нему тоже легко осуществляется поиск. Специально сделан, чтобы не разгонять имя файла до неприличных размеров. Вот в нем можно написать и "season" и "bugor" и другие ключевые слова.

B.U.G.O.R.
29.01.2013, 15:39
ak_timur, понял, освою.

RONNI
29.01.2013, 16:37
Кстати, это интересно.

Ах ну да что это я? Я же имел ввиду 32 января:yes:

Stas04
29.01.2013, 16:47
Ужасная и уродующая ТРС функция - особенно когда иностранные авторы "засаживают" ландшафт этими монстрами "спидиТРИИ". В зимних картах их остовы, плотоядно трясущиеся - просто хурор какой то:xysy:

Slash
29.01.2013, 16:53
Да ладно вам про хурор. За бугром используют в основном деревья дефолтные, они мягко говоря некоторые виды просто уродливы. На счет сезонов, давно пора использовать, ведь еще в древнем МСТС есть функция смены сезонов. Но тут все гораздо лучше, запустил маршрут зимой, заработал зимний вариант и так далее. Для рельс можно и три сезона использовать, но для домов и прочих объектов достаточно двух.

ak_timur
29.01.2013, 16:58
В зимних картах их остовы, плотоядно трясущиеся - просто хурор какой то
Просто наверное не стоит делать анимацию деревьев, она выглядит неестественно. Попробуй раскачай дерево до такой амплитуды, как они качаются в игре, это надо ветер 30м/сек.

Рома
29.01.2013, 21:33
Я за на все 200% надо еще и ПС по возможности осезонить. Только лучше бы на стадии зарождения идеи придти к стандартам, чтоб отныне и навсегда у всех авторов (которые не гоблины) зима начиналась в один определенный день и заканчивалась в один день, тогда и разброса не будет

B.U.G.O.R.
29.01.2013, 22:03
Вот поэтому я и предлагаю, оставить то, что прописано в деревьях.

B.U.G.O.R.
05.08.2013, 14:46
Нашел один чудесный фильтр в ФШ, с которым можно в пару нажатий сделать снег. Находится в галерее фильтров, называется "рассеяное свечение". Если модель запекалась, то он еще и прекрасно работает с ними, меньше бросает "снега" на темные места, и больше на светлые. Правда, вот для текстур с разными основными цветами надо по своему настраивать, но там всего 3 ползунка, так что можно подобрать быстро нужное. Вот, где он находится:
http://s019.radikal.ru/i628/1308/42/dd0112d62900t.jpg (http://s019.radikal.ru/i628/1308/42/dd0112d62900.jpg)

А вот, ДО/ПОСЛЕ:
http://s017.radikal.ru/i420/1308/2a/f500d746d96bt.jpg (http://s017.radikal.ru/i420/1308/2a/f500d746d96b.jpg)http://s019.radikal.ru/i625/1308/cb/59c75a98c6b9t.jpg (http://s019.radikal.ru/i625/1308/cb/59c75a98c6b9.jpg)

Arix
05.01.2014, 16:43
Если я правильно понял, фактически для каждого сезона нужен отдельный объект со своим мешем и со своими текстурами?
Тогда можно вообще сделать в одном kuid несколько разных объектов, свой для каждого сезона. Например, зимой - снежные сугроб. Что вместо него должно быть летом? Ничего. Значит, делаем так, что объект появляется только зимой, летом - пусто. То же самое с разными снеговиками, снежными горками.
Сплайновую траву вдоль путей зимой можно превратить в сплайновые сугробы. Чтоб у домов из труб дым шел только зимой. А то дымящие круглый год, как паровозы, дома от denlog'a выглядят нелепо. Простор для фантазии очень широкий.
Интересно, а воду можно сезонной сделать? Чтоб зимой она становилась белой, как будто лед, засыпанный снегом.

kemal
05.01.2014, 16:46
Ну да, так и задумано.
Правда, насчёт дыма и воды я не уверен.

ak_timur
05.01.2014, 17:55
Тогда можно вообще сделать в одном kuid несколько разных объектов, свой для каждого сезона
На данном этапе возможна только смена текстур в объектах, сделанных изначально как "сезонные", и смена текстур поверхности, опять же изначально заточенных под "сезонность". В сплайнах пока не слышал о такой возможности. Про воду и дым тоже речи не идет пока.

Эрендир
05.01.2014, 18:12
С невидимого объекта дым идти не будет. Так что дым можно делать сезонным.

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

ak_timur
05.01.2014, 18:30
Возможно только включение или выключение отдельно взятой меши в зависимости от сезона
Ну да, это я тупанул..

Toxa_Batoxa
02.02.2017, 19:57
Попытался сделать сезонный объект. Пока прописал 2 сезона, но они почему то не меняются, всегда виден только сезон 1. Подскажите, где накосячил, вот часть конфига:


mesh-table
{
january
{
mesh "trees_1.im"
auto-create 1
mesh-season 0
}

february
{
mesh "trees_2.im"
auto-create 1
mesh-season 1
}
}

season-selector
{
season-range 0,0.5

branch-true
{
output-season 0
}

branch-false
{
season-range 0.5,1

branch-true
{
output-season 1
}

branch-false
{
output-season 0
}
}
}

Toxa_Batoxa
08.02.2017, 19:40
С объектами разобрался, а вот со сплайнами не получается, меш тупо не отображается. Может есть какие-нибудь сезонные сплайны, для образца?

Doctor X
08.02.2017, 21:10
Toxa_Batoxa, есть
https://yadi.sk/d/UECdi6Li3DZqow

Toxa_Batoxa
17.04.2017, 15:53
Обращаюсь к помощи форума. Никак не получается прописать в сплайн более двух лодов. Для двух лодов у меня получилось таким образом:


track-lod-tree
{
lod-distance 150

high-detail
{
lod-season-index 1

high-detail
{
lod-season-index 2

high-detail
{
mesh "lod-0"
}

low-detail
{
mesh "lod-0m"
}
}

low-detail
{
mesh "lod-0w"
}
}

low-detail
{
lod-season-index 1

high-detail
{
lod-season-index 2

high-detail
{
mesh "lod-1"
}

low-detail
{
mesh "lod-1m"
}
}

low-detail
{
mesh "lod-1w"
}
}
}
}
Может кто-нибудь помочь? Вот тут сам путь: https://yadi.sk/d/O-PCmpms3H4YeG

Toxa_Batoxa
22.10.2017, 17:59
Оставлю здесь, может кому-нибудь и пригодится. Season-selector разбитый по месяцам:



season-selector
{
season-range 0.583331,0.666664 #Январь

branch-true
{
output-season 0
}

branch-false
{
season-range 0.666664,0.749997 #Февраль

branch-true
{
output-season 1
}

branch-false
{
season-range 0.749997,0.83333 #Март

branch-true
{
output-season 2
}

branch-false
{
season-range 0.83333,0.916663 #Апрель

branch-true
{
output-season 3
}

branch-false
{
season-range 0.916663,1 #Май

branch-true
{
output-season 4
}

branch-false
{
season-range 0,0.083333 #Июнь

branch-true
{
output-season 5
}

branch-false
{
season-range 0.083333,0.166666 #Июль

branch-true
{
output-season 6
}

branch-false
{
season-range 0.166666,0.249999 #Август

branch-true
{
output-season 7
}

branch-false
{
season-range 0.249999,0.333332 #Сентябрь

branch-true
{
output-season 8
}

branch-false
{
season-range 0.333332,0.416665 #Октябрь

branch-true
{
output-season 9
}

branch-false
{
season-range 0.416665,0.499998 #Ноябрь

branch-true
{
output-season 10
}

branch-false
{
season-range 0.499998,0.583331 #Декабрь

branch-true
{
output-season 11
}

branch-false
{
output-season 0
}
}
}
}
}
}
}
}
}
}
}
}
}


Пример дерева лодов для сплайнов, на четыре сезона:



track-lod-tree
{
lod-distance 150

high-detail
{
lod-season-index 1

high-detail
{
lod-season-index 2

high-detail
{
lod-season-index 3

high-detail
{
mesh "lod-0 season 4"
}

low-detail
{
mesh "lod-0 season 3"
}
}

low-detail
{
mesh "lod-0 season 2"
}
}

low-detail
{
mesh "lod-0 season 1"
}
}

low-detail
{
lod-season-index 1

high-detail
{
lod-season-index 2

high-detail
{
lod-season-index 3

high-detail
{
mesh "lod-1 season 4"
}

low-detail
{
mesh "lod-1 season 3"
}
}

low-detail
{
mesh "lod-1 season 2"
}
}

low-detail
{
mesh "lod-1 season 1"
}
}
}
}



New