Всадники Кальрадии

Модификации => Обмен опытом: Mount&Blade => Обмен опытом (в помощь мододелу) => Вопросы и ответы по модостроению => Тема начата: Egorex от 06 Июля, 2011, 11:34

Название: Как реализовать дороги и модификацию скорости (обсуждение)
Отправлено: Egorex от 06 Июля, 2011, 11:34
Появилась идея реализации дорог и скорости передвижения по ним. Любой объект на карте является отрядом, а также есть команда измерения расстояния до объектов. Остается расставить на карте через модульную систему дорожные знаки, вдоль которых проходит дорога и прописать в скрипт #script_game_get_party_speed_multiplier
 функцию измерения расстояния до дорожных знаков. Если расстояние меньше определенного радиуса, на отряд действует модификатор скорости движения. В дальнейшем, если есть желание (и если идея вообще сработает) можно вдоль пикетов нарисовать текстуры дороги.

Сопсна, жду конструктивную критику/хвалебные оды, а также не откажусь от текстур/моделей на пикеты.
Название: Re: Как реализовать дороги и модификацию скорости (обсуждение)
Отправлено: Dargor от 06 Июля, 2011, 11:57
Опять? А новую тему зачем?
Тогда уж надо и АИ переделывать, чтобы он выбирал более быстрый маршрут. Я не возьмусь.
Название: Re: Как реализовать дороги и модификацию скорости (обсуждение)
Отправлено: Rongar от 06 Июля, 2011, 12:15
Остается расставить на карте через модульную систему дорожные знаки, вдоль которых проходит дорога и прописать в скрипт #script_game_get_party_speed_multiplier
 функцию измерения расстояния до дорожных знаков. Если расстояние меньше определенного радиуса, на отряд действует модификатор скорости движения. В дальнейшем, если есть желание (и если идея вообще сработает) можно вдоль пикетов нарисовать текстуры дороги.
Зачем нужны знаки, если есть party_get_current_terrain? Знаки (скорей всего) придётся руками ставить, координаты прописывать, а ландшафт можно кисточкой  дорисовать. И текстуры накладывать потом не придётся.
Название: Re: Как реализовать дороги и модификацию скорости (обсуждение)
Отправлено: Egorex от 06 Июля, 2011, 13:10
Зачем нужны знаки, если есть party_get_current_terrain? Знаки (скорей всего) придётся руками ставить, координаты прописывать, а ландшафт можно кисточкой  дорисовать. И текстуры накладывать потом не придётся.

Вроде нет типа территории "road", новые типы территорий добавлять нельзя, а все дороги нарисованы степями. То есть если делать модификатор для степей, то отряд будет быстрее бегать не только по дорогам. Кроме того, разным знакам можно присвоить разные обозначения и разные модификаторы скоростей. таким образом можно знаками задавать разную скорость движения на разных участках дороги, например в лесу, в горах, в лесу в горах. Что эквивалентно уже трем новым типам территорий.

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

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

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

Но дело геморное, согласен. Но пока вроде овчинка выделки стоит.
Название: Re: Как реализовать дороги и модификацию скорости (обсуждение)
Отправлено: Rongar от 06 Июля, 2011, 13:57
Вроде нет типа территории "road", новые типы территорий добавлять нельзя, а все дороги нарисованы степями. То есть если делать модификатор для степей, то отряд будет быстрее бегать не только по дорогам. Кроме того, разным знакам можно присвоить разные обозначения и разные модификаторы скоростей. таким образом можно знаками задавать разную скорость движения на разных участках дороги, например в лесу, в горах, в лесу в горах. Что эквивалентно уже трем новым типам территорий...
Можно совмещать. Проверка территории, поиск расстояния до знака. Преимущества тут в том, что число знаков нужно существенно меньше, код будет легче (пока у тебя идёт к тому, что каждый кадр вычислять матрицу этак 1000x1000, от каждого отряда до каждого знака). В степях рисовать можно пустыней.

ИИ ты не перепрограммируешь, ни со знаками, ни с ландшафтами.
Название: Re: Как реализовать дороги и модификацию скорости (обсуждение)
Отправлено: Egorex от 06 Июля, 2011, 14:36
Можно совмещать. Проверка территории, поиск расстояния до знака. Преимущества тут в том, что число знаков нужно существенно меньше, код будет легче (пока у тебя идёт к тому, что каждый кадр вычислять матрицу этак 1000x1000, от каждого отряда до каждого знака). В степях рисовать можно пустыней.

Можно, но не нужно. Зачем? Для расчета модификатора скорости необходимо определить местоположение отряда относительно двух точек - соседних знаков - и определить, попадает ли точка в полосу значений или нет. Зная расстояния и углы до соседних знаков это элементарно. Модификатор скорости определяется в зависимости от близлежащих знаков без привязки к территории. Таким образом, я могу знаками задавать какое угодно типов территорий, а дороги отрисовать один раз, одной текстурой и без загонов. В принципе, можно сделать совсем грубые дороги, приняв вместо знаков существующие пункты (города/деревни/замки) и соединив их прямыми маршрутами.

ИИ ты не перепрограммируешь, ни со знаками, ни с ландшафтами.

Не понял, что имеется ввиду. Если я не могу перепрограммировать ИИ, то я вообще нихрена не смогу сделать. Но я видел скрипты с описанием поведения ИИ, поэтому не понимаю проблемы. Как я вижу, я могу в скриптах определять НПС куда им идти. Мне не нужно создавать какие то алгоритмы определения местоположения и модификатора скорости путем перебора всех знаков/деревень/замков/городов и выбора оптимального маршрута. Мне нужно прописать ИИ чтобы в определенных ситуациях он двигался по определенному листу точек от точки к точке. Таким образом, он сам по себе будет придерживаться дороги. Мне же не нужно чтобы он ходил по дорогам во время набегов на вражеские деревни.
Название: Re: Как реализовать дороги и модификацию скорости (обсуждение)
Отправлено: Rongar от 06 Июля, 2011, 16:05
Для расчета модификатора скорости необходимо определить местоположение отряда относительно двух точек - соседних знаков - и определить, попадает ли точка в полосу значений или нет.
Угу.
У тебя в голове два разных варианта, и ты между ними прыгаешь.
1. Расстояние до знака не более чем заданная величина.
2. Найдём пару ближайших знаков, определим по ним.
Каждый из них по отдельности мягко говоря безумен.
В принципе ты в конечном счёте сможешь их синтезировать в один более менее разумный.
Но порисуй на досуге картинки с линейкой в руках, чтобы в конец не запутаться. Это типа совет.

Мне же не нужно чтобы он ходил по дорогам во время набегов на вражеские деревни.
Скрипты, которые ты видел определяют стратегию ИИ, кого осаждать, какую деревне жечь.
Просто так, ходить куда-то там, ИИ не умеет.

Название: Re: Как реализовать дороги и модификацию скорости (обсуждение)
Отправлено: Легионер от 07 Июля, 2011, 08:01
опытным путем проверенно - движение по дорогам всеж происходит. если путь из точки а в точку б короче по прямой, но есть кусок дороги то боты и игрок стараются придерживаться дороги. мне кажется, что дело здесь не в текстуре, а в том что для дорог используется суженый полигон, и иконка по координатам идет по 2 параллельным вертексам.  причем выход осуществляется в вершине вертекса. 
Egorex, дорожные знаки интересны только для одного, с помощью их можно задать место засад, при прохождении по дороге через лесной масив например.
Название: Re: Как реализовать дороги и модификацию скорости (обсуждение)
Отправлено: vasul от 07 Июля, 2011, 12:35
Посмотрите в моде где есть строительство дорог  и сделайте так же
Название: Re: Как реализовать дороги и модификацию скорости (обсуждение)
Отправлено: Egorex от 17 Июля, 2011, 11:02
Для расчета модификатора скорости необходимо определить местоположение отряда относительно двух точек - соседних знаков - и определить, попадает ли точка в полосу значений или нет.
Угу.
У тебя в голове два разных варианта, и ты между ними прыгаешь.
1. Расстояние до знака не более чем заданная величина.
2. Найдём пару ближайших знаков, определим по ним.
Каждый из них по отдельности мягко говоря безумен.
В принципе ты в конечном счёте сможешь их синтезировать в один более менее разумный.
Но порисуй на досуге картинки с линейкой в руках, чтобы в конец не запутаться. Это типа совет.

Я вообще не понял этот коммент. ты о чем? я вообще не понимаю проблем, о которых ты говоришь. Зная координаты двух точек (дорожных знаков) можно описать прямую - это задача старших классов школы, или первых курсов института. Зная уравнение прямой, можно легко и просто описать перпендикулярную ей прямую, проходящую через точку с заданными координатами (местоположени отряда). Имея уравнения двух прямых вычисляется точка пересечения, и расстояние от отряда до дороги (расстояние от отряда до точки пересечения двух прямых). Все. Если расстояние меньше определенного значения - отряд находится на дороге и имеет бонус к скорости перемещения. Остается решить как ловчее сделать перебор знаков, я смотрю команду try_for_range. Другой вариант, попроще, сумма расстояний между двумя соседними знаками одной дороги не должна превышать определенную величину.

Что касается нанесения на карту дорожных знаков - вообще никаких проблем. Для начала создаем общую схему городов/замков/сел, прокладываем между ними маршруты, продумываем варианты. Если ты меня спросишь, как я собираюсь это сделать, то я отвечу - Autocad наше все. Координаты всех стационарных объектов известны, составить схему в dwg формате без проблем. Прикинуть в этой схеме расположение знаков также без проблем.
Название: Re: Как реализовать дороги и модификацию скорости (обсуждение)
Отправлено: Rongar от 18 Июля, 2011, 23:49
Я вообще не понял этот коммент. ты о чем? я вообще не понимаю проблем, о которых ты говоришь.
Я почему-то не удивлён.  Судя по твоим рассуждениям, к пониманию проблемы ты движешься, только медленно, без дорог, хотя маркеры я для тебя расставил.