Перейти к содержанию
  • Неправильный поворот объектов


    Копался в системе стройки и обнаружил косяк при поворотах. Возможно, из-за него объекты и разлетались друг от друга при попытке реализации поворотов групп предметов (но не факт).

    При повороте "На 45 градусов по часовой" происходит вращение вокруг синей оси объекта:

    90.jpg
     

    При повороте "На 45 градусов по оси Х" происходит вращение вокруг зелёной оси объекта:

    91.jpg
     

    При повороте "На 45 градусов по оси Z" происходит вращение вокруг красной оси объекта:

    92.jpg
     

    При повороте "На 45 градусов по оси Y" происходит вращение вокруг оси Z карты:

    93.jpg
     

     

    По идее повороты X, Y, Z должны поворачивать вокруг осей объекта, но поворот по Y не соответствует этому. Я так понял, что при повороте  "По часовой" или "Против часовой" должно происходить вращение вокруг оси Z карты, но в плагине стройки что-то пошло не так.


     


    Обратная связь

    Рекомендуемые комментарии

    Electr0

    Опубликовано

    • X - Красная
    • Y - ЗЕЛЕНАЯ
    • Z - СИНЯЯ

     

    Вот я вращаю по оси X

    20160626005604_1.jpg

    20160626005606_1.jpg

    Т.Д мы вращаем объект по оси X

     

    Вот я вращаю по оси Y

    20160626005426_1.jpg

    20160626005431_1.jpg

    Т.Д мы вращаем объект по оси Y

     

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

    KOllapsE

    Опубликовано

    @Electr0 А поворот типа "На 45 градусов по часовой" - это поворот вокруг оси Z самой модели, получается?
     

    KOllapsE

    Опубликовано

    @Electr0, а почему поворотов по осям карты 3, а вокруг осей объекта - только один (для Z, или это вращение по оси Y объекта, нельзя понять)?

    Electr0

    Опубликовано

    7 минут назад, KOllapsE сказал:

    @Electr0, а почему поворотов по осям карты 3, а вокруг осей объекта - только один (для Z)?

    не понял,если ты про повернуть предмет, то там используется поворот типа YAW:

     

    Flight_dynamics_with_text.png

    KOllapsE

    Опубликовано

    @Electr0, ну-у-у, сейчас есть 4 варианта - поворот по часовой, по X, по Y, по Z. Поворот по часовой привязан к системе координат объекта, я так понял, а остальные привязаны к системе координат карты. Т.е. для трёх осей карты сейчас существует три поворота, а для трёх осей объекта - только один. Почему нет ещё двух поворотов по осям объекта - по техническим причинам или это просто неактуально или ещё что-то?

    Electr0

    Опубликовано

    какие это еще оси кроме X Y Z существуют?

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

    KOllapsE

    Опубликовано

    1 минуту назад, Electr0 сказал:

    какие это еще оси кроме X Y Z существуют?

    Эм, никаких. Я так понял, что есть 3 поворота по осям карты, а поворот "по часовой" - это поворот по одной из осей объекта, а их ведь тоже три.

     

    18 часов назад, KOllapsE сказал:

    @Electr0 А поворот типа "На 45 градусов по часовой" - это поворот вокруг оси Z самой модели, получается?
     

     

    17 часов назад, Electr0 сказал:

    Ну аналогично тем 

     

    Electr0

    Опубликовано

    кароче есть у каждого предмета в игре такие параметры определяющие его положение в пространстве m_angRotation это его наклон, скажем так при обнулении тут выставляется значение вектора равное: 0 0 0, при поворотах отдельно по осям допустим на по X просто прибавляем либо убавляем, например повернули обнуленый предмет на 90 по оси X, все это значит у нее там: минус(либо плюс)90 0 0 будет, и в таком роде, так что при любых поворотах мы просто меняем значения в m_angRotation свойстве предмета.

     

    есть так же m_vecOrigin, это положение предмета на координатной плоскости карты, значение этого параметра меняется при перемещении предмета, тоже по осям X Y Z

    KOllapsE

    Опубликовано

    @Electr0, нашёл баг - используя только повороты "На 45 по часовой" и "На 45 против часовой" потерял десятую долю градуса. Сделал демку.

    20160626215143_1.jpg

    20160626215203_1.jpg

    20160626215206_1.jpg

    20160626215212_1.jpg

    20160626215226_1.jpg

    20160626215238_1.jpg

    20160626215302_1.jpg

    rotate.dem

    Electr0

    Опубликовано

    я знаю об этом, это не критично, там теряется теряется при расчетах в функции RotateYaw



    Присоединяйтесь к обсуждению

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

    Гость
    К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
    Добавить комментарий...

    ×   Вставлено с форматированием.   Вставить как обычный текст

      Разрешено использовать не более 75 эмодзи.

    ×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

    ×   Ваш предыдущий контент был восстановлен.   Очистить редактор

    ×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Обозначения статусов

    В обработке = Мы работаем над вашим отчетом.

    Исправлено = Проблема исправлена.

    Тестируется = Изменения внесены, но требуют тестирования.

    Закрыт = Отзыв некорректный, либо проблема не повторяется при проверке на серверах. Если у вас есть дополнительная информация напишите комментарий и мы снова откроем этот вопрос.

×
×
  • Создать...