Перейти к содержимому


Фотография

Небольшой мануаль для создателей Terrain-а


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 OFFLINE   vitacite

vitacite

    Ефрейтор

  • Пользователи
  • 98 сообщений
  • Откуда:Novosibirsk

Отправлено 07 February 2017 - 09:59

Создание вашей карты для Арма3.

 

1). Создание нового Тега

 

Начнем с того, что этот шаг необязателен. Считайте это хорошим тоном, чтобы облегчить работу другим мод-мейкерам.

  • Для регистрации Тэга - вашего будущего мода и карты, необходимо проследовать на 

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

     и создать там аккаунт (если вы еще не создали).
  • Правильно созданный и использованный Тэг вашего мода, будет гарантировать оригинальность названий аддона и его элементов и исключит совпадения с другими модами. 
  • Примеры применения тега (для тех кто не в танке). Например Ваш Тэг "slk" = @slk_имямода / slk_groud.paa / slk_string.hpp / slk_init.sqf - и тд. и тп.
  • Для создания ТЭГ-а переходим в 

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

     .
  • Придумываем свой тег.
  • Вводим его в соответствующее поле (в верхнем правом углу) под ярлыком тэг и нажимаем кнопку Check, чтобы убедиться в его оригинальности. Если ваш Тэг свободен - продолжаем дальше. Заполнять остальную часть формы можно по желанию. По окончанию нажимаем Submit TAG - чтобы зарегистрировать Ваш новый Тэг.

2). Установка Арма 3 Tolls. Думаю разобраться как его установить из STEAM можно и без мануала. 

Однако есть тонкости установки на Windows 10. Как это бывает у BIS-ов обычно, все для корректной работы утилит необходимо создать ярлыки для утилит типа (obejct builder, terrain builder) и выставить в ярылках режим совместимости с windows 7 и запуск с правами администратора, в противном случае,  во время работы программ могут приключиться жесткие лаги, практически исключающие нормальную работу над картой.

 

3)  Установка диска P и распаковка Арма3 с помощью Mikero Tools.  

Комрад под именем Mikero бывший сотрудник BIS, который делает набор утилит бинарки/разбинарке аддонов для Арма3, создания модов, и тд и тп.  Хотя диск P: можно установить и без помощи Mikero, но работать без них сложновато. Грубо говоря БИС забили и на мододелов и на разработчиков, и вообще они по моему личному мнению - жадные криворукие уроды. 

Утилиты Mikero хотя бы частично исправляют то блядство, которое твориться вокруг иструментов разработчика на  Арму. 

К сожалению они платные. Для покупки утилиты необходимо перечислить 30 евро автору и написать письмо - типа я перечислил деньги вышлите пароль. В течении 2-3х дней пароль приходит. Подписка длится 1 год.

Разберем установку диск P отдельно. Будем считать, что в нашем примере папка стима располагается на диске D (т.е. в нетипичном месте) и в нее установлена арма и Arma3Tools, а сам диск P:\ (являющийся виртуальным образом) находится там же в папке ArmaTool[Work Drive].

  • Запускаем Arma3Tools
  • Жмем на Preferences->Options и вводим так, как это показано на скрине ниже:

 Прикрепленный файл  TuT_3.png   42.61К   11 Количество загрузок:

       

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

  • Жмем Register
  • В основном окне Арма3Tools выбираем 

Прикрепленный файл  TuT_5.png   1.94К   7 Количество загрузок:

 

и монтируем диск P:\ 

 

Прикрепленный файл  TuT_4.png   1.77К   4 Количество загрузок:

 

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

 

  • Идем в папку куда мы установили MikeroTools и ищем там файл Arma3P.bat все что надо сделать это запустить файл, и в открывшейся консоли на вопрос какой из дисков выбрать - указать диск P, после чего берем чашку кофе и ждем пока микеро распакует содержимое Арма3 на диск P:
  • После распаковки идем в Arma3Tools повторно выбираем Прикрепленный файл  TuT_5.png   1.94К   7 Количество загрузок: и устанавливаем бульдозер.

Если все выполнено правильно, мы имеем на борту правильно распакованные файлы Arma3 на диске P:

Note для правильной работы необходимы файлы

1. ExtractPBO
2. DeRap
3. Depbo dll
4. ArmA3P

утилиты можно найти тут 

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

 

4) Настройка папки Вашего проекта. 

а. Пройдите на диск P:\ 

б. Создайте папку с названием sripts (после микро она создаться автоматически и в ней будут расположены дополнительные скрипты).

в. Создайте папку на диске P:\ с названием = Вашему тегу например Тэг abc значит папка P:\abc\

в этом случае текстуры поверхностей и материалы вашего проекта, будут находиться: 

“P:\abc\yourproject\data”.

Исходники (карта высот, САТ-ка, маска) будут находится в папке:

“P:\abc\yourproject\source”

в корень этой папки нужно будет полжить и Layers.cfg

В папку P:\scripts\ необходимо положить файл editor.sqs где будет обозначен путь к вашим дорогам.

 

5) Изменения в текстурах, RVMAT, путях и тд. В папку P:\abc\yourproject\data переписываем Ваши текстуры которые будет видеть игрок на поверхности и материалы (можно и из папки Arma3) и переименовываем их в стиле... abc_sampleMap_dirt_co.paa

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

abc\abc_sampleMap\data\abc_sampleMap_dirt_nopx.paa
abc\abc_sampleMap\data\abc_sampleMap_dirt_co.paa
abc\abc_sampleMap\data\abc_sampleMap_dirt.rvmat

Это необходимо т.к. поверхность будет привязана не к конкретной текстуре, а к стилю... т.е. 

abc\abc_sampleMap\data\abc_sampleMap_dirt_*

6) После копирования текстур и материалов их необходимо прописать в Layers.cfg в соответствии Маской вашего проекта файл будет находится в нашей папке source.

// список текстур и материалов с путями
class Layers {
  class Grass {
       texture="abc\abc_sampleMap\data\abc_samleMap_grass_nopx.paa";
       material="abc\abc_sampleMap\data\abc_samleMap_grass.rvmat";
  };

  class Sand {
       texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1)";
       material="abc\abc_sampleMap\data\abc_samleMap_sand.rvmat";
  };

  class Rock {
        texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1)";
        material="abc\abc_sampleMap\data\abc_samleMap_rock.rvmat";
  };

  class Mud {
        texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1)";
        material="abc\abc_sampleMap\data\abc_samleMap_Mud.rvmat";
   };
};

// цветовая легенда..
  class Legend {
    picture="abc\abc_sampleMap\source\mapLegend.png";
    class Colors {
    /// color names should correspond to surface layer names
    grass[]={{0,255,131},{255,255,0}};
    sand[]={{207,115,0}};
    rock[]={{0,255,255},{121,255,0}};
    mud[]={{0,255,0}};
  }
};

Файл легенды mapLegend.png выглядит так:

Прикрепленный файл  800px-SurfaceMapLegend.png   36.37К   4 Количество загрузок:

 

и находится в папке Source нашего проекта.

Так же нам понадобится маска - это цветовая карта которая объяснит MapBuilder-у где и какая текстура находится - выглядит она примерно так...

 

Прикрепленный файл  300px-Layer-map_lco.png   50.99К   3 Количество загрузок:

и находится там же в папке Source.

 

Итак в папке abc/abc_SimpleMap/Source должны находиться следующие файлы:

sata_map - спутниковая карта проекта (которую игрок будет видеть при взлете, а так же взгляде вдаль... 

mask_map - маска по которой накладываются текстуры поверхности

hight_map - карта высот в формате xyz, которую можно получить различными способами например путем использования L3DT.

 

Подготовительный этап можно считать завершенным если Вы

  • установили все утилиты смонтировали диск P:\ и распаковали туда правильно папки с Arma3
  • создали на диске P: папку scripts, рабочую папку вашего проекта с вложенными туда папками source и data
  • в папку data переписали выбранные вами текстуры в формате .png и правильно их переименовали
  • в папку source переписали файлы sata_map - спутниковая карта, mask_map - карта маски, hight_map - карта высот (в формате .png или .bmp);
  • туда же скопировали mapLegend.png и создали Layers.cfg с цветовой легендой и описанием текстур.

Продолжение следует.


Сообщение отредактировал vitacite: 07 February 2017 - 10:26

  • 3

#2 OFFLINE   vitacite

vitacite

    Ефрейтор

  • Пользователи
  • 98 сообщений
  • Откуда:Novosibirsk

Отправлено 09 February 2017 - 10:37

Продолжение..

Прежде чем мы начнем работать непосредственно в Terrain Builder необходимо подготовить не только текстуры и основные слои карты. Еще необходимо прописать конфигурационные файлы. Начнем с конфигурации дорог:

В моем примере, мы будем строить дороги по методу Shape. Этот метод имеет свои плюсы и минусы. Shape можно выгрузить с Terrain Processor-а, или нарисовать достаточно быстро самому, прямо в Object Builder на заморачиваясь на изгибы, сопоставление конец и начала  текстуры дороги и тд.

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

Для начала надо создать файл RoadsLib.cfg, можете пользоваться файлом ниже, дабы не заморачиваться взят стандартный файл RoadLib.cfg из Arma3.

 

Где 

class Road0001 — равен первому айди (ID =1)
width = 10; — ширина дороги в метрах
map — тип отображения дороги на карте ( «main road», «City Road», «road», track, «path»)
AIpathOffset = 1; — положение ботов на дороге

В итоге получится что-то типа...

class RoadTypesLibrary {
     class Road0001 {
     width = 10;
     mainStrTex      = "a3\roads_f\roads\data\road_ca.paa";
     mainTerTex      = "a3\roads_f\roads\data\road_end_ca.paa";
     mainMat         = "a3\roads_f\roads\data\Road.rvmat";
     map             = "road";
     AIpathOffset = 1;
     };
     
     class Road0002 {
     width = 8;
     mainStrTex      = "a3\roads_f\roads_new\data\road_ca.paa";
     mainTerTex      = "a3\roads_f\roads_new\data\road_end_ca.paa";
     mainMat         = "a3\roads_f\roads_new\data\Road.rvmat";
     map             = "road";
     AIpathOffset = 2;
     };	

     class Road0003 {
     width = 5;
     mainStrTex      = "a3\roads_f\roads_new\data\path_ca.paa";
     mainTerTex      = "a3\roads_f\roads_new\data\path_end_ca.paa";
     mainMat         = "a3\roads_f\roads_new\data\path.rvmat";
     map             = "track";
     AIpathOffset = 0;
     };

     class Road0004 {
     width = 5;
     mainStrTex      = "a3\roads_f\Roads_AE\data\surf_roaddirt_path_ca.paa";
     mainTerTex      = "a3\roads_f\Roads_AE\data\surf_roaddirt_path_end_ca.paa";
     mainMat         = "a3\roads_f\Roads_AE\data\surf_roaddirt_path.rvmat";
     map             = "track";
     AIpathOffset = 10;
     };
  
     class Road0005 {
     width = 5;
     mainStrTex      = "a3\roads_f\roads\data\path_ca.paa";
     mainTerTex      = "a3\roads_f\roads\data\path_end_ca.paa";
     mainMat         = "a3\roads_f\roads\data\Path.rvmat";
     map             = "road";
     AIpathOffset = 2.5;
     };

     class Road0006 {
     width = 3;
     mainStrTex      = "a3\roads_f\Roads_AE\data\surf_roaddirt_road_ca.paa";
     mainTerTex      = "a3\roads_f\Roads_AE\data\surf_roaddirt_road_end_ca.paa";
     mainMat         = "a3\roads_f\Roads_AE\data\surf_roaddirt_road.rvmat";
     map             = "track";
     AIpathOffset = 2.5;
     };
};

Если брать структуру нашего проекта, этот файл должен находиться в abc\abc_sampleMap\data\roads\ 

 

Теперь надо объяснить где находится файл дорог не только TerrainBuilder-у но и бульдозеру для этого в корне диска P: необходимо в создать файл

P:\scripts\editor.sqs  следующего содержания:

~1.0
diag_log "Before Loading Roads";
result = buldozer_LoadNewRoads "P:/abc/abc_sampleMap/data/roads/";
diag_log "After Loading Roads";

Обратите внимание на написание слеша (обратный) и циферку ~1.0 которая обозначает время задержки необходимое бульдозеру для отрисовки дороги, иногда этой задержки недостаточно, в этом случае вы либо не увидите дорогу, либо бульдозер при запуске будет крашить систему.  Как правило можно решить проблему увеличением числа ~2.0 и тд. 

Оба этих файла должны быть правильно сконфигурированы для работы TerrinBuilder независимо от метода нанесения шейпов (выгрузкой из ТП или рисования в ручную).

 

После того, как конфигурация дорог настроена, необходимо указать пути в файле конфигурации к карте, (который мы рассмотрим ниже), к файлу road.shp в который мы сохраним дороги.

newRoadShape= "P:\abc\abc_sampleMap\data\roads\road.shp";

Приступим к файлу конфигурации, этот файл должен быть расположен рядом вместе с компилируемой картой - она же папка для файлов проекта.

назовем ее... P:\abc\abc_sampleMap\sm_map\

Файл должен иметь название config.cpp следовательно располагаться P:\abc\abc_sampleMap\sm_map\config.cpp

 

Рассмотрим простейший пример такого файла.

#define _ARMA_
//Class config.bin{

class CfgPatches {
// Папка в которой находится карта.
      class abc_abc_sampleMap_sm_map {
      units[] = {};
      weapons[] = {};
      requiredVersion = 1.0;
      requiredaddons[]={"A3_Map_Stratis"}; // Список аддонов, которые необходимы для нормальной работы карты.
      version = "25/01/2015"; // Ваша версия
      fileName = "yourtag_yourproject.pbo"; // путь к вашему .pbo файлу в проекте этот параметр не обязательный
      author = "your_username";
      };
};

class CfgWorlds {
      class CAWorld;
            class Stratis: CAWorld {
                class Grid;
                class DefaultClutter;
            };
      
        class abc_abc_samplemap: Stratis {
              cutscenes[] = {};
              author = "имя автора карты";
              description = "краткое описание вашего проекта";
               pictureMap = "\abc\abc_samplemap\data\ui\abc_samplemap\abc_pictureMap.paa"; // картинка, которая показывает при загрузки вашего мода.
               worldName = "\abc\abc_samplemap\sm_map\abc_samplemap.wrp"; // путь к wrp файлу карты
               // стартовые параметры при запуске карты
               startTime = "11:00";
               startDate = "05/03/2001";
               startWeather = 0.2;
               startFog = 0.0;
               forecastWeather = 0.6;
               forecastFog = 0.0;
               centerPosition[] = {1024,1024,500}; //центр карты
               seagullPos[] = {1024,1024,500}; //центр карты для спектратора
               longitude = 65;
               latitude = -34;
               elevationOffset = 5;
               envTexture = "A3\Data_f\env_land_ca.tga";
               minTreesInForestSquare = 2; // минимальное число деревьев рядом с которыми движок считает, что мы в лесу.
               minRocksInRockSquare = 2; // минимальное число камней рядом с которым движок считает, что мы в горах.
               newRoadShape= "P:\abc\abc_sampleMap\data\roads\road.shp";
               ilsPosition[] = {1024,1024};
               ilsDirection[] = {0.5075,0.08,-0.8616};
               ilsTaxiIn[] = {};
               ilsTaxiOff[] = {};
               drawTaxiway = 0;

               class SecondaryAirports {};

               class Sea {
               seaTexture = "a3\data_f\seatexture_co.paa";
               seaMaterial = "#water";
               shoreMaterial = "#shore";
               shoreFoamMaterial = "#shorefoam";
               shoreWetMaterial = "#shorewet";
               WaterMapScale = 20;
               WaterGrid = 50;
               MaxTide = 0;
               MaxWave = 0;
               SeaWaveXScale = "2.0/50";
               SeaWaveZScale = "1.0/50";
               SeaWaveHScale = 2.0;
               SeaWaveXDuration = 5000;
               SeaWaveZDuration = 10000;
       };
  
       class Grid: Grid {
            offsetX = 0;
            offsetY = 5120;
            
            class Zoom1 {
            zoomMax = 0.15;
            format = "XY";
            formatX = "000";
            formatY = "000";
            stepX = 100;
            stepY = -100;
        };

        class Zoom2 {
            zoomMax = 0.85;
            format = "XY";
            formatX = "00";
            formatY = "00";
            stepX = 1000;
            stepY = -1000;
       };

       class Zoom3 {
            zoomMax = 1e+030.0;
            format = "XY";
            formatX = "0";
            formatY = "0";
            stepX = 10000;
            stepY = -10000;
        };
  };

#include "cfgClutter.hpp" // конфигурация растительности привязанной к текстурам (трава и etc.)

        class Names { // метки на карте
	#include "abc_abcSamplemap.hpp"
        };
    };
};

class CfgWorldList {
        class yourtag_yourproject{};
};

class CfgMissions {
       class Cutscenes {
       };
};


//SURFACES
#include "cfgSurfaces.hpp"



Сообщение отредактировал vitacite: 09 February 2017 - 10:46

  • 3

#3 OFFLINE   vitacite

vitacite

    Ефрейтор

  • Пользователи
  • 98 сообщений
  • Откуда:Novosibirsk

Отправлено 09 February 2017 - 11:02

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

 

Cначала опишем опишем модели которые будут расти на нашей поверхности (трава, мелкие камни и тд... и тп.) для примера взяты модели из ванильной Арма 3 находятся они там же где основной конфигурационный файл

\abc\abc_samplemap\sm_map\cfgClutter.hpp
class Clutter	
{
   class yourtag_yourproject_BigFallenBranches_pine: DefaultClutter
	{
		model = "A3\Plants_F\Clutter\c_bigFallenBranches_pine.p3d";
		affectedByWind = 0.0; // действует на объект ветер или нет
		swLighting = "false";
		scaleMin = 0.3; // минимальный размер
		scaleMax = 0.7; // максимальный размер
	};
   class yourtag_yourproject_BigFallenBranches_pine02: DefaultClutter
	{
		model = "A3\Plants_F\Clutter\c_bigFallenBranches_pine02.p3d";
		affectedByWind = 0.0;
		swLighting = "false";
		scaleMin = 0.3;
		scaleMax = 0.7;
	};
   class yourtag_yourproject_BigFallenBranches_pine03: DefaultClutter
	{
		model = "A3\Plants_F\Clutter\c_bigFallenBranches_pine03.p3d";
		affectedByWind = 0.0;
		swLighting = "false";
		scaleMin = 0.3;
		scaleMax = 0.7;
	};
   class yourtag_yourproject_GrassGreenGroup: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrGrassGreen_group.p3d";
		affectedByWind = 0.6;
		swLighting = "true";
		scaleMin = 0.7;
		scaleMax = 1.0;
	};
   class yourtag_yourproject_GrassDry: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrGrassDry.p3d";
		affectedByWind = 0.5;
		swLighting = "true";
		scaleMin = 0.8;
		scaleMax = 1.2;
	};
   class yourtag_yourproject_GrassDryGroup: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrGrassDry_group.p3d";
		affectedByWind = 0.65;
		swLighting = "true";
		scaleMin = 0.65;
		scaleMax = 1.0;
	};
   class yourtag_yourproject_GrassDryMediumGroup: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrGrassDryMedium_group.p3d";
		affectedByWind = 0.7;
		swLighting = "true";
		scaleMin = 0.8;
		scaleMax = 1.0;
	};
   class yourtag_yourproject_WeedBrownTallGroup: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrWeedBrownTall_group.p3d";
		affectedByWind = 0.3;
		swLighting = "true";
		scaleMin = 0.9;
		scaleMax = 1.25;
	};
   class yourtag_yourproject_WeedGreenTall: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrWeedGreenTall.p3d";
		affectedByWind = 0.3;
		swLighting = "true";
		scaleMin = 0.8;
		scaleMax = 1.2;
	};
   class yourtag_yourproject_PlantMullein: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrPlantMullein.p3d";
		affectedByWind = 0.35;
		swLighting = "true";
		scaleMin = 0.7;
		scaleMax = 1.15;
	};
   class yourtag_yourproject_ThistleYellowShrub: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrThistleYellowShrub.p3d";
		affectedByWind = 0.2;
		swLighting = "true";
		scaleMin = 0.7;
		scaleMax = 1.1;
	};
   class yourtag_yourproject_ThistleThornGreen: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_Thistle_Thorn_Green.p3d";
		affectedByWind = 0.3;
		swLighting = "false";
		scaleMin = 0.3;
		scaleMax = 1.0;
	};
   class yourtag_yourproject_ThistleThornGreenSmall: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_Thistle_Thorn_Green.p3d";
		affectedByWind = 0.25;
		swLighting = "false";
		scaleMin = 0.4;
		scaleMax = 0.7;
	};
   class yourtag_yourproject_FlowerLowYellow2: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_Flower_Low_Yellow2.p3d";
		affectedByWind = 0.4;
		swLighting = "true";
		scaleMin = 0.6;
		scaleMax = 1.0;
	};

 };

\abc\abc_samplemap\sm_map\cfgSurfaces.hpp
class CfgSurfaces 
{
	class Default {};
	class yourtag_yourproject_dirt_Surface : Default
	{	
		 files = "yourtag_yourproject_dirt_*"; // название файла текстуры указанного в Layers.cfg обратите внимание указывается название до суффикса (_nohq, _co и тд..)
		 rough = 0.09;
		 maxSpeedCoef = 0.9;
		 dust = 0.5; // пыление
		 soundEnviron = "dirt"; // звуки при ходьбе
		 character = "Empty"; // клаттер который будет расти на текстуре.
		 soundHit = "soft_ground"; // звуки при стрельбе
		 lucidity = 1; // степень скольжения
		 grassCover = 0.03;
	};
	class yourtag_yourproject_dry_grass_Surface : Default
	{	
		 files = "yourtag_yourproject_dry_grass_*";
		 rough = 0.08;
		 maxSpeedCoef = 0.9;
		 dust = 0.75;
		 soundEnviron = "drygrass";
		 character = "yourtag_yourproject_dry_grass_Character";
		 soundHit = "soft_ground";
		 lucidity = 2;
		 grassCover = 0.1;
	};
	class yourtag_yourproject_forest_pine_Surface : Default
	{	
		 files = "yourtag_yourproject_forest_pine_*";
		 rough = 0.12;
		 maxSpeedCoef = 0.8;
		 dust = 0.4;
		 soundEnviron = "drygrass";
		 character = "yourtag_yourproject_forest_pine_Character";
		 soundHit = "soft_ground";
		 lucidity = 3.5;
		 grassCover = 0.04;
	};
	class yourtag_yourproject_grass_green_Surface : Default
	{	
		 files = "yourtag_yourproject_grass_green_*";
		 rough = 0.08;
		 maxSpeedCoef = 0.9;
		 dust = 0.15;
		 soundEnviron = "grass";
		 character = "yourtag_yourproject_green_grass_Character";
		 soundHit = "soft_ground";
		 lucidity = 4;
		 grassCover = 0.05;
	};
	class yourtag_yourproject_soil_Surface : Default
	{	
		 files = "yourtag_yourproject_soil_*";
		 rough = 0.09;
		 maxSpeedCoef = 0.9;
		 dust = 0.5;
		 soundEnviron = "dirt";
		 character = "Empty";
		 soundHit = "hard_ground";
		 lucidity = 1;
		 grassCover = 0.0;
	};
};

// В этом разделе описывается то, что растет на поверхности текстуры (названия и привязка к .p3d моделям из cfgClutter.hpp)
class CfgSurfaceCharacters {

        class yourtag_yourproject_forest_pine_Character {
		probability[] = {0.05,0.012,0.01,0.1,0.05}; // доля которую занимает модель на "клетке" местности покрытой текстурой максимальная сумма должна быть не больше 1, указывается для каждой модели обозначенной в names[]
		names[] = {"yourtag_yourproject_BigFallenBranches_pine","yourtag_yourproject_BigFallenBranches_pine02","yourtag_yourproject_BigFallenBranches_pine03","yourtag_yourproject_GrassDryGroup","yourtag_yourproject_GrassGreenGroup"};
	};

	class yourtag_yourproject_green_grass_Character {
		probability[] = {0.92,0.07};
		names[] = {"yourtag_yourproject_GrassGreenGroup","yourtag_yourproject_FlowerLowYellow2"};
  	};

	class yourtag_yourproject_dry_grass_Character	{
		probability[] = {0.21,0.35,0.21,0.09,0.06,0.02};
		names[] = {"yourtag_yourproject_GrassDryGroup","yourtag_yourproject_GrassDryMediumgroup","yourtag_yourproject_WeedBrownTallGroup","yourtag_yourproject_WeedGreenTall","yourtag_yourproject_ThistleYellowShrub","yourtag_yourproject_PlantMullein"};
  	};
};

Сообщение отредактировал vitacite: 09 February 2017 - 11:07

  • 3

#4 OFFLINE   vitacite

vitacite

    Ефрейтор

  • Пользователи
  • 98 сообщений
  • Откуда:Novosibirsk

Отправлено 09 February 2017 - 11:44

И прежде чем перейти к работе с Terrain builder - немного справочных материалов

 

1 Arma 3 сетка местности и размер текстур. ниже можно увидеть таблицу расчета приемлемых Grid к Cell size и то как это сделано в официальных картах BIS, задается он в настройка MapFrame TerrainBuildera в закладке Samplers..

 

6c8d760dcff24ecc8ae73d34fc6ad8be.png

 

Прикрепленный файл  Gridsize.png   12.21К   2 Количество загрузок:

некоторые термины используемые в таблице.

Satellite Tile  - это не спутниковая текстура. Satellite Tile - это текстура которая будет нарезана в слоях (ее можно найти в  Data\Layers\ нашего проекте)

Official bis terrain specifications

Прикрепленный файл  Gridsizestandart.png   10.25К   3 Количество загрузок:
Хорошая новость состоит в том, что Арма3 поддерживает размер Grid 8192, (в отличие от Arma2 и ОПФ), плохая в том, что в отличие от Arma 2 

в одной клетке местности (Cell) не может содержаться более 4х текстур поверхности. В формате Арма2 (т.е. может содержаться 6 текстур).


Сообщение отредактировал vitacite: 09 February 2017 - 11:47

  • 4




Яндекс.Метрика