Маршрутам нужна трава, где взять траву?

Игровые модификации (улучшения), патчи, звуковые пакеты, локализации, перекраски подвижного состава и всё остальное для дополнений и в виде дополнений к Train Simulator.
Ответить
lesha-nsk
Пользователь
Пользователь
Сообщения: 17
Зарегистрирован: 12 сен 2016
Откуда: Новосибирск
Репутация: 13

Маршрутам нужна трава, где взять траву?

Сообщение lesha-nsk »

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


Как можно выйти из ситуации?, есть ли такая же травка, только чтобы была по размерам площади чуть больше? И если есть, где ее можно взять?, Или может быть есть секрет, как в маршруте всю ее натыканую выделить и скопировать кучей рядом на пустую землю?
Аватара пользователя
Витя
Разработчик
Сообщения: 1751
Зарегистрирован: 04 ноя 2011
Откуда: Литва
Репутация: 1747

Маршрутам нужна трава, где взять траву?

Сообщение Витя »

Есть специальный пусто-квадрат (подзабыл как называется), который может быть заполнен указанными объектами, и по моему с возможностью их концентрации. Объекты при этом будут повторять рельеф местности. А вдоль полотна имхо, лучше удлинённая пачка одним объектом из такой же травы, но это либо - делать самому, либо - запрашивать тюнинг у разраба.
lesha-nsk
Пользователь
Пользователь
Сообщения: 17
Зарегистрирован: 12 сен 2016
Откуда: Новосибирск
Репутация: 13

Маршрутам нужна трава, где взять траву?

Сообщение lesha-nsk »

Я прям раскусил чего не хватает, стоило добавить плотную траву, все маршрут сразу на уровень по качеству и графики поднялся. :) А то ровный пол с рисованной травой уже в прошлом, почти во всех играх давно используется реальная трава на земле.
Moss®
Разработчик
Сообщения: 2038
Зарегистрирован: 26 май 2011
Репутация: 2396

Маршрутам нужна трава, где взять траву?

Сообщение Moss® »

Тебе осталось раскусить движок Куджу и то, как он твою красоту обрабатытавать будет. Fps никто не отменял.
Пусто-квадрат это ассет-блок, но лучше использовать его новую реинкарнацию
lesha-nsk
Пользователь
Пользователь
Сообщения: 17
Зарегистрирован: 12 сен 2016
Откуда: Новосибирск
Репутация: 13

Маршрутам нужна трава, где взять траву?

Сообщение lesha-nsk »

Moss® писал(а):Тебе осталось раскусить движок Куджу и то, как он твою красоту обрабатытавать будет. Fps никто не отменял.
Пусто-квадрат это ассет-блок, но лучше использовать его новую реинкарнацию
Так если по таким мини кусочкам травинок делать, а этих кусочков тысячи, то я думаю фпс будет падать. Нужно чтобы трава была большой площадью одним обьектом.
Moss®
Разработчик
Сообщения: 2038
Зарегистрирован: 26 май 2011
Репутация: 2396

Маршрутам нужна трава, где взять траву?

Сообщение Moss® »

Используй Asset Block (Irregular)
Больше 10000 на блок не ставь
В блоке есть выбор двух видов наполнителя
Блоки можно накладывать один поверх другого
Блоки копируются

--- добавлено позже в 29 сен 2016, 20:28 ---

Побежал сажать?
Даже спасибо не сказал, ... эх, молодежь :)
lesha-nsk
Пользователь
Пользователь
Сообщения: 17
Зарегистрирован: 12 сен 2016
Откуда: Новосибирск
Репутация: 13

Маршрутам нужна трава, где взять траву?

Сообщение lesha-nsk »

Moss® писал(а):Используй Asset Block (Irregular)
Больше 10000 на блок не ставь
В блоке есть выбор двух видов наполнителя
Блоки можно накладывать один поверх другого
Блоки копируются
Что за Asset Block? Это там где показывается количество обьектов на одном квадрате?
Чесно говоря я вообще не понял о чем речь. Если есть возможность, обьясните пожалуйста. ?

--- добавлено позже в 29 сен 2016, 19:29 ---
Moss® писал(а):Используй Asset Block (Irregular)
Побежал сажать?
Даже спасибо не сказал, ... эх, молодежь :)
Нет. Я не понял как и чего там надо копировать((.
Moss®
Разработчик
Сообщения: 2038
Зарегистрирован: 26 май 2011
Репутация: 2396

Маршрутам нужна трава, где взять траву?

Сообщение Moss® »

У тебя в той же группе где деревья, есть (должны быть):
Asset Block - квадрат с желтыми ребрами и углами. Его можно расширять. Двойной клик по нему и будут свойства. В них указываешь наполнитель (травку)
Asset Block (Irregular) - Синие пешки - более продвинутая модель. обтыкиваешь ими область, замыкаешь. Двойной клик по области и будут свойства. В них указываешь наполнитель (травку)

--- добавлено позже в 29 сен 2016, 20:35 ---

И те и те можно копировать, менять в них наполнитель и накладывать друг на друга, так получится, травка + одуванчики + козьи какашки
lesha-nsk
Пользователь
Пользователь
Сообщения: 17
Зарегистрирован: 12 сен 2016
Откуда: Новосибирск
Репутация: 13

Маршрутам нужна трава, где взять траву?

Сообщение lesha-nsk »

Спасибо. Вроде разобрался.
Отчет моего обучения. :good:



А то эта рисованная земля уже глаз мазолит. Помню ее еще с времен мстс, Но вот кстати в мстс-е точно помню, такая трава отдельным обьектом фпс садила сильно.

Moss® писал(а): + козьи какашки
Тыщами)).
Moss®
Разработчик
Сообщения: 2038
Зарегистрирован: 26 май 2011
Репутация: 2396

Маршрутам нужна трава, где взять траву?

Сообщение Moss® »

Молодец, все верно. Области можно очерчивать более масштабные, не такие маленькие и не обязательно прямоугольные. Но и по квадратному километру тоже не стоит. В игре заметна их подгрузка.
lesha-nsk
Пользователь
Пользователь
Сообщения: 17
Зарегистрирован: 12 сен 2016
Откуда: Новосибирск
Репутация: 13

Маршрутам нужна трава, где взять траву?

Сообщение lesha-nsk »

Moss® писал(а):Молодец, все верно. Области можно очерчивать более масштабные, не такие маленькие и не обязательно прямоугольные. Но и по квадратному километру тоже не стоит. В игре заметна их подгрузка.
Маштабные наверное не стоит, трава разная везде должна все таки быть. Про области понял, можно хоть по узору делать. Штука удобная.
Вот я только понять не могу одного, травинок то всеравно в итоге на одном квадрате получается, наверное с миллион. Оно там как то качество занижает что ли?
Moss®
Разработчик
Сообщения: 2038
Зарегистрирован: 26 май 2011
Репутация: 2396

Маршрутам нужна трава, где взять траву?

Сообщение Moss® »

Точно не могу ответить. Механизм подгрузки в оперативку и выгрузки из неё вроде разный по сравнению с каждым отдельным объектом. Но не значительны отличия.
Большой плюс только в быстром освоении пустых пространств.
Я обычно на травке оставляю 10000, деревца по близости 3000 - 4000, деревца подальше 2000 - 3000
Засаживай красиво вблизи от ЖД путей, подальше (>50 метров) травка уже никому не нужна
Аватара пользователя
Света
Разработчик
Сообщения: 752
Зарегистрирован: 13 мар 2015
Репутация: 1470

Маршрутам нужна трава, где взять траву?

Сообщение Света »

Вот я только понять не могу одного, травинок то всеравно в итоге на одном квадрате получается, наверное с миллион. Оно там как то качество занижает что ли?
Каждый объект прописывается в тайловом конфиге в папке scenery. В этом конфиге для каждого объекта имеется вкладка (или блок), где содержится информация об этом объекте - имя, путь размещения файла геометрии, координаты размещения и другая техническая информация.
Спойлер

Код: Выделить всё

		<cDynamicEntity d:id="1645676384">
			<Component>
				<cPosOri d:id="763694240">
					<RFarMatrix>
						<cFarMatrix d:id="763694264">
							<Height d:type="sFloat32" d:alt_encoding="000000E026555A40" d:precision="string">105.33</Height>
							<RXAxis d:numElements="4" d:elementType="sFloat32" d:precision="string">-0.3969247 0.0000000 -0.9178513 0.0000000</RXAxis>
							<RYAxis d:numElements="4" d:elementType="sFloat32" d:precision="string">0.0000000 1.0000001 0.0000000 0.0000000</RYAxis>
							<RZAxis d:numElements="4" d:elementType="sFloat32" d:precision="string">0.9178512 0.0000000 -0.3969247 0.0000000</RZAxis>
							<RFarPosition>
								<cFarVector2 d:id="763694316">
									<X>
										<cFarCoordinate>
											<RouteCoordinate>
												<cRouteCoordinate>
													<Distance d:type="sInt32">-1</Distance>
												</cRouteCoordinate>
											</RouteCoordinate>
											<TileCoordinate>
												<cTileCoordinate>
													<Distance d:type="sFloat32" d:alt_encoding="000000808F068F40" d:precision="string">992.82</Distance>
												</cTileCoordinate>
											</TileCoordinate>
										</cFarCoordinate>
									</X>
									<Z>
										<cFarCoordinate>
											<RouteCoordinate>
												<cRouteCoordinate>
													<Distance d:type="sInt32">-1</Distance>
												</cRouteCoordinate>
											</RouteCoordinate>
											<TileCoordinate>
												<cTileCoordinate>
													<Distance d:type="sFloat32" d:alt_encoding="000000A03E358B40" d:precision="string">870.656</Distance>
												</cTileCoordinate>
											</TileCoordinate>
										</cFarCoordinate>
									</Z>
								</cFarVector2>
							</RFarPosition>
						</cFarMatrix>
					</RFarMatrix>
				</cPosOri>
				<cSceneryRender d:id="1181949152">
					<DetailLevel d:type="sInt32">10</DetailLevel>
					<Global d:type="bool">0</Global>
					<Saved d:type="bool">1</Saved>
					<Palette0Index d:type="sUInt8">0</Palette0Index>
					<Palette1Index d:type="sUInt8">0</Palette1Index>
					<Palette2Index d:type="sUInt8">0</Palette2Index>
				</cSceneryRender>
				<cEntityContainer d:id="846924360">
					<StaticChildrenMatrix>
						<e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
					</StaticChildrenMatrix>
				</cEntityContainer>
				<cCollisionComponent d:id="1649024736"/>
				<Network-cGantryComponent d:id="1649895512">
					<GUID>
						<cGUID>
							<UUID>
								<e d:type="sUInt64">5495408148568605255</e>
								<e d:type="sUInt64">18038435420273625018</e>
							</UUID>
							<DevString d:type="cDeltaString">5f380247-9c98-4c43-bac7-3b69716555fa</DevString>
						</cGUID>
					</GUID>
				</Network-cGantryComponent>
			</Component>
			<BlueprintID>
				<iBlueprintLibrary-cAbsoluteBlueprintID>
					<BlueprintSetID>
						<iBlueprintLibrary-cBlueprintSetID>
							<Provider d:type="cDeltaString">radiomaster</Provider>
							<Product d:type="cDeltaString">objekt</Product>
						</iBlueprintLibrary-cBlueprintSetID>
					</BlueprintSetID>
					<BlueprintID d:type="cDeltaString">scenery\dc4_trainz\dc4_gp\dc4_fp2_1w_z _ni.xml</BlueprintID>
				</iBlueprintLibrary-cAbsoluteBlueprintID>
			</BlueprintID>
			<ReskinBlueprintID>
				<iBlueprintLibrary-cAbsoluteBlueprintID>
					<BlueprintSetID>
						<iBlueprintLibrary-cBlueprintSetID>
							<Provider d:type="cDeltaString"></Provider>
							<Product d:type="cDeltaString"></Product>
						</iBlueprintLibrary-cBlueprintSetID>
					</BlueprintSetID>
					<BlueprintID d:type="cDeltaString"></BlueprintID>
				</iBlueprintLibrary-cAbsoluteBlueprintID>
			</ReskinBlueprintID>
			<Name d:type="cDeltaString"></Name>
			<EntityID>
				<cGUID>
					<UUID>
						<e d:type="sUInt64">5157284992692497012</e>
						<e d:type="sUInt64">10365554237717896073</e>
					</UUID>
					<DevString d:type="cDeltaString">5ae3aa74-5b60-4792-895b-38ffa8d8d98f</DevString>
				</cGUID>
			</EntityID>
		</cDynamicEntity>
Когда происходит загрузка тайла, по этой информации производится поиск нужного файла в папке assets, его загрузка в оперативку и размещение этого файла в игровом мире. Это требует времени. Каждая копия этого файла требует примерно одинаковое время на загрузку, так как в конфиге все копии являются отдельными блоками и обрабатываются персонально. Именно из-за этого при въезде на новый тайл происходит подвисание игры.
В случае с ассет-блоком нет надобности в поиске и загрузке в оперативку копий одного и того же файла - достаточно один раз найти геометрию и текстуру, а потом только "набросать" новые координаты (ограниченные рамкой) для клонов. Благодаря этому можно высвободить некоторое компьютерное время.
Естественно, это моё ИМХО, так как я не знаю в деталях принципа работы ассет-блока. Но я не представляю себе другого варианта :no:
Сильные люди - это не те, у которых всё хорошо, а те, у которых всё хорошо несмотря ни на что.
lesha-nsk
Пользователь
Пользователь
Сообщения: 17
Зарегистрирован: 12 сен 2016
Откуда: Новосибирск
Репутация: 13

Маршрутам нужна трава, где взять траву?

Сообщение lesha-nsk »

Спасибо что обьяснили.
Наверное в будущем нужно будет задуматься о покупке доп памяти, а то штож теперь поделать, настоящая трава требует жертв. :lol:
С блоками травы я заметил, что фпс почти не падает, стабильно держится.
Ответить