KuDeSnik33 Posted April 14 Share Posted April 14 I want to create ObjectMeshSkinned with single mesh file - with mesh data and animation in it. How can I play the embedded animation in Editor? I was trying to setAnimName() with name of embedded animation - this does not work, name is highlighted with Red as missing file. Is there any solution? Link to comment
KuDeSnik33 Posted April 19 Author Share Posted April 19 Лучше писать по-русски? Здравствуйте, подскажите - пытаюсь воспроизвести в ObjectMeshSkinned анимацию, встроенную в Mesh файл - возможно ли это? Или обязательно нужен отдельный файл? Link to comment
bmyagkov Posted April 19 Share Posted April 19 3 minutes ago, KuDeSnik33 said: Лучше писать по-русски? Здравствуйте, подскажите - пытаюсь воспроизвести в ObjectMeshSkinned анимацию, встроенную в Mesh файл - возможно ли это? Или обязательно нужен отдельный файл? Добрый день! К сожалению, не совсем понятно, в чём заключается проблема. Вы используете редактор или пытаетесь сделать это через наше API? В данный момент при использовании редактора всё работает как задумано. После импорта модели создаётся файл ".anim", который автоматически назначается в поле "Preview Animation" и воспроизводится после нажатия кнопки "Play". Можете, пожалуйста, более точно описать шаги для воспроизведения проблемы или предоставить нам простой семпл, чтобы мы могли повторить проблему у себя? P.S. Вы можете писать так, как вы будет удобно, используя любой язык :) Спасибо! Link to comment
KuDeSnik33 Posted April 19 Author Share Posted April 19 Спасибо за ответ, я делаю плагин для редактора и генерирую Mesh без сохранения в файл. С самим мешем проблем нет, проблема с анимацией, встроенной в него. Потому мой вопрос - есть ли возможность воспроизвести анимацию, встроенную в тот же Mesh файл - хотябы через API, а лучше и в самом редакторе. Link to comment
bmyagkov Posted April 19 Share Posted April 19 20 minutes ago, KuDeSnik33 said: Спасибо за ответ, я делаю плагин для редактора и генерирую Mesh без сохранения в файл. С самим мешем проблем нет, проблема с анимацией, встроенной в него. Потому мой вопрос - есть ли возможность воспроизвести анимацию, встроенную в тот же Mesh файл - хотябы через API, а лучше и в самом редакторе. Как вы добавляете анимацию в меш? Если в меше есть анимация, то при создании ObjectMeshSkinned она сразу будет загружена. Можно проверить через getNumAnimations(). Потом можно взять её id и настроить на нулевой слой. Потом просто play() и должно работать. Если возможно, пришлите сниппет кода, пожалуйста. Спасибо! Link to comment
KuDeSnik33 Posted April 19 Author Share Posted April 19 Этот вариант для своего кода - а в редакторе воспроизвести такую анимацию по кнопке Play возможности нет? Link to comment
bmyagkov Posted April 20 Share Posted April 20 18 hours ago, KuDeSnik33 said: Этот вариант для своего кода - а в редакторе воспроизвести такую анимацию по кнопке Play возможности нет? Такая возможность есть, посмотрите пожалуйста ассет в аттаче - в данном случае ".anim" вшит в ".mesh" и воспроизводится из редактора по кнопке Play как и ожидается. skinned_01.mesh Link to comment
KuDeSnik33 Posted April 20 Author Share Posted April 20 Спасибо, почти всё получилось - единственная проблема, не могу запустить анимацию с нулевой скоростью. auto result = Unigine::ObjectMeshSkinned::create(m_mesh); result->setNumLayers(1); int resultAnimIdx = result->findAnimation("pointRailAnim"); if (resultAnimIdx != -1) { result->setAnimation(0, resultAnimIdx); result->setLayer(0, true, 1.0f); result->setSpeed(0.0f); result->play(); result->setTime(0.0f); } Анимация не воспроизводится после создания - кости в исходной позиции. Если я сделаю повторно int animIdx = skinnedNode->findAnimation("pointRailAnim"); if (animIdx >= 0) { skinnedNode->setAnimation(0, animIdx); skinnedNode->setTime(0.0f); skinnedNode->play(); } То кадр применится Link to comment
bmyagkov Posted April 20 Share Posted April 20 Это корректное поведение для нулевой скорости. Время не меняется, а значит и кадры новые применять в play() не нужно. Т.е. new_time == old_time и ничего не делаем. Все заработает с изменением времени. Иначе бы каждый кадр в пустую вычисляли все трансформации костей и применяли без всяких изменений. Спасибо! Link to comment
Recommended Posts