Я работаю над небольшой многопользовательской игрой, в которой есть единственная скин-сетчатая сетка, в которой многие игроки используют ее. Некоторые сведения: я пробовал загружать через майа и экспорт blender collada. Оба, похоже, ссылаются на некоторые данные анимации, но я не мог заставить их работать. Я пробовал экспортер майя JSON, который выплюнул крошечные файлы 1k только с материальной линией. Наконец, работал экспортер блендера JSON. Для тех, кто пытается загрузить скелетные сетки, я нашел это очень полезным: Модель с анимацией костей (экспорт блендера), анимированная неправильно в three.js
Итак, теперь у меня есть объект geometry
и массив materials
от загрузчика JSON.
Я могу установить skinning=true
на материалы, создать THREE.SkinnedMesh
, добавить его в сцену, добавить анимацию через THREE.AnimationHandler.add
(Я не совсем понимаю, что на самом деле AnimationHandler
), создайте THREE.Animation
, вызовите play()
и update(dt)
. Наконец, у меня есть одна сетка и анимация, играющая в моей сцене.
Теперь я хочу, чтобы эти...
-
Много экземпляров. Я хочу, чтобы в моей сцене работало более одной модели проигрывателя.
- Я не хочу, чтобы одни и те же данные сетки и анимации загружались много раз.
- Время анимации должно быть для каждого экземпляра (поэтому они не все ожидают синхронно).
Должен ли я создавать много
THREE.SkinnedMesh
иTHREE.Animation
для одной и той же модели? Где находитсяTHREE.AnimationHandler
? -
Многие анимации. Я хочу, чтобы режимы бездействия/запуска могли воспроизводиться индивидуально.
AFAIK существует только одна временная шкала ключевых кадров анимации. Как это делает Three.js для меня, или мне нужно сделать это вручную?
-
Анимационное смешение. Когда персонаж перестает работать и стоит на месте с бездельной анимацией, я не хочу, чтобы мгновенная привязка от одного к другому. Я хотел бы приостановить анимацию запуска и смешать это состояние обратно в простую анимацию.
Возможно ли это в случае с сетчатыми сетками (не морфовыми мишенями)? Есть ли примеры или документы об этом?
Любая информация была бы весьма признательна, даже просто подталкивание в правильном направлении. Я не после полного учебника, я бы хотел получить информацию более высокого уровня об этих функциях.
Я мог бы с радостью реализовать 2 и 3, но мне хотелось бы получить некоторые информационные/описательные документы о трехмерной оболочке и анимации, чтобы начать работу. Например, this не так много.
[EDIT]
Спасибо, @NishchitDhanani, эта страница неплоха, но не упоминает несколько анимаций или смешивания скелетных анимаций: http://chimera.labs.oreilly.com/books/1234000000802/ch05.html#animating_characters_with_skinning
Эта страница говорит о том, что несколько анимаций по-прежнему остаются актуальными, но не намного (обсуждаются немного в комментариях): http://devmatrix.wordpress.com/2013/02/27/creating-skeletal-animation-in-blender-and-exporting-it-to-three-js/
Текущие ответы...
- Используйте много
THREE.SkinnedMesh
и все еще не уверены вTHREE.AnimationHandler
. - Не знаю. Возможно, есть способ изменить ключевые кадры запуска/завершения вручную в
THREE.Animation
. - Не реализовано AFAIK. Я могу попробовать создать пользовательский шейдер, который может принимать два
THREE.Animation
и интерполировать между ними.