RSS

Вопросы и ответы по созданию миссий в редакторе игр серии "В тылу врага"

Сообщений в теме: 230
+2
Репутация: 9
Рейтинг: 58
Кол-во тем: 14
Сообщения: 321
В этой теме можно задавать вопросы по созданию миссий в редакторе.

Задавать вопросы в теме «Общий FAQ по оф. редактору карт „В тылу врага 2“» не рекомендуется во избежание ее засорения. Она предназначена только для ответов на самые часто-задаваемые вопросы. При ее засорении сотнями вопросов и ответов искать в ней что-либо новичкам будет очень трудно.

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

Формулируйте вопрос как можно понятнее — так вам ответят быстрее.
Репутация: 9
Рейтинг: 58
Кол-во тем: 14
Сообщения: 321
Цитата: NochnoiGid
Несколько вопросов от новичка в GEM2 и в принципе картостроении.

1. Можно ли изменить прозрачность и размер «штампов», и если да, то как?
2. Как быть с водой? В тех же штампах нашёл «Water», но после теста понял, что это лишь «видимость» воды. Можно ли как-нибудь задать глобальный уровень воды, или необходимо как-либо привязывать физику к данным штампам?!

Заранее спасибо!


Привет! Вот видео о создании воды (какое нашел):



Водоемы (озера, реки, моря ...) создаются только при работе с картой, создании или редактировании карты (для редактирования карты открываем редактор, нажимаем F2). В режиме создания и редактирования миссии (клавиша F3) это сделать нельзя или проблематично.

Поверхность воды имитируется в игре с помощью специальных штампов воды — это такие плоскости с полупрозрачной текстурой воды. Некоторые из этих штампов имеют текстуры с анимацией, имитирующей волны или рябь на воде. Штампы воды находятся в landscape \ water.

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

Для создания водоема при работе с картой:

1). Устанавливаем высоту уровня воды на карте.

Высота уровня воды задается относительно нулевого уровня карты, в поле Water altitude после перехода в режим редактирования высот поверхности карты (Heights). Естественно, высота уровня воды, в большинстве случаев должна быть ниже предполагаемого уровня суши на карте. Иначе вся земля на карте будет дном. ))



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

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


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

2). В режиме редактирования высот (Heights) «выкапываем» в поверхности земли углубление под озеро или русло реки, так, чтобы дно углубления или русла было ниже уровня воды, заданного для карты.
Наносим текстуры на берега, склоны и дно углубления в режиме нанесения текстур на поверхность земли (Textures).



a). Для того, чтобы работать с высотами было удобнее, можно установить галочку «heightmap» («сетка высот»). Сетка высот видна на моем скриншоте в виде сетки синих линий — наглядно и отчетливо видно, где углубление, а где высота.

б). Если все поверхности дна углубления должны находиться, примерно, на одном уровне, но, естественно, на высоте ниже уровня воды — перед «копанием» устанавливаем высоту дна относительно нулевого уровня в поле «fixed height» («фиксированная высота») и галочку «fixed height». При этом галочка «fix relative» («относительная фиксация») обязательно должна быть убрана.

Для сглаживания берегов и придания мягкой неровности поверхности углубления, наоборот, галочку «fix relative» необходимо установить. При этом в поле «fixed height» можно установить, например, значение «0», «1» или "-1" — для того, чтобы сглаживание было не слишком сильным, плавным и проходило, соответственно, по средней высоте, с увеличением высоты и с уменьшением высоты сглаживаемых поверхностей, — а галочка «fixed height» должна быть обязательно установлена.

в). Регулирование размера курсора («кисти») для «копания» углубления под водоем регулируется с помощью клавиш "—" и "+" на дополнительной боковой цифровой клавиатуре (на нумпад'е \ numpad).


3). Переключаемся в режим редактирования террайнов (Terrains) — редактирования характера поверхностей земли, — и выбираем в списке террайнов террайн «water» (и в списке Terrain PP и в списке Terrain FX), а затем «закрашиваем» дно и стенки углубления нашего водоема этим террайном.
Террайны поверхностей земли определяют эффекты и характер движения юнитов, попадающих на эти поверхности.

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



Если углубление под водоем достаточно глубокое, заметно ниже уровня воды, то самые низкие участки поверхность углубления будут автоматически «закрашиваться», в основном, синим цветом. Синий цвет соответствует террайну глубокой воды. При попадании на эти поверхности люди, лодки и корабли будут плавать.

В тех местах, где поверхность дна будет по высоте ближе к заданному уровню воды, она при «закрашивании» автоматически будет получать голубой цвет. Например, так будут «закрашиваться» участки по краям углубления, берегам у кромок воды (если они достаточно пологие), т.е. там где глубина водоема достаточно низкая. Голубой цвет соответствует неглубокой воде (shallow water), это глубины луж, речных бродов или перекатов.

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

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

При этом, в частности, если юниты-люди находятся под управлением игрока (user), то они могут длительно находиться в воде и переплывать водоемы. Человеки же под управлением Искусственного Интеллекта (AI) игры в глубокую воду сами никогда не полезут, а при случайном попадании в такую воду, будут стремиться тут же вылезти на берег. Напомню, настройки режима управления — user или AI — задаются в индивидуальных настройках юнитов.

Если при «закрашивании» террайном воды вы случайно захватили слишком много берега — нажмите другую кнопку мыши и путем такого же «закрашивания» обратно верните этому участку поверхности террайн суши.

Как и в случае с редактированием высот, регулирование размера курсора («кисти») для «закрашивания» террайнами регулируется с помощью клавиш "—" и "+" на дополнительной боковой цифровой клавиатуре (на нумпад'е).


4). Выбираем и размещаем для создания поверхности воды понравившиеся штампы воды.
Если штампы небольшие, меньше размера углубления водоема, то размещаем их таким образом, чтобы края соседних штампов перекрывались.

При размещении штампов воды важно следить за тем, чтобы в поле «constrain» свойств всех этих штампов стояло значение «water». Тогда штампы воды будут располагаться именно на высоте уровня воды, заданного для карты. При изменении значения уровня воды эти штампы будут автоматически, все вместе, менять свою высоту.
Это, например, может очень пригодиться при радактировании высот земли, при необходимости углубления водоема или изменения текстур его дна. Достаточно указать новую высоту уровня воды и вся вода на карте опуститься или поднимется, давая таким образом работать с поверхностями скрытыми до этого водой. По завершении работ вы можете так же быстро вернуть прежнюю высоту воды.




При необходимости вы можете уменьшить прозрачность штампов воды и подкорректировать оттенок цвета воды.
Для уменьшения прозрачности введите значение меньшее 1 в поле «view > opacity» («прозрачность») в свойствах выделенных штампов воды. Значение прозрачности может быть указано в пределах от 0 до 1 — 0 соответсвуюе полной прозрачности (невидимости), а значение 1 — 100% непрозрачности относительно исходного уровня непрозрачности текстуры штампа. На моем скриншоте, например, видно, что я задал для штампа воды прозрачность 0,8 (80%).

Оттенок цвета воды задается в поле «color» («цвет») в свойствах штампов воды. Для этого нужно открыть окошко задания настроек цвета, тыкнув в поле «color» и щелкнув по появившейся в этом поле кнопке.

Для поворота штампа воды в горизонтальной плоскости, — например, для того, чтобы волны всех штампов реки «бежали» по течению, именно вдоль, а не поперек берегов — нажимаем клавишу «С» («Си\Це латинское») на клавиатуре компа и поворачиваем штамп в нужную сторону.


Все, наш водоем создан. Теперь вы можете размещать на его поверхности плавающие юниты.
Репутация: 0
Рейтинг: 0
Кол-во тем: 1
Сообщения: 5
John Doe, спасибо за помощь с штампами воды и водой в целом! На последнем скриншоте вы отметили такие пункты как scale (размер штампа) и opacity(прозрачность штампа). Эти настройки я пробовал крутить ещё до обращения сюда, но ничего не менялось. Это беда у меня или я чего-то не знаю!?
Репутация: 9
Рейтинг: 58
Кол-во тем: 14
Сообщения: 321
Цитата: NochnoiGid
John Doe, спасибо за помощь с штампами воды и водой в целом! На последнем скриншоте вы отметили такие пункты как scale (размер штампа) и opacity(прозрачность штампа). Эти настройки я пробовал крутить ещё до обращения сюда, но ничего не менялось. Это беда у меня или я чего-то не знаю!?

Среди всех штампов эти настройки (scale и opacity) действуют только на штампы воды, которые и не совсем штампы. Это определенный класс объектов (сущностей), которые можно только условно назвать штампами. )) Они даже в списке объектов в редакторе располагаются отдельно от обычных штампов (не в landscape\stamps, а в landscape\water).

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

Эти пункты (scale и opacity) присутствуют в настройках обычных штампов только потому, что разработчики не стали замарачиваться с деланием в редакторе отдельного, идивидуального интерфейса свойств объектов для каждого класса объектов. Я так думаю.

Кстати, если будете размещать на поверхности воды штампы с листьями кувшинок или объекты типа льда (лед в игре может ломаться под тяжестью танков и от взрывов), то для них тоже надо задавать constrain = water. Чтобы они распологались именно на поверхности воды.
Репутация: 0
Рейтинг: 0
Кол-во тем: 2
Сообщения: 22
Вернулся я, значит, в картодельный цех. Решил сделать карту ночную, на подобии «За линией фронта» вроде, из Лиса. Тут меня осенило:" Сделаю-ка я осветительные ракеты!" — да только как их сделать-то?
Репутация: 9
Рейтинг: 58
Кол-во тем: 14
Сообщения: 321
Цитата: Brydude
Вернулся я, значит, в картодельный цех. Решил сделать карту ночную, на подобии «За линией фронта» вроде, из Лиса. Тут меня осенило:" Сделаю-ка я осветительные ракеты!" — да только как их сделать-то?

Это для «Штурма 2» надо?
Проще всего выковырять пистоль, стреляющий осветительными ракетами, и боеприпасы к нему из какого-нибудь мода и перетащить эти файлы к себе в мод простым копированием. Чтобы не изобретать велосипед.
Помочь могу только в том случае, если нужны осветительные ракеты только для «Штурма». Как раз на днях обратил внимание, что в моде о Первой мировой для «Штурма» есть аж 2 типа пистолетов, стреляющих осветительными ракетами (как в «Лисе пустыни»).

Еще в «Лисе пустыни» в ресурсах отдельно были осветительные ракеты долго и плавно спускавшиеся на парашютиках (где-то в «Эффектах» или «fx», кажется). Для них пистолет вообще не нужен. Их можно запускать просто командой spawn, например. По аналогии с созданием этой же командой артиллерийского обстрела. А в редакторе еще проще — выбираешь осветительную ракету в списке юнитов, копируешь, как бы, в любое место на карте и она начинает плавно спускаться в это место и светиться. В «Штурме» их уже, к сожалению, убрали, т.к. это красивая антуражная штука только для сингла. Применялись в миссии «Последний бой Борга» за немцев в Северной Африке, там где нужно было удерживать позиции до эвакуации во время ночной атаки британцев. Выдавались игроку в качестве подкрепления (выстреливались, как бы, с итальянского эсминца стоящего у берега). Наверное, их тоже можно перетащить их из «Лиса».

Репутация: 0
Рейтинг: 0
Кол-во тем: 0
Сообщения: 11
Я не могу понять… Сделал waypoint-ы, написал тригер на подкрепление, если в определенной зоне живых меньше чем нужно. Должна приехать БТР до определенного wp, выгрузить войска и уехать… Проблема в том, что войска автоматически сами выгружаются когда услышат стрельбу. Т.е не там где надо они выходят… Как это исправить?
Репутация: 9
Рейтинг: 58
Кол-во тем: 14
Сообщения: 321
Цитата: CaTBaT
Я не могу понять… Сделал waypoint-ы, написал тригер на подкрепление, если в определенной зоне живых меньше чем нужно. Должна приехать БТР до определенного wp, выгрузить войска и уехать… Проблема в том, что войска автоматически сами выгружаются когда услышат стрельбу. Т.е не там где надо они выходят… Как это исправить?

Проще простого! В свойствах БТР надо убрать в ables галочку «emit_passengers_on_enemy» («высаживание_пассажиров_при_обнаружении_врага»).

Еще есть специальная команда, которую можно использовать в триггерах, — команда ables (actor > ables). С ее помощью тоже можно добавлять или удалять эту галочку когда нужно, но уже во время игры. Чтобы не было ситуаций обратных, когда по БТР лупят в упор уже, а солдаты в ней все сидят и сидят. )

Например, в своем триггере, запускающем БТР по вейпоинтам, команду ables, отключающую высадку при обнаружении врага, можно добавить перед командой waypoint. А в вейпоинт добавить вторую команду ables, после команды emit, снова включающую возможность высадки при обнаружении врага.
Репутация: 0
Рейтинг: 0
Кол-во тем: 0
Сообщения: 11
Цитата: John Doe
Цитата: CaTBaT
Я не могу понять… Сделал waypoint-ы, написал тригер на подкрепление, если в определенной зоне живых меньше чем нужно. Должна приехать БТР до определенного wp, выгрузить войска и уехать… Проблема в том, что войска автоматически сами выгружаются когда услышат стрельбу. Т.е не там где надо они выходят… Как это исправить?

Проще простого! В свойствах БТР надо убрать в ables галочку «emit_passengers_on_enemy» («высаживание_пассажиров_при_обнаружении_врага»).

Еще есть специальная команда, которую можно использовать в триггерах, — команда ables (actor > ables). С ее помощью тоже можно добавлять или удалять эту галочку когда нужно, но уже во время игры. Чтобы не было ситуаций обратных, когда по БТР лупят в упор уже, а солдаты в ней все сидят и сидят. )

Спасибо большое))
Репутация: 9
Рейтинг: 58
Кол-во тем: 14
Сообщения: 321
Цитата: CaTBaT
… Спасибо большое))

В идеале, конечно же, лучше бы было, если БТР по дороге просто обстрелял какой-то одиночный партизан, чтобы солдаты, например, высаживались, стреляли, потом снова садились в БТР и БТР продолжал бы свой путь в нужную точку.

Но для этого нужно создать еще пару доп. триггеров, довольно хитрых.

Можно также сделать так (если добавить команд в триггер запуска БТР по вейпоинтам), чтобы солдаты в БТР и сам БТР входили в один «отряд» (сквад, squad), а БТР был «командиром» отряда. Тогда, наверное, если солдаты будут выскакивать из БТР при его случайном обстреле по дороге, то БТР продолжит движение в конечную точку, а солдаты, выскочив из него и немного постреляв, побегут за БТРом, как бы, «прикрывая» его сзади или с боков.
Репутация: 0
Рейтинг: 0
Кол-во тем: 0
Сообщения: 11
Цитата: John Doe
Цитата: CaTBaT
… Спасибо большое))

В идеале, конечно же, лучше бы было, если БТР по дороге просто обстрелял какой-то одиночный партизан, чтобы солдаты, например, высаживались, стреляли, потом снова садились в БТР и БТР продолжал бы свой путь в нужную точку.

Но для этого нужно создать еще пару доп. триггеров, довольно хитрых.

Можно также сделать так (если добавить команд в триггер запуска БТР по вейпоинтам), чтобы солдаты в БТР и сам БТР входили в один «отряд» (сквад, squad), а БТР был «командиром» отряда. Тогда, наверное, если солдаты будут выскакивать из БТР при его случайном обстреле по дороге, то БТР продолжит движение в конечную точку, а солдаты, выскочив из него и немного постреляв, побегут за БТРом, как бы, «прикрывая» его сзади или с боков.

Тогда уже можно и сам БТР пускать в бой)) Ибо на моей карте это больно сильная техника на первой линии фронта ))
Репутация: 0
Рейтинг: 0
Кол-во тем: 2
Сообщения: 22
Кто-нибудь может объяснить, что такое отряды (squads) и что с ними можно делать? (если не трудно)
Репутация: 9
Рейтинг: 58
Кол-во тем: 14
Сообщения: 321
Цитата: Brydude
Кто-нибудь может объяснить, что такое отряды (squads) и что с ними можно делать? (если не трудно)

Сквад\отряд — несколько сгруппированных юнитов, обычно солдат\людей, выполняющих перемещение по карте согласовано. Сквады появились в первой игре «В тылу врага 2». Во «В тылу врага» (2004 года) их еще не было. Squad — англоязычный военный термин — небольшая группа, отделение.

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

У каждого сквада имеется свой «командир». Если несколько (два или более) юнитов просто выделяются мышью, то командир сквада назначается автоматически, самой игрой (используется параметр-коэффициент значимости (кто главнее при формировании группы) из breed (свойств) юнитов-людей).

У командира в «Штурме» желтый цвет подсветки выделения, кружочка\треугольника, а у остальных членов сквада — белый\зеленый. Командира сквада можно назначить и самостоятельно, зажав клавишу «K» и щелкнув по юниту. Для этого также в ранних играх серии «В тылу врага 2» среди кнопок на панели команд имеется специальная кнопка назначения командира (на скриншоте внизу эта кнопка — крайняя справа во втором ряду).

Подсветка командира сквада в игре "В тылу врага 2"

Для управления юнитами игрока сквады полезны, но не имеют важнейшего значения, в общем то. Только при посылке группы бойцов на большое расстояние. Чтобы не бежали совсем плотной кучей, которую легко уничтожить одним выстрелом. Не имеет важнейшего значения потому, что игрок постоянно выделяет то одного, то другого бойца для ручного управления им. После выделении одиночного бойца он сразу же выпадает из сквада и, затем, после снятия выделения, действует самостоятельно, как одиночный боец, а не боец сквада. Но если он снова попадет в выделение мышью вместе с другими юнитами, он попадает в новый сквад. )

А вот для юнитов под управлением ИИ, по крайней мере, в сингловом скирмише (при одиночной игре против ботов), созданном разрабами, и сетевой игре по Интернет, сквады используются постоянно. Юниты врага в скирмише вообще сразу же появляются в виде уже сформированных сквадов и бегут на игрока в виде сквадов.
Это же касается и подкреплений в одиночной и сетевой игре. Пехота из подкреплений у игрока появляется в виде отрядов\сквадов и бежит в указанную точку отрядом, а не разбредается сразу же по карте, услышав первый же выстрел.

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

Кроме этого, при автоматическом формировании сквадов с помощью триггеров, командиром сквада, состоящем из танка (например) и юнитов-людей, может назначаться именно танк. Тогда, при перемещении такого сквада по карте пехота, как бы, бежит с боков танка и немного позади него, стараясь не отрываться от «командира». При задержках и остановках пехота может, как бы, «охранять» танк от гранатометчиков, наблюдая в разные стороны. Это особенно полезно когда местность не открытая (когда город, много деревьев и кустов и т.д.). И выглядит более естественно, чем без формирования сквада.

Конечно же, при использовании сквадов наблюдаются и некоторые недостатки. Но пока заткну свой словесный фонтан. )

Скажу только еще, что фомировать сквад можно даже при использовании самой обычной и часто используемой команды waypoint (галочка make_squad). Только при этом, если в отряде есть танк, сразу после команды waypoint должна следовать команда squad > squad\set_commander. С ее помощью указывается, что командиром сквада будет именно танк.

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

Если буду все писать в одном сообщении — лекция затянется. ))
Репутация: 0
Рейтинг: 0
Кол-во тем: 0
Сообщения: 11
А есть ли тонкая регулировка коэффициентов отступления и наступления? Дикая проблема с этим… У меня на первом фронте фрицы имеют пулемёты и миномёты. Получается заградительный огонь. Из за этого пехи под управлением AI просто залегают и ничего не делают. Начинаю менять коэффы так они вообще прут как танки)))… Я так и не подружился с этой механикой… Может нужно где то что то просто включить и всё? А то запарили блин лежать за картой(((

Вы тогда объясняли на первой странице, но как бы мне не очень всё ясно))
Репутация: 9
Рейтинг: 58
Кол-во тем: 14
Сообщения: 321
Цитата: CaTBaT
А есть ли тонкая регулировка коэффициентов отступления и наступления? Дикая проблема с этим… У меня на первом фронте фрицы имеют пулемёты и миномёты. Получается заградительный огонь. Из за этого пехи под управлением AI просто залегают и ничего не делают. Начинаю менять коэффы так они вообще прут как танки)))… Я так и не подружился с этой механикой… Может нужно где то что то просто включить и всё? А то запарили блин лежать за картой(((

Вы тогда объясняли на первой странице, но как бы мне не очень всё ясно))


Если бы точно знать хотя бы приципы регулирования желания наступать или отступать, заложенные разрабами! Приходится только догадываться по результатам многочисленных экспериментов и строить личные гипотезы.

Параметры advanced_ratio, retreat_ratio. Параметр ai_move


На желание наступать или отступать (обороняться на месте, залегать) точно влияют параметры brain > advanced_ratio («мозги» > «коэффициент наступления»\«соотношение желания наступать») и brain > retreat_ratio («мозги» > «коэффициент отступления»\«соотношение желания отступать») в настройках юнитов-людей.

По умолчанию advanced_ratio = 2 и retreat_ratio = 2.

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

Эти параметры можно задать для юнитов как непосредственно, выделив их в редакторе игры, так и задавать\менять их с помощью триггеров, когда нужно изменить характер поведения юнитов во время игры.

На поведение технических юнитов (танков, машин, пушек ...), даже с экипажами внутри, эти параметры, вроде бы, не действуют.

Если задать, например, advanced_ratio = 1, а retreat_ratio = 4, юниты чуть быстрее и охотнее будут двигаться вперед, меньше залегать и отступать. Такие коэффициенты лучше задавать наступающим юнитам. И наоборот, если advanced_ratio = 4, а retreat_ratio = 1, то юниты с такими коэффициентами будут при наступлении на них врагов, стараться отползать, отходить от места обнаружения врагов. Подобные коэффициенты, наверное, хорошо задавать для тыловиков и расчетов орудий, охраняющих что-то или просто слоняющихся по позициям. ))

Если же задать, например, advanced_ratio = 0.1, а retreat_ratio = 10 (или даже 100), то юниты с такими коэффициентами будут просто переть вперед в указанную точку или по цепочке вейпоинтов, почти не останавливаясь и не отстреливаясь, даже если видят врага. Что не всегда хорошо, но может применяться, например, в ситуациях, когда юнитам необходимо совершать последний рывок на последних метрах до занятия вражеских окопов во время атаки или укрытий при обстреле или тревоге.

Параметры поведения, задаваемые для юнита в редакторе GEM
Рис. 1. Параметры поведения, задаваемые для юнита в редакторе GEM


Параметр ai_move


Такого же «безбашенного» поведения можно добиться у юнитов, если просто отключить им «мозги», установив им параметр brain > ai_move = disable («мозги» > «перемещение под управлением ИИ» = «отключено»). По умолчанию у всех юнитов-людей задан параметр brain > ai_move = enable, т.е., включено управление искусственным интеллектом. Поэтому они и бегают туда-суда, отстреливаются и как-то реагируют на противника, принимая решение, как бы, когда нужно отступать и когда наступать дальше.
Если brain > ai_move = disable, то юнит превращается в тупого робота-исполнителя, не обращающего внимание на врага. Иногда временно отключать мозги у юнитов полезно для управления ими с помощью триггеров. Например, когда юнит должен выполнить приказ во что бы то ни стало, не отвлекаясь на ранения, взрывы и т.п. В частности, когда его нужно отправить за пушку или пулемет взамен убитого члена расчета.
Отключать и включать «мозги» с помощью brain > ai_move можно только для юнитов-людей. На технические юниты такое отключение и включение «мозгов» никак не действует.

Кроме этого, можно задать для юнитов значение brain > ai_move = disable с дополнительым параметром enable_on: injure и(или) enemy. В этом случае «мозги» у юнита отключаются только до того момента, как он будет ранен (injure) и (или) обнаружит врага (enemy). После ранения и (или) обнаружения противника «мозги» у юнита с таким параметром включаются автоматически.

Параметры no_advance и no_retreat


Если в настройках юнитов поставить только галочки no_advance («не наступать»), то эти юниты при обнаружении врага будут останавливаться и стрелять и могут только отступать.
Если в настройках юнитов поставить только галочки no_retreat («не отступать»), то эти юниты при обнаружении врага будут останавливаться и стрелять, залегать, переползать туда-сюда, но отступать не будут. При этом они будут пытаться время от времени наступать дальше в указанную точку или по цепочке вейпоинтов, по которой они двигались до обнаружения врага.
Если поставить в настройках юнитов и галочку no_advance и no_retreat, то при обнаружении врага эти юниты будут останавливаться и оборонятся на месте, возможно, переползая время от времени в этом месте, но не двигаясь ни назад ни вперед.

Про цифры в парамерах advanced_ratio и retreat_ratio


Теперь про цифры параметров advanced_ratio и retreat_ratio. Какие цифры ставить лучше всего и что они означают? Не знаю. )) Слабо предполагаю, что эти цифры, может быть, секунды между попытками продвижения, соответственно, вперед и назад из стоячего, лежачего положения в месте обнаружения противника.
Какие именно значения устанавливать придется решать опытным путем при создании миссии и на свой собственный вкус. В принципе, можно менять эти значения по ходу миссии, в зависимости от условий и ситуации, с помощью триггеров. Например, увидели юниты-пехотинцы рядом танк и активно наступать им перехотелось или наоборот. Или уменьшилось количество атакующих до определенного числа и наступательное рвение у них понизилось.

О том, как изменять эти параметры с помошью триггеров написано ниже.

Параметр move_mode


И еще. Если нужно, чтобы юниты во время тревоги и перестрелки с противником отходили от этого места только на определенное расстояние от того места, в котором они были установлены или находились до момента обнаружения противника, а по завершении перестрелки или тревоги снова возвращались в это место, то для таких юнитов нужно задавать параметр brain > move_mode = zone («мозги» > «режим перемещения» = «зона»). Радиус зоны, т.е. расстояние в метрах от точки в которой он находился с самого начала или в момент обнаружения противника, на которое может отбегать юнит, задается в поле move_radius.

По умолчанию brain > move_mode = free («мозги» > «режим перемещения» = «свободный»), т.е. юнит может двигаться под управлением ИИ куда угодно и неограниченно (в пределах границ карты). А если brain > move_mode = hold, то юнит, как всем известно, стоит\стреляет на месте и никуда двигаться не может.

Задавать определеную зону перемещений очень удобно для куриц или коров. )) После этого они не разбредаются по всей карте. Только эти курицы и коровы должны быть установлены на свои места не в режиме редактирования карты (F2), а в режиме редактирования миссии (F3). Ограничение перемещения определенной зоной может пригодится также для задания настроек часовых, патрульных и т.д. Охраняя что-то, они, даже в случае тревоги, не имеют права покидать свой пост и отходить от него далеко.

Как менять параметры движения, коэффициенты наступления и отступления с помощью триггеров


Для задания параметров отступления\наступления, отключения и включения «мозгов» с помощью триггеров используется команда actor_state. С ее помощью, как известно, можно также задавать и скорость, а также характер перемещения юнитов-людей и технических юнитов.

Скорость и характер перемещения юнитов-людей задается с помощью параметра movement > speed, для которого можно задать значения: slow (медленная ходьба), normal (нормальная ходьба), fast (быстрый бег), walk (прогулочный шаг), bow (пригнувшись), assault (быстрый бег с оружием в одной опущенной руке) и т.д. Скорость в км\ч, как для техюнитов, для них задать нельзя.

Для техюнитов, также можно задать скорость движения, указав для параметра movement > speed значение normal (средняя скорость), fast (максимальная скорость) или slow (минимальная скорость). Значения скоростей normal, fast и slow обычно указаны в файле *.def каждого танка, бронемашины и автомобиля. Но только эти значения, т.к. крадучись и пригнувшись технические юниты ездить не умеют.
Можно также напрямую указать нужную скорость движения с помощью параметра speed_kph (в км\ч) и максимально-возможную скорость движения, быстрее которой юнит двигаться не сможет — max_speed_kph (в км\ч).

При необходимости можно отключить и включить возможность движения юнитов вперед (forward) или назад (backward). On — это включить, off — отключить.
Это может пригодиться, например, если в случае завершения атаки вражеские танки должны отползать на исходные позиции не поворачиваясь задом к противнику, чтобы не подставлять корму под огонь.

Параметры команды actor_state
Рис. 2. Параметры команды actor_state


Для пушек и пулеметов с помощью параметра cannon можно задать еще и состояния «перекатывание\перетаскивание расчетом» (move), «прицепленное состояние» (trailing), «в положении стрельбы» (fire).
При прицепке с помощью триггеров большинство пушек переходит в положение trailing автоматически, но некоторые тяжелые пушки (немецкая 88-мм зенитка FlaK 18, например) иногда капризничают, не успевают, слишком долго и сложно «складываются» и требуют перед прицепкой перевода в это состояние с помощью отдельной команды.

Чем медленнее двигается технический юнит, тем тоньше он реагирует на врага. Если, например, танк несется с максимальной скоростью, то он мало обращает внимание на противника, почему то.

Пока все. Может еще что-то вспомню или замечу. Если кто-то знает что-то еще или заметил что-то еще — дополняйте и поправляйте. Будет интересно.
Репутация: 0
Рейтинг: 0
Кол-во тем: 0
Сообщения: 6
Здравствуйте уважаемые знатоки, хочу у вас поинтересоваться как сделать так чтобы выбранные солдаты(танкисты) смогли автоматически(сами) подбегать к технике и ремонтировать ее и возможно ли без тега чтобы солдаты сами садились в пустующею технику(под контролем ии) P.S. Заранее благодарю за ответ.
Репутация: 9
Рейтинг: 58
Кол-во тем: 14
Сообщения: 321
Цитата: DeadMoroz
Здравствуйте уважаемые знатоки, хочу у вас поинтересоваться как сделать так чтобы выбранные солдаты(танкисты) смогли автоматически(сами) подбегать к технике и ремонтировать ее

Можно сделать. Например, если в качестве условия первого триггера ремонта использовать условие entity. Сразу ответить не могу — надо самому попробовать написать такой триггер. Но раньше нечто подобное я уже пробовал делать. Я так понимаю, что ремонтировать они должны пустые (без экипажа) танки, которые еще можно отремонтировать?

и возможно ли без тега чтобы солдаты сами садились в пустующею технику(под контролем ии) P.S. Заранее благодарю за ответ.

Можно, опять с помощью триггера с условием entity. С помощью этого условия, например, можно проверять имеется ли на карте в данный момент пустой танк, в который можно залезть. Если имеется, то с помощью одной команды — команды entity — присваивать этому танку какой-нибудь тег, говорящий что этот танк пустой, а затем, с помощью другой команды — команды board, — отправлять садиться в этот танк какого-нибудь определенного юнита-солдата.

Нужно подготовить триггеры для примера. Не то, чтобы триггер должен быть особо сложный, но нужно будет объяснить. Ты уже знаешь как в редакторе делаются триггеры?
Репутация: 0
Рейтинг: 0
Кол-во тем: 0
Сообщения: 6
Здравствуйте, спасибо за ответ. С редактором я знаком малость, так как некоторые слова не совсем ясны и-за моей некомпетентности в английском языке но некоторые аспекты я все же усвоил и если вы не против я вам задам еще несколько вопросов. 1)Почему при создании новой карты боты на ней автоматически бегут в одну точку также и с камерой. 2)как сделать чтобы боты патрулировали местность бесконечно, а не останавливались в конце точки. 3)возможно ли настроить бота(медика) чтобы он не вступал в бой, а только подбегал и лечил своих союзников и был желательно бесстрашным. 4)как сделать так чтобы боты в тех не убегали при подбитии а пытались ее чинить(несмотря на стрельбу по ним) а после починки залезть в нее обратно. На этом пока все, спасибо за ваше неравнодушие и компетентность в которой мы все так нуждаемся.
Репутация: 9
Рейтинг: 58
Кол-во тем: 14
Сообщения: 321
Цитата: DeadMoroz
1)Почему при создании новой карты боты на ней автоматически бегут в одну точку

После того как создал новую, пустую карту надо сразу же, не выходя из режима редактирования карты (этот режим включается клавишей F2):

1). Щелкнуть мышью по третьей иконке сверху на правой панели редактора — иконка «камера смотрит вниз».
Редактор переходит в режим редактирования границ карты (клипов, clip) и камеры игрока.

2). Щелкнуть правой клавишей мыши по [auto] в списке Presets.
Если карта только что создана, в этом списке имеется только один пункт [auto]. Это название набора настроек клипов (границ) карты и камеры игрока по умолчанию.

3). В появившемся меню выбрать пункт «Set For All Players» («Применить для всех игроков»).

Все, после этого если поставить юнитов-солдат на карту, они не будут бежать в центр карты. ) Так как настройки границ и камеры из набора [auto] будут действовать на все юниты всех игроков этой карты и связанной с ней миссии.
Это можно делать для всех карт, для старых и новых.

Но сразу скажу — в режиме редактирования карты нужно редактировать только поверхность карты, текстурировать ее, задавать типы поверхностей у разных участков карты (террайны, terrains), создавать водоемы, расставлять деревья, кусты, дома, окопы и разные конструкции, создавать траву.
Юниты (людей, технику) нужно ставить на карту только в режиме редактирования миссии (клавиша F3), а не карты. Иначе с ними будет очень неудобно работать при редактировании миссии. В частности, у них будут очень длинные неудобные идентификаторы MID из пяти цифр (типа «25137»), которые трудно запоминать и придется по десять раз сверять или записывать на бумажке при создании триггеров. Будет также сложнее задавать теги для юнитов. И вообще — не правильно.

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

Цитата: DeadMoroz
2)почему при редактировании определенной карты(при сохранении на f2 вылазит ошибка но карта все-же сохраняет карту и после когда открываешь эту изменено-сохраненную карту вылазит та же ошибка которая выкидывает тебя на рабочий стол а с f3 она сохраняется нормально только есть один нюанс когда загружаешься появляются старые дефолтные объекты которые были удалены но они снова появились на тех же местах поверх моих объектов.

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

И потом, ты наверное просто сохраняешь карту и миссию в редакторе без создания своего мода и поэтому так получается, что изменения не сохраняются. Как только ты создал свою карту (map) и свою миссию (*.mi) — все файлы, относящиеся к этой карте и миссии нужно перетащить из папки, в которую они сохраняются по умолчанию, в папку именно своей миссии. Тогда изменения будут сохраняться.

Цитата: DeadMoroz
3)как сделать чтобы боты патрулировали местность бесконечно, а не останавливались в конце точки.

Самый простой способ такой:

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

2). Добавь в конечную точку (waypoint) маршрута патруля команду actor_to_waypoint (other > actor_to_waypoint).

3). В параметрах этой команды actor_to_waypoint в поле waypoint («точка назначения») укажи UID вейпоинта (идентификатор вейпоинта), расположенного в самом начале маршрута. На картинке внизу это вейпоинт, у которого UID = 0.
В поле approach обязательно нужно задать "teleport & rotate" («телепортировать и повернуть»). В поле «drop» можно задать значение order («отмена» = «предыдущий приказ»). Остальное в настройках команды можно не трогать:

Параметры команды actor_to_waypoint

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

Цитата: DeadMoroz
4)возможно ли настроить бота(медика) чтобы он не вступал в бой, а только подбегал и лечил своих союзников и был желательно бесстрашным.

Можно. Нужно создать несколько триггеров. Сам я не пробовал, но когда то играл в старую миссию, еще для «Лиса пустыни» (MoW), где именно так и было сделано (автор миссии — «Металлист». Он есть в списке модмейкеров на этом сайте, только давно не появлялся. Кажется, миссия называлась «Ржев»). Это не слишком сложно, но нужно поковыряться.

Цитата: DeadMoroz
5)как сделать так чтобы боты в тех не убегали при подбитии а пытались ее чинить(несмотря на стрельбу по ним) а после починки залезть в нее обратно.

Не пробовал, но по идее тоже можно. Как известно, при повреждении танка, например, один из членов экипажа в игре автоматически, через некоторое время после повреждения танка (если танк не видит врага), вылезает из него и начинает ремонтировать свой танк. При этом игра автоматически присваивает этому вылезшему члену экипажа служебный тег «repairing» («ремонт»). Наверное можно создать триггер, который следить за появлением во время игры юнита с тегом «repairing» и, как только он обнаруживается, добавляет ему здоровья, например, и отключает у него управление ИИ (чтобы не пугался и не залезал при обстреле своего танка обратно в танк, а продолжал ремонтировать и умирал во время ремонта)).
В качестве условия срабатывания такого триггера можно выбрать условие entity («сущность»), а для отключения юниту управления ИИ можно использовать команду actor_state («состояние юнита»).
Репутация: 9
Рейтинг: 58
Кол-во тем: 14
Сообщения: 321
Поправил ошибку в ответе про патруль в своем предыдущем сообщении. CF-rolleyes Вместо команды placement в вейпоинте надо использовать команду actor_to_waypoint. Извиняюсь.

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

Надо писать и делать картинки о том как это сделать?
Репутация: 0
Рейтинг: 0
Кол-во тем: 0
Сообщения: 6
Здравствуйте, если это вас не затруднит то я только буду рад и расскажите по подробней за камеру и ее линии за что(каждая линия отвечает). 1)Ситуация есть тег-локомотив в который садится тег-машинист, есть тег-вагон в который садятся тег-пассажиры, и есть команда вейпоинт по котором локомотив движется, на точке 0 он начинает движение, на точке 1 он приостанавливается, и на точке 3 он телепортируется на точку 0. Вопрос как сделать так что бы к приехавшему локомотиву подошел бот, и спросил у него документы, а после его бы застрелили и вагон бы высадил пассажиров а так же с этим зазвучала тревога и они бы пошли по вейпоинту в наступление. 2)Я сделал сцены в камере. а как сделать чтобы они при тестировании работали. P.s Спасибо.
Модераторы темы • MilovichJohn Doe
Для того, чтобы отвечать в темах на форуме необходимо войти на сайт или зарегистрироваться.