2017-01-14 20 views
4

Я пытаюсь поэкспериментировать с примером SceneKit от Apple's Fox (ссылка ниже), добавив модель с простой анимацией, такой как «panda.scn» и «walk.scn».Как я могу экспортировать простую фальсифицированную модель от Maya для использования в Scenekit?

enter image description here enter image description here

Я могу создать статическую модель без каких-либо швов или анимации, которая работает: например, В Maya (2017) я добавляю простую сферу, экспортируя выбор в файл FBX_DAE (COLLADA), перетаскивая его в проект в XCode и конвертируя его в файл SCN. Затем я смогу перетащить эту модель в «level.scn», положение и масштабировать ее, как я ожидал.

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

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

Игнорирование того, что в настоящее время я понимаю, что просмотр файла «walk.scn» заключается в том, что анимация - это просто экспорт суставов с ключевыми кадрами. Я попытался воспроизвести это, экспортируя только суставы в отдельный DAE и импортируя его, а затем применяя это в коде так же, как к «walkAnimation». Это, похоже, ничего не делает.

Я экспериментировал с различными настройками диалогового окна экспорта FBX_DAE, включая анимацию выпечки (кстати, в чем разница между выпечкой анимации при экспорте и выпечкой ее в майя перед экспортом? Первая вроде бы что-то делает, а другая ничего не делает в моих тестах.)

Мне очень понравился рабочий процесс для создания простых анимаций персонажей в Maya и получения их в SceneKit. Любая помощь приветствуется.

Для справки:

источник компании Apple: https://developer.apple.com/library/content/samplecode/Fox/Introduction/Intro.html

Maya сцены для моей тривиального шара модели с двумя шарнирами: http://pat.net/misc/ball1.mb и вывода DAE из Maya для этого: http://pat.net/misc/ball1.dae

UPDATE:

Ответ Mnuages ​​выглядит правильно, когда я добавил родительский элемент управления по геометрии и суставам SceneKit позволил мне переместить их. Но даже после изучения моего понимания того, как эти узлы и их трансформации связаны с Майей, я не чувствую, что у меня есть реальное понимание того, как SceneKit интерпретирует их. (Хотелось бы прочитать некоторые документы о том, что это еще больше осветит, если они существуют).

UPDATE # 2:

я, наконец, смог создать анимацию, выполнив следующие действия: 1) Экспорт либо полную сцену или просто стык с анимацией будучи уверенным, чтобы выбрать опцию «печет анимации» в диалог экспорта DAE или испечь всю анимацию с помощью Key-> Bake Animation. 2) Он работает только в том случае, если я загружаю DAE-файл в файл сценария вместо преобразования его в SCN. Преобразование в формат SCN, похоже, теряет анимацию.

+0

Да, документы, поддержка и примеры Apple от SceneKit тонкие на земле. И они, вероятно, задаются вопросом, почему мало кто использует его. Или просто все равно. Какую версию майя вы используете? Если это новее, чем 2 года, это может быть проблемой. Кроме того, вы проверили модель ввода-вывода? Предполагается, что это лучший способ импортировать модели, но ... он даже менее используется, чем API GameplayKit и Game Controller. – Confused

+0

Я использую Maya 2017. Мне нужно было установить флажок в менеджере плагинов, чтобы включить экспорт DAE, но он, казалось, поставлялся с продуктом. Я предполагаю, что SceneKit построен поверх ввода-вывода модели, но я изучу его дальше. Благодарю. –

+0

Вы нашли способ экспортировать в dae? Я пытаюсь экспортировать свою двунаправленную модель, но анимации теряются при экспорте из майи при использовании опции с одной матрицей. @PatNiemeyer – hablema

ответ

2

происходит то, что узел с именем joint1 анимирован в анимации joint1-anim. Поэтому, даже если вы переместите joint1 в редактор, то, что вы видите на экране, является результатом после оценки анимации.

При создании промежуточного узла, скажем joint1-parent и сделать joint1 в качестве дочернего узла joint1-parent, то вы будете иметь возможность переводить и вращать joint1-parent свободно и увидеть эффект на joint1.

Что касается того, почему перемещение pSphere ничего не меняет, это та же идея. Подобно тому, как анимация отменяет положение, скелет будет перемещать сетку.