Автор Тема: Как исправить анимацию в blender, модель при движении расплывается?  (Прочитано 1864 раз)

Оффлайн Katy93

  • Житель
Здравствуйте, пытаюсь конвертировать модель в json. Для этого использую библиотеку в блендер io_three из архива three r85 js взятого с github. Самая анимация в blender проигрывается нормально, но стоит её конвертировать в json а потом запустить на сайте как анимация расплывается в разные стороны. Модель от valve, расширение “.smd”. Поэтому для импортирования модели в blender скачала так же библиотеку “io_scene_valvesource”. Запускаю модель в браузере смотрю, произошло искажения, для прекращении анимации в html я просто закомментирую эти две строчки.
  //const delta = clock.getDelta();
  //if(mixer) mixer.update( delta );
При просмотре я заметила такой эффект что модель при движении занимает ниже позицию чем модель без анимации. Чтобы убедиться что это так я начертила прямоугольник. Сравнить что модель в движении занимает более низку позицию чем в спокойном состоянии можно на скриншоте снизу.

Есть предположения что искажения происходит из-за неправильных координат установленных в разделе с анимацией в самом файле.
При конвертации я настроила как описана в это статье.
http://yomotsu.net/blog/2015/10/31/three-r73-anim.html
Вот скриншот из статьи настроек:

Программу я использую Blender 2.76. + io_scene_valvesource + io_three(r85).
В чем проблема как исправить анимацию в blender, чтобы при конвертации в json она нормально встала. Прикладываю исходники.
https://disk.yandex.ru/d/3yslCEXXyKp3sQ
Куда включены.
Модели: формата “smd, json” и dae (на всякий случай), исходник сохраненной сцены формат ".blend" для загрузки в блендере.

Также добавила плагины для импорта файла valve. Соответственно io_three для экспорта в json, ну и разумеется исходники в формате html, которые можно запустить для тестинга. Вот результат.
https://codepen.io/Smith37/pen/NWaydBP

Оффлайн Katy93

  • Житель
Нашла похожую проблему на англоязычном форуме. У пользователя тоже все расплывается при проигрывании анимации. https://stackoverflow.com/questions/49088738/how-to-export-and-load-blender-3d-mesh-with-animation-to-json-and-load-it-in-thr. Ему ответили следующие.

Цитировать
Is your animation done with armature key frames on each bone? If you are using IK you may need to bake the IK into the action. Google baking blender IK. In the three export settings, make sure you have skinned mesh and animation, and embed animation checked.. if these things don't help, post a codepen or a jsfiddle. Also make sure your animation is set to loop. It may be finishing the animation before you see it for the first time. Hth.

Я английский плохо знаю поэтому перевела с помощью гугл переводчика.

Цитировать
Ваша анимация сделана с ключевыми кадрами арматуры на каждой кости? Если вы используете IK, вам может потребоваться встроить IK в действие. Блендер для выпечки Google IK. В трех настройках экспорта убедитесь, что у вас есть скелетная сетка и анимация, а также отмечена вставка анимации. Если это не помогает, опубликуйте codepen или jsfiddle. Также убедитесь, что ваша анимация настроена на цикл. Возможно, это завершение анимации до того, как вы увидите ее в первый раз. Hth.

Что такое IK? Ну скелетная сетка вроде понятно это что-то вроде каркаса для персонажа, а как проверить что анимация настроена на цикл. Вроде она и так настроена, так как после завершения анимации она начинается заново. По сути все требования выполнены. Может нужно еще какие то опции нажать, я уже пробовала делать смешение объекта по оси координат, скелет перемещали, делала разные настройки, модель по прежнему плохо анимируется и расплывается в разные стороны.

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
IK - инверсная кинематика, но вроде в твоей модели она не используется. Вечером посмотрю подробнее весь процесс экспорта, но вот первое что приходит в голову - подготовить модель к экспорту,так чтобы масштабные коэффициенты были 1,1,1, координаты 0,0,0 (повороты вроде уже установлены 0,0,0), после этого проверь анимацию и уже только потом делай экспорт.

Оффлайн Katy93

  • Житель
Нашла в интернете еще одну статью про экспорт модели https://unboring.net/workflows/animation.html, там подробно рассказывается как это
сделать, но автор указывает настройки которую я не могу найти.

Где находятся эти настройки?

Оффлайн Striver

  • Житель
  • недоинженер, полупрограммист
    • http://striver00.ru
Цитировать
Где находятся эти настройки?
Это настройки материала в старом встроенном рендере (в версии 2.8 его подло удалили).

На анимацию этот момент вообще никак не повлияет, только на материал.

Оффлайн Katy93

  • Житель
Цитировать
Это настройки материала в старом встроенном рендере (в версии 2.8 его удалили).
Понятно, только у меня Blender 2.76, если не повлияет тогда можно пропустить этот шаг.

Оффлайн Katy93

  • Житель
Я проверила исходники автора статьи (ссылку которую выше добавила и свои исходники).
В итоге у автора есть два объекта Armature и Body.

Стрелками я указала выбранный элементы.

Вот ссылка на Armature
http://images.vfl.ru/ii/1640864152/d56caebc/37344441.jpg

А вот ссылка на body.
http://images.vfl.ru/ii/1640863697/1dbfd13b/37344240.jpg

Как показывают картинки оба объекта находятся на равной позиции.

Теперь мой вариант, у меня здесь вместо Armature --> c_marine_skeleton, а вместо Body --> c_marine

Ссылка на c_marine_skeleton
http://images.vfl.ru/ii/1640864297/fb15c187/37344525.jpg

Ссылка на c_marine.
http://images.vfl.ru/ii/1640864460/57f5cbd0/37344552.jpg

Если судить по картинкам моей модели, то одна модель находится ниже чем другая. Думаю, что из-за этого происходит искажение при анимации, хотя могу и ошибаться. Теперь меня интересуют как выравнять их позиции, чтобы они были расположены на одной оси координат?
 
P.S. Конвертнула модель автора, чтобы запустить через threejs скрипт. У автора все нормально работает без искажений. Значит проблема происходит именно из-за позиции вершин, моей модели.

Оффлайн Katy93

  • Житель
Здравствуйте, мне так и не удалось решить проблему со смещением модели, неужели никто не знает как исправить?

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
я забыл, сейчас посмотрю

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
... мне не удалось сбросить масштабные коэффициенты в 1.1.1, но кажется проблема в них ...
... а откуда у тебя такая странная арматура? ...

Оффлайн Katy93

  • Житель
Цитата ".. а откуда у тебя такая странная арматура? ...". Взяла из исходников delphi. Автор показал пример как работать с моделями из Half Life. Исходники старые примерно 2007-2008 года.

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
а тебе точно эта арматура нужна? может её выбросить и взять более традиционную с уже готовым набором анимаций? например с сайта mixamo.com

Оффлайн Katy93

  • Житель
Мне нужно модель именно Джилл Валентайн в традиционой одежде из Обителя Зла, т.е. в полицейском костюме и берете и чтобы она двигалась. Сколько не искала в интернете так и не нашла.


 


Яметрика

* По форуму

* Рекламный блок

* Последние вложения

1 (1).png
Скачано: 68
Автор: LEXA ANЭGROWND
blender.png
Скачано: 78
Автор: ipv2007
4.png
Скачано: 100
Автор: hiroyukiss
2.png
Скачано: 122
Автор: hiroyukiss

Скачано: 112
Автор: Dilifa12