Хотел написать свой посадочный автопилот, но что то не нашел можно ли задавать вручную крен, тангаж и т.п. ботам или ЛА. Есть ли тут подобные команды?
Управление самолетом ботами.
Лучший Ответ vlad333000 , 21 August 2015 - 22:56
Sledo, вот пример вашей физики (Данный пример является "идеальным" вариантом силы тяжести и сильно грубый), без других сил. Если заметите, то по скриптам вся физика - это тупо смена свойств объекта на большой частоте, а в итоге получается имитация реальной физики Перейти к сообщению
#1 OFFLINE
Отправлено 21 August 2015 - 14:04
#2 OFFLINE
Отправлено 21 August 2015 - 15:14
#3 OFFLINE
Отправлено 21 August 2015 - 17:01
А что то такое которое взаимодействует с физикой игры нет? Ну вот как будто за штурвалом сидишь и управляешь ЛА, только по средством команд в скрипте.
Сообщение отредактировал Sledo: 21 August 2015 - 17:01
#4 OFFLINE
Отправлено 21 August 2015 - 17:32
Сообщение отредактировал vlad333000: 21 August 2015 - 17:33
#5 OFFLINE
Отправлено 21 August 2015 - 18:25
Sledo, вся физика в играх это изменение вот этих вот параметров, только это происходит очень часто и человек видит это как обычное видео. Возьмите обычную формулу силы тяжести и примените её к объекту командой setVelocity раз так 30 в секунду и будет вам изменение скорости объекта под влиянием силы тяжести
Ага, а заодно просчет сил инерции, лобового сопротивления, подъемной силы крыла, тяги двигателя и т.д. Нет проблем что бы написать свой движок на уже готовом физическом движке. Этим много кто занимается, но я предпочитаю использовать уже существующие стандартные возможности физ. движка. Практика показывает что это намного эффективней и быстрее своих велосипедов, при том же результате.
#6 OFFLINE
Отправлено 21 August 2015 - 19:49
PS А вы думали это легко будет? Если в том же моде ACE банальная баллистика пули превращена в пару страниц, формата А4, кода, в котором черт ногу сломит!
Сообщение отредактировал vlad333000: 21 August 2015 - 19:50
#7 OFFLINE
Отправлено 21 August 2015 - 21:27
Sledo, ну ок, идите к nvidia и спрашивайте у них как работает их физический дфижок PhysX, а заодно еще к бохемии забегите и узнайте как управлять физикой в их движке (Который использует PhysX): ибо все что мы можем изменять: это скорость, положение, ориентацию и массу
PS А вы думали это легко будет? Если в том же моде ACE банальная баллистика пули превращена в пару страниц, формата А4, кода, в котором черт ногу сломит!
Дело то в чем? Дело в том что мы, как игроки вполне можем управлять ЛА без особых проблем и с физикой. Более того, боты так же вполне себе используют физику. Так вот, обычно, и это хорошая практика, берутся блоки кода которые отвечают за эти телодвижения, и на них забиваются ключевые слова, которые к примеру "делают" ровно то же, что и игрок. Например перемещение по мышки оси Х, инициализирует блок кода поворота самолета, эти данные обычно в виде цыфарок, и нет ни каких проблем с инициализацией блока кода, если эти цыфарки будут поступать не от, мышки, а от скрипта при определенных условиях. Блоку кода абсолютно все равно, от чего он получает данные.
Это и есть - физический движок т.е. там, где я использую физику которая уже готова, а не пишу ее опять. Поскольку Арма имеет физический движок, то вполне вероятно что и тут можно как то его использовать. Хотя конечно не факт.
Думаю и правда надо бы сбегать к БИСам, спросить у них, а то их автопилот это просто ужасный ужас ужаса.
#8 OFFLINE
Отправлено 21 August 2015 - 21:52
PS Вы собираетесь сделать Автопилот (ИИ для самолета) для ИИ? Вам не кажется это странным? И да скрипты в автопилоте для ботов вам не помогут, тут нужно писать свою логику поведении ИИ (FSM)
Сообщение отредактировал vlad333000: 21 August 2015 - 22:00
#9 OFFLINE
Отправлено 21 August 2015 - 22:24
, ИИ это совсем другая часть игрового движка. А команды которые я писал выше делают тоже самое, что и обычные скрипты отвечающие за управление, только вы решили найти тут какую-то физику
Очень странно, мне показалось что ЛА используют физику при полете, а непросто изменяют вектор движения. Точнее даже не движения, а направления.
PS Вы собираетесь сделать Автопилот (ИИ для самолета) для ИИ? Вам не кажется это странным? И да скрипты в автопилоте для ботов вам не помогут, тут нужно писать свою логику поведении ИИ (FSM)
Да, именно так. ИИ для ИИ. Старый ИИ выключаем, новый ИИ включаем и будет хорошо..
#10 OFFLINE
Отправлено 21 August 2015 - 22:34
Все объекты используют физику, но в компьютере физика - это тупо изменение свойств объектов (Положение, Ориентация, Скорость...) на высокой частоте (Симуляция мира ее еще некоторые называют (Не путать с отрисовкой мира)). Да вообще в компьютере все как с видео - обычные статичные картинки на высокой частоте = видео, так же и в играх: быстрое изменение положение объекта = движение...Очень странно, мне показалось что ЛА используют физику при полете, а непросто изменяют вектор движения. Точнее даже не движения, а направления.
Так что команды описанные выше при применение определенных законов и правил и есть ваша физика
#11 OFFLINE
Отправлено 21 August 2015 - 22:56 Лучший Ответ
Прикрепленные файлы
Сообщение отредактировал vlad333000: 21 August 2015 - 22:58
#12 OFFLINE
Отправлено 22 August 2015 - 15:00
Все объекты используют физику, но в компьютере физика - это тупо изменение свойств объектов (Положение, Ориентация, Скорость...) на высокой частоте (Симуляция мира ее еще некоторые называют (Не путать с отрисовкой мира)). Да вообще в компьютере все как с видео - обычные статичные картинки на высокой частоте = видео, так же и в играх: быстрое изменение положение объекта = движение...
Так что команды описанные выше при применение определенных законов и правил и есть ваша физика
Вы можете не объяснять мне что такое физика, я сам ее писал когда то. И это не тупое изменение параметров ГО, а изменение этих параметров, в соответствии с формулами физики.
Банальный пример - гравитационное притяжение. Формула - F = G ( (m1 * m2) /( r * r) )
А вот блок кода физики гравитации:
float F = 0; float m1 = 0; //масса ГО float r = 0; //расстояние между ГО function Gravity (float m1, float r) { _float G = 0,0000000000667f; //Гравитационная постоянная _float m2 = 5974200000000000000000000; //масса Земли F = G * ((m1 * m2) / (R * R) ); } Цикл на каждый кадр () { //на самом деле тут нужна еще функция расчета действия силы (F) на ГО, но мне лень его писать GO.pozition.y -= F; }
И здесь, мне абсолютно все равно, от чего значения я передаю в функцию Gravity. Из скрипта который я писал, или от весов подключенных к компьютеру (которые между прочим все равно передают параметры из "скрипта").
Вот что такое физический движок. А не тупое изменение параметров ГО, как будто есть физика. Это принятие параметров, расчет физики, и применение рассчитанных параметров, непосредственно к ГО. Вы же мне пытаетесь втолковать, что прослойки формул не используются, и изменение параметров ГО происходит напрямую, но так, как будто есть физика, т.е. не мгновенно.
Впрочем, раз другого не дано, я думаю что поступлю так - сосканирую параметры с посадки самолета которым управляет человек, и просто буду изменять их в полном соответствии с контрольными значениями при управлении ботом, используя интерполяцию. Получатся те же яйца, только в профиль.
Сообщение отредактировал Sledo: 22 August 2015 - 15:01