Распространенные практики для анимации персонажей на iPhone?

#iphone #animation #opengl-es #3d #2d

#iPhone #Анимация #opengl-es #3D #2d

Вопрос:

Я долгое время разрабатываю на iPhone, но я новичок в разработке игр. В моем новом проекте, который представляет собой нечто среднее между приложением и небольшой «игрой», я должен показать анимацию танцора, основанную на взаимодействии с пользователем. Существует около 5 предопределенных танцевальных последовательностей, созданных художником с помощью Maya или любой другой программы 3D-моделирования.

Я думал о:

  • Экспортируйте танцевальные последовательности в 2D и используйте UIImageView, Core Animation или некоторые движки 2D-игр, такие как cocos2d, для отображения их на экране. Однако, поскольку танцевальные последовательности могут быть длинными (около 10 секунд каждая = > 150 изображений кадра), я боюсь, что для этого потребуется слишком много изображений кадра и слишком много памяти.

  • Используйте 3D: я надеюсь, это будет легче, не так ли? Потому что нам нужно импортировать только скелет и, возможно, ключевые точки анимации, а анимация будет выполняться кодом?. Однако у меня есть только базовые знания в 3D (очень базовый OpenGL и т.д.). Я готов узнать больше, но каковы здесь распространенные практики? Например, в какой формат я должен экспортировать анимацию? Что касается памяти, действительно ли это сильно сэкономит мне по сравнению с 2D-подходом?

Комментарии:

1. Ваша цель — наложение на основной пользовательский интерфейс или отдельное приложение?

2. Приложение содержит другие части (около 60%), которые являются типичными компонентами UIKit. Затем на половине экрана появляется персонаж, который будет выполнять некоторую танцевальную последовательность, основанную на взаимодействии с пользователем, например, касании, встряхивании и т.д…

Ответ №1:

Если ваша анимация статична, вы могли бы отобразить ее в видеофайле из вашего модельера.

Если вы хотите сделать это в 3D, вам, вероятно, следует попробовать сделать это с помощью движка, подобного ogre, как предлагает другой ответ. Сам OpenGL не поддерживает форматы файлов 3D.

Что я однажды сделал, чтобы получить 3D-данные из Blender в один из моих проектов ios без каких-либо дополнительных движков / библиотек, так это экспортировал мою сцену в файл Collada (который является XML) и создал преобразование XSLT, которое преобразует Collada в стандартный OS X plist (также XML). Для преобразования XML вы можете использовать Saxon.

Ответ №2:

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

http://www.ogre3d.org/