Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
vitacite

Портирование SATA и MASK map из Arma2/Arma3 в Dayz

Recommended Posts

Posted (edited)

Добрый день. Решил запилить тутор по портированию SATA и MASK карт из ARMA2/ARMA3.  Как источник текстур я использовал аддон CA для Arma3. А в качестве источника исходного проекта выложенные самими Бегемотами в открытый доступ модели и карты для ARMA2 в незабинаренном виде, включая .wrp файл.  Arma 2 Sample Models - от бегемотов  (там все модели карты и материалы для Arma 2, незабинаренные, но без текстур) Так что никаких авторских прав мы не нарушили.. но текстуры придется собирать из пакета CA для ARMA3.

 

Карта была выбрана за малый размер 2048 на 2048, и содежание, (на мой взгляд это лучший пост.апокалиптический сеттинг на Арма 2, да и на Арма 3.  Гуляешь по этой карте и понимаешь - пушной зверек настал).  

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Сразу скажу, что .wrp карты импортировался без проблем и сразу подгрузил высотку и все модели (деревья и перекрестки понятное дело улетели вверх, часть моделей без текстур, но про это не сейчас). А вот "маску" и "сатку" пришлось собирать что говориться по частям.Нарезанные на слои спутниковая карта и ее маска находятся в папке 

P:\ca\ProvingGrounds_PMC\data\Layers

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Обе они находятся там в нарезанном виде по слоям с учетом нахлеста (т.к. один слой заходит на другой при нарезке). Число этих слоев (layers), размер нахлеста (overlap) изначально при создании карты указываются в настройках mapframe. Соответственно мы должны собрать это все обратно.

 

Для начала все эти текстуры из .paa надо конвертировать в .tga, формат доступный к редактированию в фотошоп. А их (слоев) много...

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

к слову сказать, .rvmat из папки сразу удаляем, она нам не пригодиться больше. С текстурами поступаем хитрыми образом. Из пакета DayzTools в корень диска P: копируем файл ImageToPAA.exe и конфиг TexConvert.cfg, создаем батник PAA2TGA_CONVERT.BAT с следующим содержимым - 

@echo off
FOR /F "tokens=1* delims=. " %%A in ('dir /b *.paa') do (P:\ImageToPAA.exe %%A.paa %%A.tga)

После чего все что надо сделать для "пакетной" перекодировки *.paa в *.tga это скопировать данный батник (только батник) в папку с текстурами и запустить, после окончания работы получим перекодированные в формат *.tga файлы. Далее батник из папки, а так же текстуры *.paa можно смело удалить. Нам понадобиться только *.tga

Всего в исходном варианте карты 6X6 слоев пронумерованных от 0-ля до 5-ти.  Соответственно верхний левый квадрат маски будет в нашем случае M_000_000_lca.tga нижний правый M_005_005_lca.tga, верхний левый квадрат спутниковой карты S_000_000_lco.tga нижний правый s_005_005_lco.tga.

 

При склеивании всего этого добра в ручную в фотошопе следует учитывать следующее..

1. Что все эти слои избыточны, т.е. нам придется накладывать слой на слой внахлест быть внимательными делать верхний слой прозрачным и подгонять по пикселям.

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

3. Сначала делаем SATA-map т.к. с маской все несколько сложнее..

 

Технология следующая - создается пустой файл размером с предполагаемую сатку - 2048 x 2048, выставляется верхний левый квадрат S_000_000_lco.tga таким образом чтобы размытая часть ушла за грань холста, нам нужна только картинка. 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

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

За тем открываем следующий Layer - и копируем его в нашу будующую сатку поверх первого слоя..

 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Как видно на скриншоте, "нахлест" занимает почти треть от верхнего слоя. Так что пользуемся прозрачностью, позиционируем 2-лайер и выравниваем по правому краю.. 

Ну собственно все, далее повторяем, пока не получим полноценную sata map, как на первом скриншоте..

В моем случае это заняло около 30-40 минут. Когда все готово и мы убеждаемся, что все сошлось и без косяков, сохраняем в *.psd со всеми слоями исходник (малоли найдем косяк, а склеивать второй раз...) затем сохраняем в формате _lco.tiff и c указанием на то что это satamap

С маской повторяем все тоже самое сответственно, НО! там есть ньюанс. Когда terrainbuilder генерит слои.. то маску он делает по своим принципам. Поэтому маска содержащая разное число текстур может оказаться разного цвета... и это было для меня сюрпризом..

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

На скрине слева маска из трех цветов, справа маска из двух цветов.. В случае с pwg т.к. цветов мало, я вышел из ситуации просто скопиров цвета из красного канала в зеленый, а красный залил черным цветом, чтобы привести маску в однообразие. 

В моем случае вышло черный - грязь, зеленый трава, красная дорога, так же на маске отстуствовала текстура для всем известной воронки... (изначально она накладывалась отдельно), поэтому я не стал выпендриваться, а обвел воронку синим карандашом в отдельном слое уже после сборки mask-map.

Короче полтора часа работы и я стал обладателем спутниковой карты и детальной маски размером 2048 на 2048... 

Далее в фотошопе можно узнать код палитры маски для каждого цвета, и внести соответствующие изменения в Lyaer.cfg.  Текстуры сильно рекомендую использовать стандартные из Dayz, 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

 

Теперь надо создать нормаль, т.к. без нее на карте любые клатеры (трава и тд), будет отображаться с кривыми тенями и белым ореолом.

Для этого выгружаем из terrain Builder карту высот в формате .asc Загружаем путем импорта в программу L3DT - (доступна бесплатно). Сохраняем куда-нибудь в temp проект (он нам больше не понадобится, только временно чтобы сгенерировать эту самую нормаль)

И генерируем нормаль карты.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

 

Далее выгружаем полученную normalMap в формате .bmp из L3DT. Закрываем L3DT, открываем Photoshop, открываем нашу нормаль, отражаем по вертикали, удаляем синий слой. сохраняем в папке 

DATA нашей карты под именем  global_nohq.tga. Подвязываем ее в конфиг в строке

terrainNormalTexture = "vwe\zone\worlds\prgrnd\data\global_nohq.paa";

Cобственно все. Папка моего проекта vwe\zone\worlds\prgrnd\  cоответственно все листинга привязаны к ней.

листинг Layers.cfg

class Layers {
	class cp_tiled {
		material = "DZ\surfaces\data\terrain\cp_concrete1.rvmat";
	};
	class cp_rock {
		material = "DZ\surfaces\data\terrain\cp_rock.rvmat";
	};
	class cp_gravel {
		material = "DZ\surfaces\data\terrain\cp_gravel.rvmat";
	};
	class cp_concrete1 {
		material = "DZ\surfaces\data\terrain\cp_concrete1.rvmat";
	};
	class cp_concrete2 {
		material = "DZ\surfaces\data\terrain\cp_concrete2.rvmat";
	};
	class cp_broadleaf_dense1 {
		material = "DZ\surfaces\data\terrain\cp_broadleaf_dense1.rvmat";
	};
	class cp_broadleaf_dense2 {
		material = "DZ\surfaces\data\terrain\cp_broadleaf_dense2.rvmat";
	};
	class cp_broadleaf_sparse1 {
		material = "DZ\surfaces\data\terrain\cp_broadleaf_sparse1.rvmat";
	};
	class cp_broadleaf_sparse2 {
		material = "DZ\surfaces\data\terrain\cp_broadleaf_sparse2.rvmat";
	};
	class cp_conifer_common1 {
		material = "DZ\surfaces\data\terrain\cp_conifer_common1.rvmat";
	};
	class cp_conifer_common2 {
		material = "DZ\surfaces\data\terrain\cp_conifer_common2.rvmat";
	};
	class cp_conifer_moss1 {
		material = "DZ\surfaces\data\terrain\cp_conifer_moss1.rvmat";
	};
	class cp_conifer_moss2 {
		material = "DZ\surfaces\data\terrain\cp_conifer_moss2.rvmat";
	};
	class cp_grass_tall {
		material = "DZ\surfaces\data\terrain\cp_grass_tall.rvmat";
	};
	class cp_grass {
		material = "DZ\surfaces\data\terrain\cp_grass.rvmat";
	};
	class cp_dirt {
		material = "DZ\surfaces\data\terrain\cp_dirt.rvmat";
	};
};

class Legend {
	picture = "\vwe\zone\worlds\prgrnd\source\mapLegend.png";
	class Colors {
		cp_rock[] = {{0,0,255}}; //скала использовал в воронке
		cp_gravel[] = {{0,255,0}}; //гравий
		cp_concrete1[] = {{255,0,0}}; // бетон под дорогой, бетон, строения
		cp_dirt[]={{0,0,0}}; // грязь
	};
};

листинг config.cpp

class CfgPatches
{
	class vwe_zone_worlds_prgrnd
	{
		requiredAddons[] = {"DZ_Data"};
	};
};

class CfgWorlds
{
	class CAWorld;
	class ProvingGrounds_vwe: CAWorld
	{
		description = "ProvingGrounds_vwe";
		longitude = 30.0;
		latitude = -45.0;
		worldName = "vwe\zone\worlds\prgrnd\world\ProvingGrounds_vwe.wrp";		
		cutscenes[] = {};
		class Navmesh
		{
			#include "cfgNavmesh.hpp"
		};

		startTime = "14:20";
		startDate = "11/10/2011";

		centerPosition[] = {1024.0, 1024.0, 300.0};

		clutterGrid = 1.0;

		clutterDist = 125.0;

		noDetailDist = 65.0;
		fullDetailDist = 10.0;

		volFogOffset = 0;
		
		terrainNormalTexture = "vwe\zone\worlds\prgrnd\data\global_nohq.paa";

		class OutsideTerrain
		{
			satellite = "DZ\worlds\chernarusplus\data\outside_sat_co.paa";
			enableTerrainSynth = 1;
			class Layers
			{
				class Layer0
				{
					nopx = "DZ\surfaces\data\terrain\cp_grass_nopx.paa";
					texture = "DZ\surfaces\data\terrain\cp_grass_ca.paa";
				};
			};
		};

		// 2d map location names
		class Names {};

		// 2d map grid
		class Grid
		{
			offsetX = 0.0;
			offsetY = 0.0;
			class Zoom1
			{
				zoomMax = 0.15;
				format = "XY";
				formatX = "000";
				formatY = "000";
				stepX = 100.0;
				stepY = 100.0;
			};
			class Zoom2
			{
				zoomMax = 0.85;
				format = "XY";
				formatX = "00";
				formatY = "00";
				stepX = 1000.0;
				stepY = 1000.0;
			};
			class Zoom3
			{
				zoomMax = 1e+030;
				format = "XY";
				formatX = "0";
				formatY = "0";
				stepX = 10000.0;
				stepY = 10000.0;
			};
		};
		
		ilsPosition[] = {0.0,0.0};
	        ilsDirection[] = {0.0,0.0,0.0};
	        ilsTaxiIn[] = {0.0,0.0};
	        ilsTaxiOff[] = {0.0,0.0};
	        drawTaxiway = 0;
	        class SecondaryAirports    {};
		// 2D map item params

		mapDisplayNameKey = "Порт карты ProvingGrounds из Арма 2";
		mapDescriptionKey = "Порт карты ProvingGrounds из Арма 2 в Dayz";
		mapTextureClosed = "dz\gear\navigation\data\map_chernarus_co.paa";
		mapTextureOpened = "dz\structures\signs\tourist\data\karta_co.paa";
		mapTextureLegend = "dz\structures\signs\tourist\data\karta_side_co.paa";
		userMapPath = "dz\gear\navigation\data\usermap";
		
		minTreesInForestSquare = 10;	// for 2d map (also affects forest controller)
		minRocksInRockSquare = 5;		// for 2d map
		
		soundMapAttenCoef = 0.01;		// sound map params
		class SoundMapValues
		{
			treehard = 0.03;
			treesoft = 0.03;
			bushhard = 0.0;
			bushsoft = 0.0;
			forest = 1.0;
			house = 0.3;
			church = 0.5;
		};
		class Sounds
		{
			sounds[] = {};
		};
		
		// ambient life (flies, leaves,..)
		class Ambient {};
	};
};

 

 

 

 

 

Edited by vitacite (see edit history)

Share this post


Link to post
Share on other sites



19 часов назад, vitacite сказал:

Короче полтора часа работы и я стал обладателем спутниковой карты и детальной маски размером 2048 на 2048...

 

Не бьёт математика, мой падаван).

Если лаеры брались, ну точно не модифицированные, из армы 2, путём банальной распаковки аддона, то ни сатка, ни маска, ни как не могут получить на выходе 2048, после сведения лаеров вместе.

 

Следи за руками, всё без обмана).

Имеем 6 х 6 = 36 лаеров.

Каждый лаер имеет размер 128 пикселей.

По 16 пикселей с краю в каждом лаере отдано под оверлап.

 

Включаем калькулятор

Каждый лаер имеет фактический размер
128px - (16px * 2) = 96px

И да я в танке про математику, не надо тыкать пальцем в скобки.

 

Что имеем в сухом достататке?

А вот что

96px * 6 = 576px

это и есть размер исходников спутниковой карты и маски поверхностей, во всяком случае отталкиваясь от того, во что я смотрю).

Share this post


Link to post
Share on other sites

PS

Так же нужно иметь ввиду такой нюанс, если маска поверхностей разрабами нарезалась в четырёх цветном формате, то подобный способ вполне может оказаться корректным.

А если в шести цветном, то вам поможет разве что аллах на небесах, в ручную вы маску не дёрнете, а что бы сделать это программными алгоритмами, не руками, как и делают правильные "пацаки", то нужен кто то кто раскурит кальян на эту тему, я в одного скурил всё что есть, и не познал дзен шести цветной маски).

Share this post


Link to post
Share on other sites
Posted (edited)

Приветствую тебя ОлбвиВанКиноби, и да прибудет с тобой великая сила. Касательно твоих расчетов, Каждый нарезанный лайер в оригинальной карте составляет 512 x 512 (я так понимаю у тебя исходники иные, я брал из СА для Арма 3 (о чем указано выше) т.к. Арма 2 у меня нет.) Размер нарезанных лайеров 512x512 пикселей их именно 6, и конечно 512 x 6 это 3072, а не 2048, но они прекрасно входят в 2048 как раз за счет оверлапа, который работает при пересечении лайеров между собой, но когда дело касается края карты, то текстура в оригинале просто обрезана до нужного размера, чтобы выйти на эти 2048 посмотри внимательно на скрин. В левый верхний и нижний лайеры. оба они 512, но при обрезке оверлапа размер именно текстуры абсолютно разный.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

 

И для того чтобы это увидеть вообще не нужно никаких расчетов, все замечательно собирается попиксельно. Размеры оригинальной маски и сатки указаны в исходнике карты и они 2048 на 2048. Размер сетки 512 x 4 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

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

А вот касательно алгоритмов, и маски я с тобой согласен. Если цветов много, то (Слово удалено системой) эту маску соберешь, я бы даже сказал, что проще будет собрать сатку и маску запилить уже с сатки, чем собирать ее руками, разбираясь где там какой цвет в текстурах заменили. Но людей которые будет писать такие алгоритмы нет и не будет.  Конкретно в данном туторе описана "технология", как собрать подобный пазл, а не как сделать карту под дейз без пер...баных краев.  

 

Edited by vitacite (see edit history)

Share this post


Link to post
Share on other sites
1 час назад, SteelRat сказал:

 

 

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

 

Share this post


Link to post
Share on other sites

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

1. Почему портированные дороги, отображаются нормально в террейн-билдере на карте, но после забинарке в dayz исчезают. Геометрию (которой нет в оригинальных дорогах) я добавил еесно.

2. Почему у оригинальных деревьев из Арма 2, даже после их адаптации под Dayz улетают стволы

 

Share this post


Link to post
Share on other sites

ЗЫ 2

Хи хи, и моя математика не бьёт).

Ну хлопцы в чехии живут).

Такое впечатление что из всех карт на реал виртуалити только Чернарусь сделана по феньшую, то есть, по всем правилам заложенным самими программистами которые пилили двигло.

Попытаюсь на пальцах о чём я.

 

За оверлап мы выше говорили.

Так вот, карта Чернаруси, сконфигурирована в террейн билдере по феньшую, то есть, размерность самого мира соответствует, количеству лаеров, то есть, размер мира делится без остатка на размер лаера минус оверлап умноеженное на 2.

 

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

То есть, кол-во пикселе в оверлапе одинаково во всех лаерах, от первого до последнего.

 

А карта Утёс, например, что в арме 2 и в семплах под даезет, сконфигурирована руками растущими из жопы, в прямом смысле этого слова.

 

Тут на рессурсе какая то трабла с вставкой картинок. По этому желающие по сравнивайне сами локально лаеры спутниковой карты. Что бы проще было понять, на первом лаере и последнем полосы по краям лаера, это и есть оверлап, так вот, если размеры оверлапа разнятся в первом лаере и последнем, это показатель рук растущих из задницы.

И именно это является причиной, когда некоторые наблюдают артефакты на поверхностях по краю карты, а в частности справа и внизу.

 

Биляди чешские. Спецально что ли так делают, что бы за жизнь (Слово удалено системой) понял как их помойка работает).

 

Share this post


Link to post
Share on other sites
Posted (edited)

По поводу женщин с низкой социальной ответственностью, работающих у бегемотов, скорее причина это та самая низкая соц. ответственность :))) А вот как мне сделать чтобы при размерах сатки и маски в 2048 оверлап сделался, когда я нарежу по новой с них лайеры, дабы после порта не было этой (Слово удалено системой)ни с краями? 

Edited by vitacite (see edit history)

Share this post


Link to post
Share on other sites
1 час назад, vitacite сказал:

я брал из СА для Арма 3 (о чем указано выше) т.к. Арма 2 у меня нет.

 

у меня вкрадывается нехороший вопрос, а что, в таком случае, гайд для армы делает в разделе DayZ Standalone на форуме? Какой логикой руководствовались при размещении темы в ветке другой игры?

 

Share this post


Link to post
Share on other sites
1 час назад, vitacite сказал:

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

Бывают механики и по комфортней)

 

Share this post


Link to post
Share on other sites
38 минут назад, vitacite сказал:

По поводу женщин с низкой социальной ответственностью, работающих у бегемотов, скорее причина это та самая низкая соц. ответственность :))) А вот как мне сделать чтобы при размерах сатки и маски в 2048 оверлап сделался, когда я нарежу по новой с них лайеры, дабы после порта не было этой (Слово удалено системой)ни с краями? 

Изменено 35 минут назад пользователем vitacite (история изменений)

Что то с памятью моей стало ....

Мы с картой от Армани что давеча делали?)

Я уже успел опохмелиться, а ты?)

Share this post


Link to post
Share on other sites
19 минут назад, 123new сказал:

у меня вкрадывается нехороший вопрос, а что, в таком случае, гайд для армы делает в разделе DayZ Standalone на форуме? Какой логикой руководствовались при размещении темы в ветке другой игры?

Осмелюсь ответить за автора, думаю не ошибусь.

Он сделал гайд как портитровать мир, например из армы, в дайзет. Так что про дайзет).

А за одно и гадким чехам на орехи).

Share this post


Link to post
Share on other sites
1 час назад, vitacite сказал:

По поводу женщин с низкой социальной ответственностью, работающих у бегемотов, скорее причина это та самая низкая соц. ответственность :))) А вот как мне сделать чтобы при размерах сатки и маски в 2048 оверлап сделался, когда я нарежу по новой с них лайеры, дабы после порта не было этой (Слово удалено системой)ни с краями? 

Изменено 1 час назад пользователем vitacite (история изменений)

 

Повеселись)

Делится без остатка
2048 / 8 = 256

Размер лаера: 512
Оверлап: 256 / 2 = 128

Проверяем:
	Функция:
		размер мира / (размер лаера - (оверлап * 2)) = 8 
		2048 / (512 - (128 * 2)) = 8

Итого:
	кол-во лаеров: 8 x 8 = 64

 

Share this post


Link to post
Share on other sites
Posted (edited)
1 час назад, 123new сказал:

у меня вкрадывается нехороший вопрос, а что, в таком случае, гайд для армы делает в разделе DayZ Standalone на форуме? Какой логикой руководствовались при размещении темы в ветке другой игры?

 

 

Ну так карта портированна в Dayz. Где написано, что она для Арма???  Исходники карты от Арма 2, как ты знаешь бисы текстурами не озаботились.

Edited by vitacite (see edit history)

Share this post


Link to post
Share on other sites
Posted (edited)

Эх,  я кстати когда ее увидел еще на Арма 2, все мечтал сделать побольше.. чтобы было не 2 на 2 км... а например хотя бы 8 на 8 в том же сетинге.. выжженое поле... воронки от взрывов, полуразрушенные постройки.  Может получится на Dayz воплотить мечту ;)) Одна проблема фонарные столбы, здания после допилки более менее портируются. А вот дороги и деревья ни в какую :((( 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

 

Вот хоть убей не понимаю, что с дорогами и деревьями. Если деревья со скрипом заменил на ванильные dayz... то что делать с дорогами не пойму 😞

Оно конечно и с текстурой заходит... но дорога была бы самое то...

 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

 

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

 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Смотришь на нее и понимаешь - какие масштабные изменения должны были произойти чтобы там сморщило природу...

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

да и ржавые мосты и столбы из Арма 2, выглядят ничуть не хуже рипа сталкерских 🙂

 

Edited by vitacite (see edit history)

Share this post


Link to post
Share on other sites
8 часов назад, vitacite сказал:

 

Ну так карта портированна в Dayz. Где написано, что она для Арма???  Исходники карты от Арма 2, как ты знаешь бисы текстурами не озаботились.

вывод чисто на основе того ответа, что был в цитате прошлой. Если это так, то все ок, я просто удостоверился. Это же форум 🥂

Share this post


Link to post
Share on other sites
02.10.2020 в 07:24, vitacite сказал:

А вот касательно алгоритмов, и маски я с тобой согласен. Если цветов много, то (Слово удалено системой) эту маску соберешь, я бы даже сказал, что проще будет собрать сатку и маску запилить уже с сатки, чем собирать ее руками, разбираясь где там какой цвет в текстурах заменили. Но людей которые будет писать такие алгоритмы нет и не будет.  Конкретно в данном туторе описана "технология", как собрать подобный пазл, а не как сделать карту под дейз без пер...баных краев.  

 

Там все легко на самом деле, я собирал Altis и Tanoa(в них по 5 текстур+6-я нормаль) и все собралось в идеальном виде.
Есть основные 4 цвета, Черный, Красный, Синий и Зеленый, это уже 4 текстуры, а вот пятая, это полупрозрачный синий(есть полупрозрачные и красный/зеленый, но они считаются тоже самой текстурой как и не прозрачные, выделяется только синий в 5-ю текстуру, а 5-я текстура это последняя, больше нельзя).

Share this post


Link to post
Share on other sites
Posted (edited)

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

Edited by nIkRon (see edit history)

Share this post


Link to post
Share on other sites
20 часов назад, nIkRon сказал:

Там все легко на самом деле, я собирал Altis и Tanoa(в них по 5 текстур+6-я нормаль) и все собралось в идеальном виде.
Есть основные 4 цвета, Черный, Красный, Синий и Зеленый, это уже 4 текстуры, а вот пятая, это полупрозрачный синий(есть полупрозрачные и красный/зеленый, но они считаются тоже самой текстурой как и не прозрачные, выделяется только синий в 5-ю текстуру, а 5-я текстура это последняя, больше нельзя).

 

Погоди а как же 6-я ? 

Share this post


Link to post
Share on other sites
Posted (edited)

я несколько с другим столкнулся.. например у тебя лайер текстуры содержит 3 цвета маски зеленый черный и красный... а слоедующий за ним 2 цвета.. при этом тот цвет который ранее был красным не отображается, а тот который был зеленым становится красным.

Они меняются между собой.. понятно что я могу по пикселям догадаться и залить одним и тем же цветом.. но ...

 

 

Edited by vitacite (see edit history)

Share this post


Link to post
Share on other sites

@vitacite Да, цвета могут быть одинаковыми только лишь тогда когда текстуры и их количество отвечающие за эти пиксели одинаковые на обоих квадратах, смотреть на цвета впринципе не имеет смысла при восстановлении маски из слоев.

Share this post


Link to post
Share on other sites

@vitacite в названии материалов если заметил есть такая тема s_000_000_L01_n_l02
И вот эти L01 или n отвечает за текстуру, n = нет текстуры, L01 есть текстура, и L01 это первая текстура которая была указана в layers.cfg при нарезке слоев, L11 к примеру будет 11 текстурой и т.д
Если было выбрано 5+1, будет иметься 5 таких "пометок", пример: _L01_L02_n_L03_L02
И вот первая(в примере L01) пометка, всегда привязана к синему прикселю к примеру, вторая к красному и т.д, таким образом можно собрать маску определяя что к чему.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By vitacite
      Доброго времени суток комрады.  После успешного портирования карты 2048 на 2048 ProvingGrounds
      https://s-platoon.ru/topic/9864-portirovanie-sata-i-mask-map-iz-arma2arma3-v-dayz/
      решил исполнить свою "детскую мечту" и сделать ее большой ;)))) С этой целью для начала я решил увеличить ее в два раза.  И хотя уважаемый Олбиванкиноби задавал вопрос - а на х..я . Ну вот чтобы было.
      Увеличение карты требует, как минимум увеличения трех маски, сатки и карты высот.
       
      1.  Создание карты высот. 
      Оригинальная карта высот имеет Grid Size 512 px и превращается в 2048 путем умножения на Cell Size 1 px = 4 м. Мы не можем менять размер сетки в 4 т.е. это повлечет координальные изменения в том числе по отношению к установленным на карту объектам.  Поэтому путем умножением 512 x 2 приходим к следующим параметрам. 1024 px Grid Size и прежний Cell Size 1 px = 4 м.  Для успешного портирования узнаем среднюю высоту оригинальной карты высот для ProvingGrounds в моем случае 52 метра и создаем, используя l3DT пустую поверхность размером 1024 на 1024, и высотой 52 метра.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Таким образом мы получим ровную поверхность размером 1024 px.  Координатная сетка в террейн билдер начинается с левого нижнего угла.  Соответственно туда мы и будем вставлять "родную" высотку 
      ProvingGrounds   Для этого в меню Layer выбираем ImportLayer, выбираем нашу высотку в 512 px. и выставляем формат Layer Type = Height Field 
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      Выделяем наш слой, выбираем копировать и в появившемся меню выбираем левый нижний угол.
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      На скрине видно, что помеченная карта высот 512 встала в нижний угол, т.к. крайний нижний угол это 0, то все объекты с карты останутся на своих местах, правда наращивать карту придется вверх и вправо, ну и фиг с ним.  Чернота вокруг = это 0 высота. Поэтому если не хотите мучаться с перепадами с 52 метров до 0 и тд. заранее поменяйте высоту на карте на среднюю высоту исходника.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      Собственно самая сложная часть процесса готова сохраняем полученный результат с размером 1024 px. 
      Сатка и Маска позиционируются в фотошоп по такому же принципу в 0 координату левый нижний угол.  А дальше все будет зависить от умения пользоваться карандашом (маска)

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      и кисточкой (сатка) 

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      🙂

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      Результат после перенаразки лайеров и изменения размерности, собственно все на своих местах.
      Было
       
      Grid Size 512 x 512
      Cell Size 4
      Terrain Size 2048 
       
      стало
       
      Grid Size 1024 x 1024
      Cell Size 4
      Terrain Size 4096
       
       
       
       
       
       
       
       
    • By vitacite
      Данный гайд используется, как есть. По принципу  "Не нравится - не ешь!". Он подразумевает, что вы уже умеете делать карту для Арма 3, знаете как сконфигурировать диск P для Dayz и настроить Terrain Builder. 
      Знаете и понимаете зачем нужна маска, сатка и карта высот. Для примера, была выбрана поверхность из окрестностей ЧАЭС.  Ссылки на софт (есть в видео, но продублирую тут).
       
      СОФТ И ССЫЛКИ
      https://forums.bohemia.net/forums/topic/224613-qgis-game-terrain-tools/ - топик в богемии с описанием процесса для Арма 3
      https://qgis.org/en/site/ - ссылка на QGIS
      https://gitlab.com/Adanteh/qgis-game-terrains/-/wikis/home - ccылка на плагин который все делает сам 🙂
      https://urs.earthdata.nasa.gov//users/new - нужно будет зарегистрироваться, чтобы скачать высотку.
       
      Результатом станет отличная спутниковая карта, карта высот и маска. Если про sata-map (карту высот) все понятно из видео, то про маску - отдельная песня.
      Ее можно сгенировать двумя способами.
      Способ № 1

       
      OSM Based - заключается в том, что будут подгружены шейпы из QGIS и по ним сгенерирована маска  (Внимание! чтобы все заработало, до выгрузки маски, перейти в закладку ROADS (там же) и подгрузить шейпы дорог.) 
      Плюсы - быстро, минусы - фиговая точность и качество, и не везде эти слои есть. Например, для Европы и США будет более менее... для Чернобыля она просто никакая. В моем случае часть поверхности леса закрыта шейпами, а часть нет. Соответственно в маске там будет просто дырка.
       
      Cпособ № 2. Regions of Interrests (генерация маски с помощью искусственного интеллекта) (отмечаем чекпоинт и жмакаем на кнопку CREATE REGION OF INTEREST)

      после нажатия, развернется свиток, где можно будет выбрать:
      1. цвет для будующей маски.
      2. создать выделение с помощью полигона. 
      Чтобы все получилось,  НЕ НУЖНО! делать огромные полигоны!!!!  Нужно выделить маленькими полигонам(шейпами), наибольшее количество ВАРИАНТОВ травы, леса, грязи и тд. Чем больше вы покажите AI вариантов для каждого типа ваших поверхностей, тем более круто он обучится ее делать и тем круче маска будет сгенерирована.В результате получится маска качеством, как на видео. 

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      В текстовик в папке проекты будут сразу выгружены цвета вашей маски для Layer.cfg. Так же в маске изначально закрываются все проблемы с паразитными цветами, размытыми краями и тд. (если вы делали карту для Arma2/3) то понимаете о чем я.
      (Обратите внимание. Данный вариант потребует установки дополнительного плагина. Все что нужно сделать нажать на кнопку там же в свитке:)
      Install OrfeoTollbox (REQUIRED) И подождать, т.к. грузится и ставится оно сравнительно долго!
      Для выделения вариантов жмем на кнопку: 
      Create Sample в свитке и начинаем ввыделять полигонами объекты прямо поверх SATA-MAP (левой кнопкой мыши ставятся вершины, правой кнопкой закрывается полигон). Еще раз, выделяем маааленькими полигонами, максимальное число вариантов будущей поверхности на вашей спутниковой карте. Вы удивитесь сколько оттенков зеленого леса к примеру может там быть..
       
      Посе создания маска и нажатия кнопки GENERATE. Плагин сгенерирует и сохранит все слои (sata-map, mask-map, height-map, и текстовик с данными для Layer.cfg и Config.cfg, а так же параметрами вашего фрейме) в папку проекта QGIS.
       
      Все что останется, это скопировать файлы в Source вашего проекта, и можно все это загружать для создания фрейма в TB.
       
      После того, все слои в фрейме будут загружены и сконфигурированны в TB можно будет преступить генерации леса в утилитах ниже.
      Первая из них генерирует лес по маске.
       
      Учтите данная утилита для Arma 2 и не может работать с масками более чем 5120 на 5120 px, поэтому если размер вашей карты больше, то придется делать маску отдельно для леса. В при моих размерах пришлось у меньшать ее в три раза (когда будете делать это в фотошопе не забудьте выставить в окне RESIZE изменение размера с четкими контурами) иначе вашу четкую маску размоет и вы получите паразитные цвета.
       
      Маштабированную маску по которой садим лес сначала загружаем в проект...

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      Далее жмем на кнопку с деревом (Forest Geneator) подгружаем по новой маску леса. И нажимаем кнопку анализировать. Получим вид как на скрине.
      (список цветов в маске)
       
      Вам нужно будет выделить цвет из маски, и создать в нем массив с деревьями путем добавления их названий (список лежит в файлике ниже).

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      Добавив например в темно-зеленый цвет 20 вариантов елок вы сможете задать вероятность их появления на карте.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      После того, как все цвета будут выбраны и засеяны растительностью жмете Create. Опытным путем с 2-3 раза вы поймете насколько надо засеять деревья и кустарники, на какой местности, чтобы их было не слишком мало или много.  Ваши деревья будут рассажены по цвету, и выгружены как объекты в текстовый файл в формате VBS3
      "t_betulapendula_2fc";201816.625;7.632;149.000;-0.131;0.924;1.000;0.000; Будьте бдительны! Данная утитилита проекты (почему-то) не сохраняет. Если вы ее закроете, то придется проделывать ВЕСЬ ПУТЬ!!!! сначала!!! Поэтому во время тестов выгружаем отдельный слой в Terrain Builder объекты из конвертированного файла, запускаем бульдозер оцениваем плотность и красоту. Если не устраивает, меняем процентное соотношение в программе и заново сохраняем НЕ ЗАКРЫВАЯ ЕЕ!!!!
       
      Выгруженный нами файл для VBS3 придется еще раз конвертировать для билдера от Arma 3 (Dayz SA). Процесс достаточно простой. Все сделает вторая утилита. (Внимание!!!! Я не знаю зачем она это делает, перед каждым названием вашего дерева будет стоять не (") а (""), поэтому для окончательной загрузки, лишнюю  (") надо будет удалить используя подручные средства. (например notepad++).
       
      При всей муторности описания поверьте мне это самый быстрый из существующих способов более-менее качественной рассадки деревьев. Поигравшись с параметрами и настройками, вы сможете рассадить растительность на карте за 10-15 минут.
      Собственно все. Незабудьте прежде чем подгружать в TB объекты из текстовика (через Import Object) сами деревья подгрузить в TB и задать все необходимые параметры.
       
      Ниже ссылки
      https://www.armaholic.com/page.php?id=10508 - программа чтобы поставить на карту деревья
      https://forums.bohemia.net/forums/topic/226269-tools-utilities-compilation-list-for-arma3/ V3 to TB Objectlist Converter
       
      Как обычно все до чего дотрагиваются Bohemia работает криво косо и через жопу. Но в моем случае все заработало 🙂 
      Удачи.
      PS: результат если все сделать правильно.
       
       
    • By vitacite
      При создании собственной карты, если мы хотим, чтобы все работало корректно, мы должны использовать специальную текстуру нормали.  Если в  Арма 3, нормаль была совсем не обязательным фактором, подцеплялась при желании в террейн билдер, и нарезалась в виде слоев, вместе с тектурами sata- и mask- map. То в Dayz все выглядит координально иначе. Для начала она подцепляется не в террейн-билдере (хотя рудиментальная возможность этого сохранилась), а через конфиг карты и служит абсолютно конкретной цели - без нормали тень от клаттеров (травы и тд). на текстурах не работает корректно. Без нормали (любой) появятся белые артефакты, по контуру травы.  Собственно информацию об этом можно подчерпнуть из конфига демонстрационной карты в Dayz-Samples Utes
              // normal map for shadowing of grass-clutter (пер. карта нормалей для затенения травы-клаттеров)         terrainNormalTexture = "samples\test_terrain\data\utes_global_nohq.paa"; Теперь о том, как выглядит нормаль для карты в Dayz 🙂  А выглядит она вот так..

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Мало того что она желтая, она еще и отражена по вертикали! Для сравнения я привел слева сата-мап, справа нормаль от нее 🙂Почему она перевернутая я Вам не расскажу, но поверьте это так. Перейдем к изготовлению ее для вашей карты.  Если у Вас есть карта высот,  Вы без труда можете изготовить нормаль в программе типа L3DT. 

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Полученный результат экспортируем в формат .bmp и открываем фотошоп, в фотошопе и заливаем синий канал черным цветом.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Теперь через редактирование->трансформирование->отражение по вертикали - переворачиваем ее.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      И сохраняем в папку data вашей карты в формате *.tga, конвертируем используя textview в *.paa  и собственно Ваша нормаль готова. Все что осталось сделать подвязать ее в конфиге путем изменения параметра на путь к вашей карте.
      terrainNormalTexture = "папка_проекта\моя_карта\data\моя_карта_global_nohq.paa"; PS:  огромное спасибо SteelRat за то что помог разобраться с этой темой.
      Всем бобра.
       
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.