Announcement

Collapse
No announcement yet.

Экспорт .fbx не работает

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Экспорт .fbx не работает

    Здравствуйте. Это такое ограничение демо версии, или экспорт в формат .fbx поломанный? При импорте в 3ds max 2017-18 или Unity ключи анимации "кажутся" нормальными, но между ключами твориться черти что, все перекручивается.
    Click image for larger version

Name:	cascadeur bug.gif
Views:	51
Size:	586.1 KB
ID:	514

  • #2
    Здравствуйте, Ilya

    Это решит проблему в Unity:

    Click image for larger version

Name:	image.png
Views:	21
Size:	6.8 KB
ID:	516


    А это решит проблему в 3dsmax:

    Click image for larger version

Name:	image (1).png
Views:	18
Size:	67.3 KB
ID:	517

    Также проблема решится, если вы поменяете фреймрейт в юнити или максе на тот , в котором делали анимацию в каскадёре.

    Comment


    • #3
      Polina То есть это все таки баг при экспорте?

      1) Фильтр в юнити не лучший вариант, так как он заметно искажает оригинальные анимации. Он как бы "смазывает" некоторые нюансы движений. Особенно если анимации в луп зациклены. Плюс в моем случае это не выход, так как помимо анимации движения у персонажей еще есть и лицевая анимация, то есть пайплайн по любому проходит через 3ds max.

      2) Euler Filter не помогает. Дергания немного уменьшаются, но по прежнему остаются.

      С фремрейтом все в порядке. если его менять то меняется и скорость анимации - то есть было бы прям заметно. Но я проверил ради эксперимента и дергания остались. Так же я попробовал экспортировать другую сцену из каскадера дергания присутсвуют. И другую версию cascadeur тоже проверил, без изменений.

      Скажите у вас в компании какой пайплайн? Вы вместо 3ds max используете maya или вы напрямую экспортируте из cascadeur в unity ? Может проблема в импорте .fbx максом, что не исключено. Или, как вариант, может нужна более новая версия макса?
      Last edited by Ilya; 20 May 2020, 11:12.

      Comment


      • #4
        Да, мы 3ds max не пользуемся, сразу либо юнити, либо майя.
        Но сильно сомневаюсь, что это влияет. Проблема воспроизводится на нашей анимации сальто? Просто для нее мы тестировали после прогона euler filter - и в этом случае все хорошо.

        Насчет фреймрейта непонятно:
        • если его не менять, то влияют только "ключевые" кадры, в них анимация "запекается" с тем фреймрейтом, который указан в сцене в каскадере
        • что между ними в этом случае - вообще не важно
        • так что если фреймрейт не менять, то все ок должно быть в любом случае
        Но все-таки, изначально вопрос формулировался не так - речь шла о том, что происходит между кадрами
        между ключами твориться черти что, все перекручивается
        Здорово было бы получить гифку с этими проблемами после применения euler filter. Или как вариант созвониться с нами в дискорде или скайпе.

        Comment


        • #5
          Начну с того, что, пока я готовил вам гифки и скриншоты я нашел как "почти"(!) полностью исправить это баг в максе. Описаные действия которые вы скинули (на английском) правильные, но нужен еще один пункт. Euler Filter исправляет положение ключей, НО не корректирует тангетсы кривых. То есть нужно вписать еще один пункт - нажмите "Set Tangents to Smooth". Почему это "почти" исправление, ну потому что теперь все тангетсы сглажены. То есть будет небольшое подергивание в анимациях. Первая гифка 3ds max, вторая cascadeur обратите внимание на правую руку персонажа.
          Click image for larger version  Name:	cascadeur bug 3.gif Views:	0 Size:	740.4 KB ID:	522
          Click image for larger version  Name:	cascadeur bug 4.gif Views:	0 Size:	725.5 KB ID:	523

          Дальше по проблеме.

          Экспортируйте анимацию в юнити и выключите там Resample Curves (первый скриншот который скинули ранее). Для наглядности можно уменьшить скорость воспроизведения анимации. Там вверху справа в окошке анимации есть бегунок.
          Click image for larger version  Name:	cascadeur bug 5.gif Views:	0 Size:	626.9 KB ID:	524

          Да все правильно - ключевые кадры правильные, но неправильно то что между ними. Причина в том, что, в одном ключе у объекта может быть положение вращения 0 а в следующем кадре -360. То есть, вы не увидите разницы если перескакивать по ключам, но это вращение на 360 видно во время воспроизведения. Красная кривая с пиком это кривая анимации по оси Х. Обратите внимание что она переходит с отрицательных значений -200 сразу в положительные 200.
          Click image for larger version  Name:	cascadeur bug 2.gif Views:	0 Size:	2.13 MB ID:	525

          Вот вам состояние кривой до и после применения фильтра. После этого, как я уже писал в начале, кривую можно сгладить, ну и результат вы видели.
          Click image for larger version  Name:	cascadeur.jpg Views:	0 Size:	178.4 KB ID:	526

          Если это присутствует и в Unity и в 3ds max - то это баг экспорта. Скорее всего в каких-то еще программах вылезет.
          Last edited by Ilya; 20 May 2020, 16:53.

          Comment


          • #6
            Originally posted by Polina View Post
            Проблема воспроизводится на нашей анимации сальто?
            Забыл добавить. Да, на вашей анимации сальто и на той которую сам делал. Проверил в разных версиях каскадера.

            Ну и на счет фремрейта - он не влияет на импорт анимации. Как я уже объяснил выше дело в ключах, которые и правильные и неправильные одновременно В гифке из макса я перехожу по ключам и ничего не заметно, но при воспроизведении идет вращение. Я бы списал это на макс, так как он местами кривой. Но когда увидел то же самое в юнити я подумал, что это ограничение беты или типа того.

            Comment


            • #7
              • Вообще, лучше всего экспортировать с тем фреймрейтом, с которым анимация будет использоваться в игре. В таком случае гарантировано максимальное качество.
              • Если по каким-то причинам хочется анимацию ресайзить (менять фреймрейт) - то надо понимать, что идеально работать не будет. (Пример, когда нужно ресайзить - слоу-мо в игре).
              • Промежуточные кадры придется как-то рассчитывать. Когда такая операция происходит в Каскадере - используется ИК система каскадерского рига. В игре ее нет. Поэтому, когда интерполируются вращения костей от пивота к рукам, то руки чуть-чуть, но будут дергаться.
              • Хоть идеал и недостижим - все равно можно сделать, чтобы результаты были адекватными. Первое что надо сделать - это применить euler filter.
              Немного о том, почему его приходится применять:
              В Каскадере положения джоинтов рассчитываются по ИК-ригу (нашим поинт-контроллерам). Эйлеровы углы джоинтов не представляют из себя гладкую кривую. Это никак не мешает, так как эйлеровы углы джоинтов - вторичны. Гладкая траектория именно у ИК-рига. Но при экспорте в fbx попадают только джоинты. Поэтому важно прогнать перед экспортом euler filter и сделать эти траектории гладкими.В принципе - можно улучшить результат еще. Для этого можно задать на джоинты касательные, которые имитировали бы в интерполяции поведение ИК-рига.
              Как это обычно делается:
              • Рассчитывается увеличенная анимация на ИК-риге в каскадере, по ИК ригу "запекаются" значения на джоинты (+ применяется euler filter)
              • Численно считаются значения касательных для эйлеровых углов по соседним кадрам в увеличенной анимации
              Это улучшит поведение скелета в интерполяции.
              Сейчас такая фича не реализована - в будущем мы ее добавим.

              И еще нам интересно, для какой цели вам критично положение костей в межкадровом пространстве?

              Comment


              • #8
                Originally posted by Polina View Post
                Поэтому важно прогнать перед экспортом euler filter и сделать эти траектории гладкими.
                Про экспорт опечатка? Или именно в каскадере это нужно перед экспортом?

                Originally posted by Polina View Post
                Это улучшит поведение скелета в интерполяции.
                Сейчас такая фича не реализована - в будущем мы ее добавим.
                то есть сейчас не работает?

                Originally posted by Polina View Post
                И еще нам интересно, для какой цели вам критично положение костей в межкадровом пространстве?
                Думаю будет проще, если расскажу свой пайплайн. В максе я использую систему костей CAT, очень удобная система с возможностью работать со слоями (блендить анимации), с копированием поз, анимаций и т.д. Чем-то похоже функционалом на ваш каскадер. Только в CAT на мой взгляд более удобная работа с траекториями движений. Так же я использую САТ для лицевой анимации, есть отдельный инструмент который упрощает все это в разы. Ну и самое главное - в САТ можно копировать анимации с других объектов.

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

                Почему так? Потому что лицевая анимация привязана к UI элементам и работает только внутри макса, не получится экспортировать модель в каскадер с этим функционалом и обратно. Как и делать лицевую анимацию в каскадере. Собственно, когда проверял эту последовательность и увидел что экспорт добавляет шум в кривые. В чем проблема этого шума? Ну, это таки вращение на 360, физику например уже симулировать не получится (не проверял). Да и во время простого проигрывания все дергается как попало, что и есть по сути баг. Хотя в общем ладно. На костылях, этот баг можно "почти" полностью обойти. Но думаю я не последний кто за него спросил.

                И кстати.
                Originally posted by Polina View Post
                Промежуточные кадры придется как-то рассчитывать. Когда такая операция происходит в Каскадере - используется ИК система каскадерского рига. В игре ее нет. Поэтому, когда интерполируются вращения костей от пивота к рукам, то руки чуть-чуть, но будут дергаться.
                Перекинув анимации на САТ это дрожание можно исправить его ИК системой. Но суть даже не в этом - до применения фильтра этого мелкого дрожания нет, оно именно после исправления кривой появляется, так как тангетсы сбиваются.


                Polina У меня к вам еще другой офтопный вопрос. Прежде всего скажу, что я в полном восторге от вашей программы, это действительно революционная вещь! Но, мне совершенно не нравится в нем интерфейс, многое просто не логично, не эргономично и кое что просто раздражает. Для вас то конечно все привычно, но со стороны, в особенности для начинающего изучать...) Так вот, имеет ли мне смысл записывать для вас видео, что и как можно было бы изменить чтобы улучшить эргономику интерфейса? Просто если подойти конструктивно то это займет не пять минут. Ну а если такого рода фидбек вам не нужен и вы в принципе не собираетесь менять UI, тогда ладно.)

                Comment

                About us
                Cascadeur is a standalone software for creating physically correct keyframe animations for characters, humanoid and otherwise. Make realistic animations from scratch or improve your mocap, while retaining full control over the results.
                Join us
                Working...
                X