РЕГИСТРАЦИЯ на сайте. загружаю модель, атачу к ней анимацию, видим позу и анимацию. по шкале времени видно тучу кей-фреймов, вся анимация задана ротацией кватернионов. открываю окно TrackView - нет ротаций, ничего нет - как т..."> РЕГИСТРАЦИЯ на сайте. загружаю модель, атачу к ней анимацию, видим позу и анимацию. по шкале времени видно тучу кей-фреймов, вся анимация задана ротацией кватернионов. открываю окно TrackView - нет ротаций, ничего нет - как т..."> Перейти к содержанию
Авторизация  
chip35

Подскажите по 3ds max про TrackView

Рекомендуемые сообщения

Подскажите такую непонятицу

Скрытое содержимое

    Для просмотра скрытого содержимого необходима РЕГИСТРАЦИЯ на сайте.

загружаю модель, атачу к ней анимацию, видим позу и анимацию.

по шкале времени видно тучу кей-фреймов, вся анимация задана ротацией кватернионов.

открываю окно TrackView - нет ротаций, ничего нет - как так?

если запустить анимацию - она работает, ротация модели есть, персонаж движется и дышит.

 

еще 2 вопрос - если детально присмотреться то видно что модель связана с анимацией как бы на изнанку.

как можно вывернуть модель наизнанку?

поворачивать кости не выйдет, поза показывается верно, нужно именно вывернуть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Надо правой кнопкой кликнуть по ротейшену и выбрать assign controller, в появившемся окне выбрать Euler XYZ, тогда появятся кривые, которыми можно управлять в редакторе.
Не понятно, почему сразу не в эйлере. Может быть импортер такой кривой. И тут ничего не поделаешь. Надо думается мне скрипт писать, который будет перебирать все выбранные кости и переназначать контроллер.
То же само с масштабом. А вот наизнанку фиг знает. Это вообще откуда и куда.

так для простоты скрипт типа

a=getcurrentSelection()
for i=1 to a.count do
(
    a.pos.controller = Position_xyz()
    a.rotation.controller = Euler_xyz()
    a.scale.controller = Bezier_scale()
)

можно на кнопку повесить, и для всех выделенных объектов будут изменены контроллеры на стандартные, которые в редакторе кривых можно редактировать

Изменено пользователем Майк

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Биггггг спасибо. Асинг дает то что хотел. Зачет!

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

еще бы для красоты вывернуть модель.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вылезла проблема по максу:

При воспроизведении анимации выходит момент в определенном кадре когда угол поворота идет от -20 до 10, в момент перехода 0  весь меш как бы разворачивается на 180градусов, только в момент перехода. Когда уже угол стал больше - анимация идет нормально, потом опять угол переходит 0 в отрицательную сторону и опять в этом переходе меш выворачивает.
Похоже на gimbal lock  в углах эйлера, решил не применять assign controller , остался в TCB rotation, строю подобную анимацию когда вектор должен отклоняться по подобной схеме - и опять в момент якобы перехода 0 (эльеровского) идет выворачивание меша, но я же сейчас работаю с кватернионом.
Может 3ds max при поворотах все равно преобразует через систему эйлера?
Что делать чтоб избежать выворачивание при переходе 0 ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эксперименты показали что 3ds max при редактировании скорей всего применяет расчеты в ейлерах, а не кватернионе.

Беру только один фрейм поворачиваю кость на с 10град на -20 чтоб поворот перешел 0, записываю показатели кватерниона из окна свойств. Потом для проверки рассчитываю поворот этой кости вокруг оси на те же градусы но программно - создаю кватернион из углов ейлера, умножаю текущую кость - и вуаля получаю точно такой же кватернион как в максе, но это НЕВЕРНО!

В этом виде повороты вырождаются пересекая 0 и 180 град, и это вызывает вывернутый кватернион.

Я считаю что в системе TCB rotation  ВСЕ операции должны происходить только в кватернионе.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

какова цель и условия? от того и прыгать

пример на ютуб, чтоб не гадать что там куда перескакивает, не бывает гимбла с -20 на 10 если только у других осей значения не около +/-180

 

-все расчеты во всех программах унутре происходят в кватернионах, так проще математикам

-потом для удобства юзера предоставляют результат в редактированном виде, с соответствующими багами, когда назначаешь контроллер - выбираешь тип багов, которые получишь ))

-TCB это сплайн базед, на базе безье кривых, то есть вместо кривых безье с тангентами используется кривые с Tension, Continuity, Bias (натяжение, преемственность , смещение, хотя перевод можно трактовать и немного иначе), то бишь это не совсем кватернион как бы

-настоящий кват это smooth

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Цель анимация персонажа движка унреал, вся анимация состоит из кватернионов для каждой кости.

Нужная кость в нужном фрейме изначально повернута на 10град, мне нужно чтоб поворот был на -20  это значит проходя соседние фреймы кость должна повернуться пересекая 0 (если судить по системе ейлера).

При загрузке анимации в свойствах Rotation этой кости я вижу time  и 3 флоат числа и angle  (которые соответствуют кватерниону). В окне TrackView написано TCB rotation которые без графиков т.к. кватернион не может быть показан (как выяснилось выше).

При попытке изменить TrackView в режиме контроллера ейлера - получаем выворачивание в момент перехода 0.
Теперь главный прикол - загружаю все с нуля, НЕ трогаю TrackView и контроллеры, выбираю нужную кость и в 3д виде поворачиваю так чтоб поворот перешел 0 (который видели в системе ейлера) - смотрю окно свойств и вижу 3 флоат числа которые вывернуты НЕправильно. Это значит что max пересчитал мой поворот в 3д окне НЕ в кватернионе, а по своему неправильному методу.

Теперь правильное исполнение поворота:
let vector = new Vector(0, 0, 1);  -ось вокруг который будем вращать

let vQ = new Quaternion(vector, angle);  -получаем кватернион вращения на нужный угол, в моем случае -30 для перехода 0

let newQ = Frames[time].Q.dot(vQ).normalize();   -вычисляем поворот кости в режиме кватерниона

результат я просто в шоке - кость ПЛАВНО переходит 0 просто идеально, без выворачивания!

Вопрос как сделать редактирование анимации в максе так чтоб все расчеты велись именно в кватернионе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну риг-то какой? Чистые кости что ль? И снова, что там в координатах чайл-парент? Это может быть в мировых координатах поворот на 30 градусов, а относительно родителя 100500 градусов

Возьми бипед/кат и анимируй. Бипед точно в кватернионе по умолчанию. Кат в ейлере, но ИК/ФК решит проблему.

И зачем именно кватернион-то? Можно и в эйлере делать, есть в редакторе кривых трек вью утилиты, там есть эйлер фильтер который в большинстве случаев выправит прокрут, но  минус в том, что он выправит текущую кость, а следующая в иерархии останется с той же анимацией относительно родителя, а это вывернет ее относительно мира.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скрытое содержимое

    Для просмотра скрытого содержимого необходима РЕГИСТРАЦИЯ на сайте.

Чистая загрузка анимации, в контроллерах видно rotation Tcb, снизу видим положение этой кости в данном фрейме локально родительской кости, все как положено. Анимация работает правильно, экспорт в игру происходит правильно.

Теперь смотрите на скрине показал как поворачиваю кость в этом фрейме. Контроллеры не меняю, если поворачиваю кость вверх на 10град или вниз хоть на 90 - проблем нет, работает правильно.
НО  если повернуть кость вверх, как на скрине, например на 20град, чем самым мы пересекаем 0 (если судить по системе ейлера) - то кватернион выворачивается. 
В максе визуально смотрится правильно, но на деле при анимации время идет:
3.1 -4.0  = правильно,
4.1  - 5.0   кватернион выворачивается наизнанку,
5.0 положение как в максе, визуально нормальное
5.1-6.0 выворачивается обратно, переходя 0 град (если судить по системе ейлера).

 

Набросал свой скрипт, который поворачивает эту же кость но чисто через кватернион - работает четко, плавно, идеально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

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

Важная информация

By using this site, you agree to our Условия использования.