imaginary Опубликовано 9 февраля, 2019 Поделиться Опубликовано 9 февраля, 2019 FreeCam - свободная камера, подразумевает возможность полёта камеры отдельно от объекта/персонажа и тому подобного, используется в самых разных целях, для обнаружения противников, для создания красивых снимков, для нахождения секретов и тому подобного. Принцип создания: Всё зависит от типа игры. Если реализован поворот камеры мышью - то данную функцию делать не нужно. Для перемещения камеры можно использовать самые разные функции, но я склоняюсь к полёту в ту сторону куда смотрит игрок. Для этого необходимо вычислить синус и косинус для поворота по горизонтальной, и синус для поворота по вертикальной оси. После их надо умножить на радиус, мы получим точку на сфере - это и будет вектор ускорения для камеры. Его следует добавлять к уже существующим координатам камеры, изменяя радиус мы можем изменять скорость. Для того что бы камера была "свободная", нужно записывать свои значения в координаты, а функцию которая записывает их в игре по стандарту - отключить. Более детально всё показано в следующем видео Создание свободной камеры на примере игры "WarThunder": Спойлер Видео где показан принцип работы формул: тык 6 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 23 февраля, 2019 Поделиться Опубликовано 23 февраля, 2019 @inaginary, дошли руки посмотреть видос. Пока ещё на 30 минуте. весело наблюдать как ты пытаешься найти ошибки при объявлении переменных, либо нужно было все метки в одну через db 0(и флаг туда тоже, либо чтобы не путаться (и для наглядности пользователям) все метки сделать по 4 байта через dd 0 с пропуском по 4 байта. Ладно продолжу просмотр. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 23 февраля, 2019 Поделиться Опубликовано 23 февраля, 2019 @inaginary, здорово! ? Я на координате Z сейчас. Ссылка на комментарий Поделиться на другие сайты Поделиться
imaginary Опубликовано 24 февраля, 2019 Автор Поделиться Опубликовано 24 февраля, 2019 16 часов назад, Garik66 сказал: весело наблюдать как ты пытаешься найти ошибки при объявлении переменных Мне казалось там dd а не db, с кем не бывает? ? Конечно в db float не запишется... Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 24 февраля, 2019 Поделиться Опубликовано 24 февраля, 2019 37 минут назад, inaginary сказал: Конечно в db float не запишется... почему - ещё как запишется. Кажется в СЕ 6.8.3, я установил наконец-то, этого бага нету. Но проверял на Туториале 64 бит. Точно не помню но раньше эта проблема вроде была. при регистрации адреса выделялось 8 байт. И потому приходилось изгаляться. Несколько способов. 1. Всё объявляем dq 0 - все метки. 2. одну переменную db и в ней что угодно db 1 (float)3 (f;oat))360 (int)10 3. Объявляем (как и в первом способе различными метками, но юзаем разделители. Metka1: db 0 db 00 00 00 00 00 00 00 // 7 байт разделитель Metka2: dd (float)66 db 00 00 00 00 // 4 байт разделитель Menka3: dq (double)2 // здесь без разделителя. Ссылка на комментарий Поделиться на другие сайты Поделиться
imaginary Опубликовано 24 февраля, 2019 Автор Поделиться Опубликовано 24 февраля, 2019 (изменено) 6 минут назад, Garik66 сказал: ещё как запишется Оно может и запишется, но не в байт, а 4 займёт, если большое число то в любом случае в байт не влезет ведь. а ещё, в 64 даже инструкции в 4 байта внедряются с пропусками занятыми нопами, куча места тратится зря Изменено 24 февраля, 2019 пользователем inaginary Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 24 февраля, 2019 Поделиться Опубликовано 24 февраля, 2019 1 час назад, inaginary сказал: если большое число то в любом случае в байт не влезет ведь Смотря как писать, мы же привычны на костыли : Спойлер Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 25 февраля, 2019 Поделиться Опубликовано 25 февраля, 2019 В 09.02.2019 в 17:37, inaginary сказал: Создание свободной камеры на примере игры "WarThunder": А как ты в видео нашел поворот камеры ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 февраля, 2019 Поделиться Опубликовано 25 февраля, 2019 4 минуты назад, mumut сказал: А как ты в видео нашел поворот камеры ? Либо неизвестное изменилось/не изменилось (не изменилось поаккуратнее может и поменяться) Обычно значение от - 1 до 1 У @inaginary -3 3 в игре. Либо искать координаты самой камеры но повлиять на них не сможешь - углы будут рядом. также можно выйти от координат твоего персонажа, если имеешь опыт работы с регионом памяти Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 25 февраля, 2019 Поделиться Опубликовано 25 февраля, 2019 34 минуты назад, Garik66 сказал: Обычно значение от - 1 до 1 А значение меняется когда камера поворачивается то есть мышку повернул или когда координаты камеры меняются то есть когда ходишь ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 февраля, 2019 Поделиться Опубликовано 25 февраля, 2019 56 минут назад, mumut сказал: А значение меняется когда камера поворачивается то есть мышку повернул или когда координаты камеры меняются то есть когда ходишь ? Персонажа не трогай, а двигай только обзор камеры Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 25 февраля, 2019 Поделиться Опубликовано 25 февраля, 2019 Понял. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 февраля, 2019 Поделиться Опубликовано 25 февраля, 2019 Сделано по этому уроку, так что ребята дерзайте Ссылка на комментарий Поделиться на другие сайты Поделиться
imaginary Опубликовано 25 февраля, 2019 Автор Поделиться Опубликовано 25 февраля, 2019 (изменено) То - как работают разные формулы и как это выглядит на сфере. Формула: X = Rad*cos(AngV) * cos(AngG) Y = Rad*sin(AngG)*cos(AngV) Z = Rad*sin(AngV) Изменено 25 февраля, 2019 пользователем inaginary Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 27 февраля, 2019 Поделиться Опубликовано 27 февраля, 2019 В 09.02.2019 в 17:37, imaginary сказал: Всё зависит от типа игры. А знаешь ли ты как показать модель ГГ при свободной камере что бы было понятно где находится персонаж ? Ссылка на комментарий Поделиться на другие сайты Поделиться
imaginary Опубликовано 27 февраля, 2019 Автор Поделиться Опубликовано 27 февраля, 2019 43 минуты назад, mumut сказал: показать модель ГГ при свободной камере В Borderlands я сомневаюсь что это сработает, так как там нету вида от 3 лица, только при просмотре навыков. Но там вероятно статическая модель с анимацией, а ходьба и пр не анимируются, потому что незачем. Так что - вероятно никак. Но если очень хочешь то можешь попробовать поискать что меняется при просмотре древа навыков. (предполагаю что ты конкретно про эту игру так как все время в ней сидишь) Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 27 февраля, 2019 Поделиться Опубликовано 27 февраля, 2019 29 минут назад, imaginary сказал: (предполагаю что ты конкретно про эту игру так как все время в ней сидишь) Borderlands это подопытный кролик я тренируюсь на этой игре делать читы. Просто в этом деле я новичок. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения