Экспорт анимации из maya в unity
Перейти к содержимому

Экспорт анимации из maya в unity

  • автор:

Импортирование обьектов из Maya

Unity по-умолчанию умеет импортировать файлы Maya. Для того, чтобы начать, просто разместите ваш .mb или .ma файл в папке Assets вашего Unity проекта. Когда вы переключитесь обратно в Unity, сцена автоматически импортируется и отобразится в окне Project.

Для просмотра вашей модели в Unity, просто перетащите её из окна Project в окно Scene или Hierarchy .

Unity умеет импортировать из Maya:

  1. Все узлы с положением, вращением и масштабом. Центры вращения и имена тоже импортируются.
  2. Меши с вершинными цветами, нормалями и до двух UV развёрток.
  3. Материалы с diffuse цветом и текстурой, множественные материалы для одного меша.
  4. Анимации FK & IK
  5. Анимации, основанные на костях (Bone-based).
  6. Фигуры блендинга (BlendShapes)

Экспортирование Blend Shapes (морфинг) из Maya

  1. Убедитесь, что к экспортируемому мешу применена Blendshape с её целями в надлежащем состоянии
  2. Опционально анимируйте ключевые кадры на узле blendshape, если вам необходимы ключевые кадры анимации Maya
  3. Отметьте animation > Deformations, Skins если требуется, и Morphs в диалоге экспорта FBX

Если вы используете IK для анимации персонажей, вам следует выбрать импортированный .mb файл в окне Project и выбрать Bake IK & Simulation в диалоге Import Settings в инспекторе.

Требования

Чтобы импортировать файлы Maya .mb иb .ma, у вас должна быть установлена Maya на машине, которую вы используете для импорта .mb/.ma файла. Поддерживается Maya 8.0 и новее.

  • Если у вас не установлена Maya, но вы желаете импортировать файл Maya с другой машины, вы можете экспортировать в формат fbx, который Unity умеет импортировать по-умолчанию. Установите последнюю версию FBX Converter для наилучших результатов. Для основных рекомендаций по экспорту, см. Руководство экспорта FBX.
  • После экспорта поместите fbx файл в папку Unity проекта. Unity автоматически импортирует fbx файл. Проверьте настройки импорта FBX в инспекторе, как указано в Руководстве экспорта FBX.

“За кулисами” процесса импорта (для продвинутых пользователей)

Когда Unity импортирует файл Maya, он автоматически запускает Maya в фоне. Затем Unity связывается с Maya для конвертации .mb файла в поддерживаемый формат. Когда вы впервые импортируете файл Maya в Unity, Maya должен запуститься в процессе командной строки, что может занять около 20 секунд, но все последующие Maya файлы будут импортироваться очень быстро.

Решение проблем

  • Старайтесь сохранять сцену простой, попытайтесь работать с файлом, который содержит только те объекты, что вам нужны в Unity.
  • Если ваши меши приводят к проблемам, убедитесь, что вы сконвертировали любые островки (patches), nurbs поверхности и т.д. в полигоны (Modify > Convert + ещё Mesh > Quadragulate/Triangulate). Unity поддерживает только полигоны.
  • В некоторых редких случаях Maya перемешивает историю узлов, что иногда приводит к некорректному экспорту моделей. К счастью, вы довольно легко можете это исправить выбрав Edit->Delete by Type->Non-Deformer History .
  • Unity предпочитает использовать последний формат FBX там где это возможно, так что если у вас возникли какие-то проблемы в импортом некоторых моделей, попробуйте последние версии FBX экспортеров с веб-страницы Autodesk или откатитесь до FBX 2012.
  • Запекание анимации в Maya теперь реализовано через FBX, вместо нативного, что позволяет корректно запекать в FBX формат более сложные анимации. Если вы используете ведомые ключи (driven keys), убедитесь, что на драйверах выставлен хотя бы один ключ, для правильного запекания анимации.

экспорт из maya и blender в Unity

Всем привет. При экспорте модели с анимацией для Unity, fbx, собранный в майке весит на порядок больше, чем он же, «пропущенный» через Blender. Вопрос: с чем это может быть связано, и есть ли какие-то скрытые настройки экспорта из майки, которые помогут уменьшить вес fbx?
Лишних шейдеров нет, все на минималках, но Blender все равно выдает меньший размер

Павел Ангелуш
Активный участник

Привет. Не совсем знаком что внутри *.fbx формата но может он хранит в себе историю майскую или деформаторы там. А через блендер этого нет. И еще может версия *.fbx в разных прогах разная.

М Ник (Mars)
Активный участник

Помогите советом. При экспорте анимации из Maya в формате FBX и импорте ее в Unity анимация работает не корректно. Такое ощущение, что не все ключи экспортируются. Но те же анимации хорошо проигрываются в Unreal и Marmoset. Я выбираю весь скелет, запекаю анимацию и экспортирую, пробовал при экспорте выбирать bake animation и все равно не помогает. В частности челюсть пролетает через губы. Как заставить майю экспортировать все ключи, или может есть другие решение?

How to import Maya animations into Unity

So as anyone who has been following me know I recently finished my Senior Thesis project for the Interactive Multimedia program at The College of New Jersey. A lot of my project involved modelling weapons and animating them in Maya and then transferring them to Unity. The whole process was rather tedious when it had to be done for about a dozen weapons, but overall it is not too difficult.

This blog post is essentially here to inform the reader on how to import your model and its animation into Unity. As a bonus, I will even show you how to trigger the animation with a simple left button mouse click.

For this animation we will be rotating the Axe across the Z axis to show that it is being swung downwards. We will start by setting the Axe’s position on the Z axis where it is right now so that it will begin at that position when the animation begins. At the bottom of Maya, you will see the Time Slider which is where the animations will be recorded along frames.

If you do not see the Time Slider, go to Windows > UI Elements > and check Time Slider.

Before starting, make sure that the animation begins at Frame 1 by simply clicking on Frame 1 on the Time Slider. Afterwards, select the model and right -click on the “Rotate Z” key. Click on “Key Selected” at the top of the list and it will record the Axe’s rotational position at frame 0.

So I will start by adding a simple animation of the axe being swung down into the ground. I want the axe to be animated fairly quickly so I will have it rotate downward at Frame 10. Click on Frame 10 on the TimeSlider and then select the axe. Change the manipulator to the Rotate tool by clicking on the square with the semi-circle. You can also press the “E” key to select the Rotate tool. Tilt the axe along the Z axis, which is the blue line, and then right-click on the Rotate Z and click Key Selected once again.

A faster way to perform the “Key Selected” action is to just press the S key and that will save your keypress for you.

As you can see here, the sphere in the center does not rotate properly along with the rest of the model. This is because the model isn’t entirely one model, but separate polygons that are positioned together. Each polygon then moves across their own pivot point. It is better to not combine or group the model as that will mess with the animation within Unity.

A way to get around this is to go to Mesh > Combine > Edit > Delete by Type > History > Mesh > Separate > click on the grouped object in the Outliner > Edit > Ungroup.

Doing this will pseudo combine the object, but leave it as separate. This will allow you to translate, rotate, and scale the object as one object so long as all the polygons are selected.

Now that we have our animation it is time to export it to Unity. You will need to save the model as an fbx file so that Unity will recognize it. If your Maya is not already capable of exporting an object as an fbx you will need to enable the plugin. Simply go to Windows > Settings/Preferences > Plug-In Manager. Type fbx in the search bar and check loaded and autoloaded for both GameFbxExporter and fbxmaya. Then select the entire model and click the options box next to Export Selections. Change the file type to fbx and export.

Now it is time to shift over to Unity for the remainder of the tutorial. Open up Unity and create a new project. I will be using a scene I already made which also features a terrain and first person controller.

Right-click in the Project folder and click “Import New Asset.” Find the fbx file that you exported and import it into Unity. Drag the fbx file into the scene or the hierarchy. If the model is too small, then scale it up by pressing the “R” key to activate the scale tool in Unity.

Make sure the model is within sight of the Main Camera on your Unity file. To double check this, click on “Main Camera” in the hierarchy and you will be able to see what the camera sees in “Camera Preview”

Click on the fbx file in the project folder and click on the Animation tab. Change the “Take001” file to whatever you would like to call it and then apply the change.

Now that you have the clip named you will want to create an Animator Controller. So right-click in the project folder again and create an Animator Controller. Name the controller whatever you would like and then attach it to the model. You can attach it by clicking on the model and dragging the controller into the Animator Component. Double click the controller to open the animator controller tab and then open up the model’s fbx and drag the same clip into the controller.

If you did everything correctly then the model should play on its own as you press play to start the game.

Earlier I mentioned that you would not want your model to be combined or grouped in Maya before you transferred over. This is because of a strange bug in Unity where it will play the animation of the combined model at the 0, 0, 0 coordinates on your map. Leaving the object pseudo grouped will prevent this from happening and you will be able to animate the object anywhere on the scene that you would like.

So now we know how to get the model to play on its own with no interruption. However, most developers would want the animation to play when they want it to play. In this case, I will show you how to have the animation play with the press of any keyboard button.

So go back into the animator controller tab and right-click on an empty space and create an Empty State. Right-click on the empty state to then make it a Default State. Right-click on the animation state and make a transition back towards the empty state. Doing this will tell the animation to revert back to its original state when the animation is finished.

Now that we have that the last thing to do is to code the animation to work on the key press. Right-click in the Project folder and create a “C# script.” Write down what I have in the image below into your C# script. Do not copy my Public Class “Swinging” as yours will be whatever your C# script is named.

It is a simple code that declares the variable “AxeAnim” for your script. The variable then calls the Animator component to be used. Finally in the Void Update, whenever the “C” button is pressed it will play the clip that is named “cocytus” in my case but will be named whatever you named it earlier.

We are just about done! The last thing you want to do is attach the script to the model. Simply drag the C# script onto the model and it will be clipped onto it just like that. Afterwards, drag the animator component in the Inspector into the “Axe Anim” field. That field is looking for an Animation to be played after being called and the clip within the Animator Component is exactly that.

Now just simply press Play, press the button you assigned, and it should work!

I hope this tutorial was very helpful for you. This entire process was the backbone of my Senior Thesis as I had to create different animations for over a dozen different weapons. There are many different uses that you can pull off with this technique so I hope that you will be able to make use of this. Of course feel free to send me questions if there are any parts that were confusing to you.

Thank you once again for reading and have a wonderful day!

Animation from External Sources

Animation from external sources is imported into Unity in the same way as regular 3D files. These files, whether they’re generic FBX files or native formats from 3D software such as Maya, Cinema 4D, 3D Studio Max, can contain animation data in the form of a linear recording of the movements of objects within the file.

In some situations the object to be animated (eg, a character) and the animations to go with it can be present in the same file. In other cases, the animations may exist in a separate file to the model to be animated.

It may be that animations are specific to a particular model, and cannot be re-used on other models. For example, a giant octopus end-boss in your game might have a unique arrangement of limbs and bones, and its own set of animations.

In other situations, it may be that you have a library of animations which are to be used on various different models in your scene. For example, a number of different humanoid characters might all use the same walk and run animations. In these situations, it’s common to have a simple placeholder model in your animation files for the purposes of previewing them. Alternatively, it is possible to use animation files even if they have no geometry at all, just the animation data.

When importing multiple animations, the animations can each exist as separate files within your project folder, or you can extract multiple animation clips from a single FBX file if exported as takes from Motion builder or with a plugin / script for Maya, Max or other 3D packages. You might want to do this if your file contains multiple separate animations arranged on a single timeline. For example, a long motion captured timeline might contain the animation for a few different jump motions, and you may want to cut out certain sections of this to use as individual clips and discard the rest. Unity provides animation cutting tools to achieve this when you import all animations in one timeline by allowing you to select the frame range for each clip.

Импорт анимаций

Перед тем как модель персонажа может быть использована, вы должны импортировать ее в ваш проект. Юнити может импортировать родные файлы Maya (.mb или .ma) и Cinema 4D (.c4d) файлы, а также FBX файлы, которые могут быть экспортированы из большинства пакетов анимации. Смотрите эту страницу для получения дополнительной информации. Для импорта анимации просто перетащите, просто перетащите файл модели в папку Assets вашего проекта. Когда вы выберете файл в окне проекта ( Project View ), вы сможете редактировать установки импорта ( Import Settings )в инспекторе:-

Диалог установок импорта для меша

Смотрите страницу FBX importer для полного описания доступных опций импорта.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *