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


Фотография

3D Editor mini


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

#1 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 18 February 2015 - 19:16

 

Да 3D редактор, почти). Мне понадобилось наваять подобное по быстренькому, получилось коротко и минималистично)

 

  1. Открываешь миссию в редакторе, перемещаешь зевса и своего перса на нужную позицию на карте, сохраняешь миссию и жмёшь просмотр. Заходишь в зевса.
  2. Расставляешь объекты, жмёшь экшен "CREATE composition". Если закончил работу, сворачиваешь арму и копируешь данные в файл.
  3. Если нужно прерваться на время, жмёшь экшен "CREATE composition", и выходишь из просмотра. Не сохраняя миссию выходишь из редактора.
  4. Когда нужно вернуться к работе, открываешь редактор, отрываешь миссию, жмёшь просмотр, жмёшь "RESTORE composition", продолжаешь работу.
  5. Если нужно начать с нуля, жмёшь "CLEAR composition", объекты будут удалены, в том числе и из профиля, без возможности восстановления.

 

Поместить миссию в

C:\Users\Имя вашего профиля\Documents\Arma 3\Имя вашего профиля\missions

Прикрепленный файл  CreateTemplates.Altis.rar   2.16К   83 Количество загрузок:


  • 1

#2 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 18 February 2015 - 19:29

Пример использования данных.

 

Содержимое файла Composition_1.sqf

[
	["Logic",[[0,1,0],[-0.00399993,-0,0.999992]],[3637.94,13113.1,10.1318]],
	["Land_Mil_WiredFence_F",[[0.993052,-0.117633,-0.00318807],[0.00399996,0.00666649,0.99997]],[3624.74,13098.7,11.9756]], 
	["Land_Mil_WiredFence_F",[[0.99306,-0.117611,-0.000383213],[0.00133332,0.00799979,0.999967]],[3625.64,13106.4,11.9238]], 
	["Land_Mil_WiredFence_F",[[0.993044,-0.11759,0.00592338],[-0.00533318,0.00533318,0.999972]],[3626.57,13114.1,11.8789]], 
	["Land_Mil_WiredFence_F",[[-0.102334,-0.994745,0.00316027],[-0.00799974,0.00399981,0.99996]],[3631.33,13124.9,11.8404]], 
	["Land_Mil_WiredFence_F",[[0.993027,-0.117562,0.00872802],[-0.00799962,0.00666633,0.999946]],[3627.44,13121.8,11.83]], 
	["Land_Mil_WiredFence_F",[[-0.102275,-0.994755,-0.00136365],[-0.0133321,1.19357e-008,0.999911]],[3643.68,13123.7,11.9721]], 
	["Land_City_Gate_F",[[-0.114255,-0.993447,0.00290737],[-0.00933281,0.00399975,0.999948]],[3637.58,13124.7,10.606]], 
	["Land_Mil_WiredFence_F",[[-0.99622,0.0863663,-0.00929814],[-0.00933301,-0,0.999956]],[3646.86,13119.8,12.0066]], 
	["Land_Mil_WiredFence_F",[[-0.996161,0.0863932,-0.0141497],[-0.014665,-0.00533268,0.999878]],[3646.12,13112.1,11.9777]], 
	["Land_Mil_WiredFence_F",[[-0.996089,0.0863576,-0.0187088],[-0.0186634,0.00133313,0.999825]],[3645.43,13104.4,11.9658]], 
	["Land_Mil_WiredFence_F",[[-0.996249,0.086367,-0.00531332],[-0.00533325,8.01356e-011,0.999986]],[3644.79,13096.7,11.9578]], 
	["Land_Mil_WiredFence_F",[[0.0529016,0.998598,-0.00161364],[0.00533325,0.00133335,0.999985]],[3635.48,13094.6,11.9503]], 
	["Land_Mil_WiredFence_F",[[0.0528855,0.998577,-0.00686875],[0.00399997,0.00666649,0.99997]],[3627.74,13095.1,11.9876]], 
	["Land_Mil_WiredFence_F",[[0.0528899,0.998599,0.00147254],[-0.00266672,-0.00133336,0.999996]],[3641.13,13094.2,11.9474]], 
	["Land_LampShabby_F",[[-0.0221636,-0.999754,0],[0,0,1]],[3637.41,13112.5,13.9015]], 
	["Land_DieselGroundPowerUnit_01_F_PTM",[[-5.28305e-005,1,-0.0010603],[-0.00490699,0.00106003,0.999988]],[3637.36,13114.6,10.976]], 
	["FlexibleTank_01_sand_F",[[-0.000535125,1,-0.000556357],[-0.00571373,0.00055329,0.999984]],[3636.94,13112.9,10.64]], 
	["Land_PortableLight_UV_single_F",[[0.7435,0.668736,0],[0,0,1]],[3633.55,13112.2,11.2022]], 
	["Land_PortableLight_UV_single_F",[[-0.868724,-0.495296,0],[0,0,1]],[3640.94,13116.8,11.242]], 
	["Land_PortableLight_UV_single_F",[[-0.00082317,-1,0],[0,0,1]],[3637.48,13116.8,11.2137]], 
	["Land_PortableLight_UV_single_F",[[-0.999505,0.0314659,0],[0,0,1]],[3641.13,13114.5,11.2316]], 
	["Land_PortableLight_UV_single_F",[[-0.757529,0.652802,0],[0,0,1]],[3640.86,13111.9,11.2272]], 
	["Land_PortableLight_UV_single_F",[[-0.0201642,0.999797,0],[0,0,1]],[3643.09,13105.3,11.2425]], 
	["Land_PortableLight_UV_single_F",[[0.999143,0.0413826,0],[0,0,1]],[3633.65,13114.7,11.1933]], 
	["Land_PortableLight_UV_single_F",[[0.729306,-0.684187,0],[0,0,1]],[3633.82,13117.3,11.1942]], 
	["Land_PortableLight_UV_single_F",[[0.116206,0.993225,0],[0,0,1]],[3631.9,13106,11.2222]]
]

Вызов из кода

_sData		= call compile preprocessFileLineNumbers "Composition_1.sqf";

{
	_obj = createVehicle [_x select 0, [0,0,0], [], 0, "NONE"];
	_obj setVectorDirAndUp (_x select 1);
	_obj setPosWorld (_x select 2);
} forEach _sData;

Сообщение отредактировал SteelRat: 18 February 2015 - 19:30

  • 1

#3 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 18 February 2015 - 20:14

SteelRat , классно! теперь попробуй забабахай такое же, но только что бы он исходный файл .sqm редактировал :)
  • 1

#4 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 18 February 2015 - 21:56

Уже на этом этапе вещь невероятно полезная. Столько рабского труда облегчает)


  • 0

#5 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 19 February 2015 - 11:52

vlad333000 , Опять же к вопросу редактирования sqm, возможно это был юмор, а если нет, то это исключит возможность по ходу миссии манипулировать процессом спавна или симуляцией таких объектов так? Недавно обсуждал вопрос по поводу модуля симуляции и его не лучшей так скажем работы, по этому думаю в крупномасштабных миссиях его использование приводит к неприятным последствиям. Для использования, по всей карте, спавна предметов необходим комплекс симуляций и создания\удаления при различных условиях. Его создать можно, а может уже давно создан, а вот кропотливая работа над координатами каждого предмета решается при помощи этого чудо творения господина SteelRat , за что ему выразим огромную благодарность.   


  • 0

#6 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 19 February 2015 - 12:08


то это исключит возможность по ходу миссии манипулировать процессом спавна или симуляцией таких объектов так?

Почему? К этим объектам можно так же просто обратиться, удалить, изменить, переместить... да модуль "менеджер имуляции" с ними тоже прекрасно работает

SteelRat , как на счет МП: его ведь нужно вызывать только на сервере, иначе будут многочисленные копии?

Да к тому же синхронизация такого кол-ва объектов думаю не очень положительно скажется на FPS 


  • 0

#7 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 19 February 2015 - 12:39

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

Убираю модуль, старт возможно чуть дольше по понятным причинам, но тормозов нет.

 

P.S. На счет sqm всё понял)


Сообщение отредактировал Djon: 19 February 2015 - 12:40

  • 0

#8 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 19 February 2015 - 12:49

Djon , а чему ты удивляешься? При достижении определенного растояния до объекта модуль инициализирует его симуляцию и собственно рендер, а когда таких объектов сотни за раз появляются - это все равно что попытаться единовременно заспавнить эту сотню объектов. Без него нагрузка в целом повышается, но нету таких вот фризов, но с ним нагрузка уменьшается т к он тупо не обрабатывает то что далеко, но появляются фризи из-за старта их обработки при передвижении


Сообщение отредактировал vlad333000: 19 February 2015 - 12:50

  • 0

#9 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 19 February 2015 - 13:57

vlad333000 , Вот собственно об этом я и говорил. Этого ведь можно избежать если учесть скорость передвижения, расстояние от игрока. К примеру модуль распространяет свое действие на ботов в том числе. К примеру мне не нужно чтоб объекты появлялись на расстоянии не более 30 метров от игрока а при движении игрока со скоростью выше 40 км и вовсе не появлялись. Согласись если объекты будут появляться на такой дистанции то их будет гораздо меньше и фризов может и не быть. А для какой цели мне нужны объекты в зданиях которые мне не видны, по этому метров 30 достаточно. И только по этому не подходит модуль. Пехота появляющаяся на расстоянии 30 метров это перебор. Тут для корректной работы нужно все делить. Ну опять же это мое мнение. 

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


Сообщение отредактировал Djon: 19 February 2015 - 14:00

  • 0

#10 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 19 February 2015 - 16:52

 

как на счет МП: его ведь нужно вызывать только на сервере, иначе будут многочисленные копии?

 

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

 

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

http://arma3.ru/foru...saniiu/?p=25628

Обратить внимание не на Триггеры в названии, а на метод спавна большого кол-ва объектов.

 

ЗЫ

Если вы про восстановление данных, то да, спавн должен производиться сервером.


Сообщение отредактировал SteelRat: 19 February 2015 - 16:54

  • 0

#11 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 19 February 2015 - 16:59

 

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

 

Применительно к Дайз, если игрок в транспорте, лут не спавнится, в радиусе 30 или 50 метров от игрока лут не спавнится.

Что имеем? Тело подехало к магазину на машине, сработало первое условие.

Тело вышло из машины, сработало второе условие дистанция от тела до магазина для спавна не подходит. Бедняшка перс обломался с ништяками)


  • 0

#12 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 19 February 2015 - 17:04

SteelRat ,Да да да)) Я примерно это себе и представлял. Убегаем от магаза на нужную дистанцию и ОПА проверка снова прошла и на этот раз удачненько))) Приходим и забираем барахло)


  • 0

#13 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 19 February 2015 - 17:04

По поводу штырилова и тормозилова!

 

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

И хрен его знает почему.


  • 0

#14 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 19 February 2015 - 17:11

SteelRat , В смысле при загрузке или в процессе движения по карте? Просто на чистой карте в редакторе? 


  • 0

#15 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 19 February 2015 - 17:17

SteelRat , В смысле при загрузке или в процессе движения по карте? Просто на чистой карте в редакторе? 

 

В редакторе ставлю одного юнита, и жму просмотр, начинаю перемещаться, начинает фризить, не жёстко, но мне заметно.

Останавливаюсь, начинаю вертеть перса, начинает фризить, не жёстко, но мне заметно.

Начинаю стрейфить в лево или в право, начинает фризить, не жёстко, но мне заметно.

 

И фризит с некой почти постоянной по времени.


  • 0

#16 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 19 February 2015 - 17:20

SteelRat , Эт не здоровая херня. У меня бук, производительность пожалуй ниже среднего и нет таких проблем. Чуть фризит в населенных пунктах на скорости и то не всегда. Иногда при приближении оптики так как там начинаются прорисовки далеких объектов.  


  • 0

#17 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 19 February 2015 - 17:56

Только вот безболезненная система отслеживания дистанции игрока от того или иного места появления объекта пока не очень понятна. Это ведь будет километровая проверка или каким то образом это можно минимизировать? 


  • 0

#18 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 20 February 2015 - 16:28

Только вот безболезненная система отслеживания дистанции игрока от того или иного места появления объекта пока не очень понятна. Это ведь будет километровая проверка или каким то образом это можно минимизировать? 

 

Вы о чём коллега?

Или это не мне?


  • 0

#19 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 20 February 2015 - 17:21

ЗЫ

О мониторинге дистанций.

Сам акт проверки дистанции не настолько ресурсоёмок. Если нужно отслеживать много объектов нужен всего лишь изящный подход, в кодинге всегда нужно искать изящные решения), в масштабных проектах и не только. Современные процессоры хоть и мощны, но без вашей руководящей роли настолько же и тупы, как и мощны.

 

И так, вводная. У нас имеется на карте 10 локаций, в радиусе каждой локации находится по 100 ботов, не важно конных или пеших.

 

Решение первое.

Пойти шаблонным путём, и повесить на игрока цикл мониторинга всего и вся в неком радиусе от него. Решение весьма распространённое, от того и шаблонное. И этот путь естественно даст не мало бесполезной вычислительной нагрузки.

 

Решение второе. Более разумное.

Ставим сразу в редакторе или спавним при инициализации миссии в центр каждой из локаций объект "Игровая логика", и привязываем к этой логике цикл проверки подобный этому

_dist 		= 1000;
_loopTimer	= 5;
_activate 	= false;

while {!isNull lgLocation_1} do {

	_inLocation = false;

	{
		if (isPlayer _x) then {
			if (alive _x) then {
				if (lgLocation_1 distance _x < _dist) then {
					
					_inLocation = true;
					
					if !(_activate) then {
                                                _activate = true;
						// активация локации, либо спавн, либо реанимация симуляции
					};
				};
			};
		};
		if (_inLocation) exitWith {};
	} forEach playableUnits;
	
	if (_activate) then {
		if !(_inLocation) then {
                        _activate = false;
			// Деактивация локации, либо удаление, либо по вкусу
		};
	};
	
	sleep _loopTimer;
};

Собственно это из головы и не проверялось, это направление.


Сообщение отредактировал SteelRat: 20 February 2015 - 18:33

  • 1

#20 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 20 February 2015 - 19:35

SteelRat , Собственно я говорил о том на что вы дали ответ ниже)))

 

 А если воплощать задуманное мной по поводу радиуса метров 30 от игрока, для избежания фризов при загрузке объектов в момент их появления, получается второй способ будет не актуален в связи с огромной кучей игровых логик по всей карте?

И еще вопросец, объекты с отключенной симуляцией продолжают существовать только их не видно так? К их имени можно обратиться? Возможно ли создать этакую базу объектов которую и будет отслеживать игрок по "шаблонному" но откорректированному методу? Быть может в таком случае удастся избежать ненужной вычислительной нагрузки? 


  • 0




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