Подготовка иллюстрации
После того как вы настроите формы перехода в приложении для 3D-моделирования (например, Autodesk® Maya®):
- В приложении для 3D-моделирования включите следующие параметры экспорта:
- Включить экспорт анимации.
- Включить экспорт плавных форм для деформированных моделей.
- Экспортируйте свой выбор в файл .fbx.
- Импортируйте файл FBX в Unity.
- Выберите только что импортированную модель в окне "Иерархия". ИнспекторОкно Unity, в котором отображается информация о текущем выбранном игровом объекте, активе или настройках проекта, что позволяет просматривать и редактировать значения . Дополнительная информация
См. в окне Словарь отображается раздел BlendShapes, содержащий все формы перехода под компонентом SkinnedMeshRenderer. - Для каждой из перечисленных фигур перехода можно изменить ее влияние (вес) на форму по умолчанию, где:
-
0
означает, что форма перехода не имеет значения. -
100
означает, что форма перехода имеет полное влияние.
Создание анимации в Unity
Чтобы создать смешанную анимацию:
- Откройте окно анимации (в главном меню Unity: Окно > Анимация > Анимация).
- В левой части окна нажмите Добавить кривую и добавьте форму перехода. В окне инспектора отображается новая форма перехода в разделе BlendShapes под компонентом SkinnedMeshRenderer.
Создайте нужную анимацию, настроив ключевые кадрыКадр, отмечающий начальную или конечную точку перехода в анимации. . Кадры между ключевыми кадрами называются промежуточными.
Смотрите в Словарь и смешивайте веса.
Для предварительного просмотра анимации нажмите Воспроизвести в окне редактора или окне анимации.
Доступ к сценариям
Вы также можете установить веса смешивания с помощью сценариев, используя такие функции, как GetBlendShapeWeight и SetBlendShapeWeight.
Чтобы проверить, сколько форм перехода используется в Meshосновном графическом примитиве Unity. Меши составляют большую часть ваших 3D-миров. Unity поддерживает триангулированные или четырехугольные полигональные сетки. Поверхности Nurbs, Nurms, Subdiv должны быть преобразованы в полигоны. Подробнее
См. в разделе Словарь, используйте blendShapeCount переменная.
В этом примере кода показано, как с течением времени смешивать форму по умолчанию с двумя другими формами смешивания при прикреплении к GameObjectосновной объект в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь с тремя или более формами перехода:
using UnityEngine;
using System.Collections;
public class BlendShapeExample : MonoBehaviour
{
int blendShapeCount;
SkinnedMeshRenderer skinnedMeshRenderer;
Mesh skinnedMesh;
float blendOne = 0f;
float blendTwo = 0f;
float blendSpeed = 1f;
bool blendOneFinished = false;
void Awake ()
{
skinnedMeshRenderer = GetComponent ();
skinnedMesh = GetComponent ().sharedMesh;
}
void Start ()
{
blendShapeCount = skinnedMesh.blendShapeCount;
}
void Update ()
{
if (blendShapeCount > 2) {
if (blendOne < 100f) {
skinnedMeshRenderer.SetBlendShapeWeight (0, blendOne);
blendOne += blendSpeed;
} else {
blendOneFinished = true;
}
if (blendOneFinished == true && blendTwo < 100f) {
skinnedMeshRenderer.SetBlendShapeWeight (1, blendTwo);
blendTwo += blendSpeed;
}
}
}
}