Моделирование в MicroModelator и не только.
В этой статье приводятся советы автора MicroModelator по созданию игровых 3д моделей и использованию их в играх.
1) Для кого эта статья.
2) Где делать модели.
3) Работа с текстурами.
4) Анимирование.
1) Для кого эта статья.
Эта статья не для разработчиков игр, рассчитывающих на компьютеры следующего десятилетия, с отрисовкой в "сто тыщ мильонов" полигонов в секунду. Для таких есть более сложные редакторы.
Эта статья для тех, кому нужна предельно лаконичная объектная графика, не топорная, но и не изобилующая сотнями, а то и тысячами ненужных полигонов на модель.
2) Где делать модели.
Ну и где же делать модели, а точнее базовые полигональные сетки моделей?
Конечно, в редакторе 3д моделей. Не буду вас уверять, что MicroModelator самый удобный и производительный редактор. В общем случае это, конечно же, не так. Однако он незаменим в случае создания простых сеток составленных из стандартных примитивов и отдельных граней, с использованием деформации плагинами.
В общем же случае, сложную сетку можно делать комплексно - например, основу смоделировать в 3dMAX, затем перевести в нем все объекты в сетку (если это не было сделано на этапе создания, затем рекомендуется объединить затем все в один объект), если нужно, упростить сетку плагинами 3dMAX и экспортировать модель в .3ds формат, который затем можно открыть в MicroModelator'е. А вот уже в нем произвести доводку модели, убрать лишнее, добавить отдельные элементы.
Также могу посоветовать не гнушаться уже готовыми моделями, их в Сети можно найти огроменное количество и в разном исполнении и главное, лицензионно чистых.
На мой взгляд, самое главное при создании модели - четко представлять ее конечный вид. Лучше всего иметь под рукой хороший эскиз. Конечно, импровизация часто дает хорошие результаты, но лучший вариант - небольшая импровизация во время моделирования по эскизу. В этом случае вы не потеряете много времени и готовый вариант устроит всех (разумеется, если устроил всех эскиз модели).
При проектировании модели в MicroModelator, не забывайте про группы, пользуйтесь ими для объединения точек, пользуйтесь заморозкой, чтобы исключить при выделении захват ненужных точек, пользуйтесь "показыванием сетки модели", чтобы в режиме заливки или текстуры четко представлять сетку модели, пользуйтесь "невыделением задних поверхностей" и "инвертированием выделения", изучите и используйте плагины, пользуйтесь вставкой из файла и всем остальным, что облегчает в MicroModelator жизнь разрабочика моделей.
3) Работа с текстурами.
Вопрос : где для модельки взять хорошую текстурку?
Вариантов ответа несколько:
1) Можно найти прям-таки готовую текстуру на стороне (в той же Сети).
2) Можно деформировать готовую текстуру, получив нечто совершенно другое. Например так (использовался Corel PhotoPaint) :
 |
3) Можно рисовать текстуру простым художественным способом (карандаш, мелки, акварель или гуашь), затем отсканировать ее и довести до ума. Тяжело, но здорово.
4) Можно сделать готовую модель, подобную вашей, в сложном редакторе очень детально, отрендерить ее - вот вам и текстура.
На вид текстуры серьезно влияет модель освещения, применяемая в игре : если применяемая модель освещения очень хорошо работает с объектами - затеняет их, делает блики, использует материал граней, то все текстуру можно делать "просто так" - как одинаково освещенную "шкуру", если же модели отрисовываются достаточно просто, например "плоской" заливкой, то есть смысл придать объемность объекту уже текстурой - особенно хорошо, для текстур, созданных 3) и 4) методами - вы стазу выбираете, где свет, где тень, где блики. Лучший объяснительный пример такого способа - текстуры из Quake2. Вот, например, автомат (хорошо видно, что на текстуре он отрисован в проекции) и человечек с кучей железяк (то же самое):
 |
Также обратите внимание на роль объекта в игре - стоит ли применять для него большие текстуры, если он на экране занимает полпиксела, и наоборот, не стоит ли увеличить разрешение текстур, если объект постоянно мелькает перед глазами.
Для пользователей MicroModelator - применяйте анимированные текстуры, с их помощью можно упростить ветку модели и сделать ее более "живой".
Таже не забывайте про цвет поверхностей - в игре, для объектов на большом удалении можно заменить тестурную отрисовку отрисовкой граней цветом, конечно же сэкономив немало времени для другой работы. Для наилучшего результата после текстурирования модели примените плагин - "Распределить цвета" - и он задаст граням цвета, наиболее подходящие к используемым текстурам.
Как затекстурировать модель? Это уж кому как нравиться. Пользователи MicroModelator могут применять маппер и а затем доводить особо непослушные грани отдельно.
Не забывайте также, что импорт из формата .3ds и других форматов также переносит и текстурные координаты, даже если текстура не обнаружена на диске - она все равно будет создана как пустая текстура - просто загрузите ее файл вручную через окно управления текстурами.
4) Анимирование.
Без анимации ваша модель мертва. Как ее лучше анимировать?
В играх, в основном, используются 2 типа аимаций - скелетные и вертексные.
Для скелетной анимации необходим "скелет" - набор иерархически соединенных точек (костей), которые могут вращаться вокруг своих "родителей" как угодно либо относительно "пивотов" - осей вращения дочерних точек, уникальных для каждой "кости". Последняя схема используется в MicroModelator.
При этом точки, привязанные к кости перемещаются всместе с ней, а анимация задается набором состояний скелета, с интерполяцией между ними во времени (линейно или сплайнами).
Ясно, что скелетная анимация очень удобна и обеспечивает хорошие результаты в играх, особенно, если учесть возможность динамического изменения состояний скелета прямо в процессе игры (например поворот торса, как результат действий игрока). Однако просчет такой анимации в реальном времени - дело отностительно "времязатратное" - рассчитывайте свои силы !
Вертексная анимация работает гораздо быстрее - это просто последовательность наборов новых координат точек и нормалей базовой сетки, подставляемых через промежутки времени. Возможна интерполяция в отрезке времени между состояниями, но чаще всего это не применяется (Q1 & 2 и иже с ними, например).
Понятно, что чаще всего вертексная анимация - порождение скелетной. Так, в MicroModelator есть функция перевода свелетной анимации в вертексную, и далее вы можете отредактировать полученную вертексную анимацию, т.к. MicroModelator поддерживает и их.
Итак, предлагается подготовленную модель анимировать в MicroModelator скелетно и затем, при необходимости перевести в вертексную. У вам не должно возникнуть проблем при создании скелета и привязки точек (для ускорения работы используйте плагин "Создать привязки").
Анимирование механизмов не вызывает сложности, а вот гуманоиды и прочая живность - это задача. Предлагается следующее решение : при анимировании например, бега, параллельно открывается модель бегущего персонажа из Quake2 и на нашей модели мы по кадрам воспроизводим состояние модели, затем производится доводка.
При создании скелетной анимации не забывайте про вращение объекта вокруг кости (вращение при нажатом "контроле" (и "шифте")) - очень мощной функции, копировании кадров, всей анимации, интерполяции между кадрами и всей анимации и проч.
Также посоветую вам почитать статьи по двумерной анимации - в них можно найти весьма полезные сведения по поведению персонажей.