Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Сегодняшний проект продемонстрирует программу Blender – свободную утилиту с открытым исходным кодом для трехмерного проектирования и XNA. Две замечательные вкусные вещи, которые вкуснее вместе…
Анимация одного скелета в модели Blender 3D с помощью XNA
Есть хорошие примеры, демонстрирующие как сделать анимацию в 3D-пакете и проиграть ее в XNA, но что если эта анимация должна включать более сложные действия, чем стандартные “идти”, “бежать", “прыгать” и т. д.? Что если вы хотите чтобы ваша 3D-модель взаимодействовала со своим 3D-окружением? Хорошо, потом вы захотите анимировать отдельные части вашей 3D-модели, манипулируя ее с помощью кода. Это руководство сделает попытку показать, как разработать простую 3D-модель с помощью Blender, натянуть ее на кости арматуры и наконец как управлять ею в XNA, используя С#.
...
Задачи
Главное, чего я надеюсь достичь с помощью этой статьи, это показать вам как:
- Создать простую сетку в программе Blender (труба)
- Добавить на сетку кожу используя инструмент UV-развертки
- Добавить к сетке арматуру (кости)
- Объяснить сетке как деформироваться, когда двигается арматура (кости)
- Экспортировать сетку, арматуру и кожу в формат, который может использовать XNA
- Импортировать модель в XNA с настраиваемым конвейером контента
- С помощью кода манипулировать сеткой, двигая арматуру
- Шаг 1: Создать цилиндр
- Шаг 2: Добавить кожу используя UV-развертку трубы
- Шаг 3: Поделить цилиндр на две части
- Шаг 4: Создать кости
- Шаг 5: Связать цилиндр с костями
- Шаг 6: Поиграть с демонстрацией костей!
- Шаг 7: Экспортировать в XNA
XNA
Итак, теперь у нас есть модель, которую мы можем использовать в XNA. Чтобы ввести модель в игру необходимо импортировать ее через конвейер контента. Конвейер контента берет наш контент и нормализует его таким образом, чтобы он появился в нашей игре, как стандартный структурированный объект, который можно просто использовать. Я основывал XNA-часть проекта на примерах, предоставленных Microsoft. Образец модели с поверхностью использует существующую модель, у которой есть встроенная анимация (проход), запускаемую кодом. Хотя это здорово, я хочу продемонстрировать, как вы могли бы манипулировать ею, основываясь на ее собственной анимации, а не запускать предопределенную. Кстати если вы используете тот же код, который я демонстрируют с моделью «чувак», вы можете заставить его делать весьма неправдоподобную гимнастику!
Конвейер контента
Пример модели с поверхностью загружает модель 'dude . fdx' с помощью пользовательского конвейера контента. Мы собираемся внести некоторые модификации, так чтобы он не загружал анимации нашей модели “трубы”, потому что у нас их нет. Чтобы сделать это откройте решение Skinned Model, перейдите к проекту SkinnedModelPipelineи удалите методыProcessAnimations (оба) и закомментируйте инициализацию словаря анимации.
Если вам интересно использование XNA c 3D-моделями из пакета наподобие Blender’а, эта статья должна пробить вам дорогу…