#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, поддерживает скелетную анимацию и пользуется большой поддержкой сообщества.