Добавление вторичного движения с помощью слоев
После загрузки Deathanim.bip в объект Biped в файле появился отрезок, который сохранен после редактирования в Motion Flow Editor. Откройте окно Track View и перетащите все ключевые кадры так, чтобы анимация начиналась в кадре 0 (рис. 8.56).
Рис. 8.55. Теперь персонаж смотрит в нужную сторону, он готов правильно умереть
Рис. 8.56. Чтобы сохранить анимацию при использовании Motion Flow Editor, требуется немного сместить ключи
Измените параметры в окне Time Configuration: в поле End Time введите значение 100, а затем с помощью кнопки Create Layer из свитка Layers добавьте слой. Включите кнопку Auto Key, выделите все объекты Biped Spine и примените к ним команду Set Key в кадрах 0, 10 и 54. Это анимация смерти, значит, нужно подчеркнуть, что удар смертелен, каким бы способом он ни был нанесен. Перейдите в кадр 5 и поверните выделенные объекты Spine на 8° относительно оси Z. Так толчок от удара будет заметнее (рис. 8.57).
Рис. 8.57. Поверните туловище назад, чтобы подчеркнуть движение, вызванное ударом
Поскольку ключевые кадры определены в кадрах 0 и 10, то анимация в них останется той же самой, так как изменение происходит в кадрах 1-9. Если перетащить ползунок в разные позиции анимации на шкале времени, то в точке, где Biped ударяется об землю, можно заметить, что левая рука актера выброшена вниз, чтобы предотвратить падение. Такого рода недостатки объясняют, почему для захвата данных важно найти талантливого актера. Во время сессии захвата движения режиссер должен был заметить, что персонаж движется не совсем верно, и исправить исполнение. Однако эту проблему легко решить. Перейдите в кадр 50 и поверните объекты Spine примерно на -10° относительно оси X в противоположном падению направлении (рис. 8.58).
Рис. 8.58. Поверните объекты Spine, чтобы уменьшить эффект реакции на падение
Теперь выделите объект Head и примените команду Set Key в кадрах 0, 10, 30 и 50. Затем перейдите в кадр 5 и поверните голову на 50° относительно оси Z так, чтобы она наклонилась вперед под воздействием удара. Затем перейдите в кадр 20 и поверните голову вперед на 40°, чтобы казалось, что персонаж смотрит на атакующего в замешательстве. В кадре 45 поверните голову примерно на 35°, чтобы при падении персонажа назад на время задержать голову, тогда соприкосновение с землей несколькими кадрами позже будет еще более заметным (рис. 8.59).
После того как туловище и голова настроены, нужно исправить движение левой руки: она не должна двигаться назад, чтобы смягчить падение. Выделите объект Bip01 L Upper Arm и примените к нему команду Set Key в кадрах 0 и 55. Перейдите в кадр 45 и поверните левую руку на -120° относительно оси Z, а затем в кадре 50 поверните ее на -35° также относительно оси Z (рис. 8.60).
Рис. 8.59. Дополнительное движение головы подчеркивает результат удара и сам удар о землю
Рис. 8.60. Поверните руку, чтобы падение было более неожиданным
Наконец исправьте правую ногу: она не должна твердо стоять на поверхности земли в конце падения, иначе падение будет выглядеть неестественным. Выделите звено Bip01 R Calf и примените команду Set Key в кадрах 35 и 65. Перейдите в кадр 50 и поворачивайте икру и ступню, пока они не будут указывать наружу и вверх, как будто нога выброшена при падении назад (рис. 8.61).
Рис. 8.61. Если выпрямить ногу, придать ей пинающее движение, то падение будет выглядеть лучше
Такие незначительные изменения подчеркивают падение, делают его более убедительным. Они устраняют недостатки исполнения, а падение становится более реалистичным. Теперь нужно настроить скорость падения (и его направление) вблизи земли, чтобы падение было более динамичным. Воспроизведите анимацию и посмотрите, как она выглядит. Сравните изменения, внесенные в исходную анимацию, щелкнув по кнопке Previous Layer (Предыдущий слой) и просмотрев неотредактированную версию (рис. 8.62).
Рис. 8.62. Щелкнув по кнопке Previous Layer, просмотрите изменения, внесенные с помощью последнего слоя
Чтобы вернуться на слой анимации, щелкните по кнопке Next Layer (Следующий слой) с изображением стрелки, указывающей вверх, и сверните слой. Сохраните файл как Deathanim2.bip и переходите к последнему шагу преобразования имеющихся данных захвата движения в эффектную анимацию смерти.
Файлы захвата движения
В 3ds max и character studio можно работать с тремя различными форматами файлов захвата движения: BIP, CSM и BVH. Файлы BIP - это собственно файлы движения Biped, a CSM и BVH - это файлы необработанных данных, состоящие из ASCII-символов, представляющих собой обычные выходные данные, которые были получены в результате захвата движения. Аниматоры на самом деле работают только с законченными файлами BIP, которые были «вычищены» в студии, осуществлявшей захват или продающей данные в библиотеках. В character studio есть возможность подгонять данные захвата движения под персонажей, однако в компаниях, специализирующихся на предоставлении захвата движения, оборудование для настройки данных лучше. Но все же полезно иметь представление о форматах CSM и BVH, потому что в character studio есть возможность преобразовывать эти типы файлов в обычный формат BIP.
Формат BVH
Формат файлов BVH также основывается на системах оптического захвата движения. Первоначально он был разработан компанией по захвату движения Bio Vision как способ обеспечения своих клиентов данными захвата движения. Название BVH обозначает данные Bio Vision Hierarchical. Этот формат в основном заменил более ранний, разработанный компанией формат BVA, в котором не было возможности предоставления информации об иерархии каркаса в добавление к данным о движении. Формат BVH - отличный многогранный формат, но его недостаток заключается в отсутствии полного описания основной позы. Этот формат до сих пор используется, но популярным форматом файла захвата движения уже не является.
Формат CSM
Формат CSM используется для импорта данных датчиков положения, которые получены от оптических систем захвата движения, в объект Biped. Аббревиатура CSM означает Character Studio Motion Capture file (Файл захвата движения character studio). В формате CSM есть некоторые ограничения - в нем должны использоваться имена, соответствующие ограничениям character studio, иначе он будет несовместим с этим приложением. В нем также должно быть подходящее число датчиков, которые располагаются на теле актера в определенных местах (хотя в character studio 3 и 4 в настоящий момент разрешается использовать несколько дополнительных датчиков). Формат CSM сам по себе способен переносить любой тип данных, полученных от датчиков, но предполагается, что он придерживается конфигурации имен и датчиков, требуемой character studio.
ИСПОЛЬЗОВАНИЕ ЗАХВАТА ДВИЖЕНИЯ
ИСПОЛЬЗОВАНИЕ ЗАХВАТА ДВИЖЕНИЯ
Файлы захвата движения
Формат CSM
Формат BVH
Преобразование CSM- и BVH-файлов
Использование сокращения ключей
Выбор формата файлов захвата движения
Плохая анимация бега
Хорошая анимация бега
Создание циклического бега
Определение длины цикла
Извлечение лучшего отрезка цикла
Сравнение отрезков цикла
Удвоение цикла
Уточнение цикла с использованием слоев
Создание анимации смерти
Использование редактора Motion Flow Editor для поворота Biped Добавление вторичного движения с помощью слоев
Удаление кадров для усиления эффекта соударения
Изменение назначения файла захвата движения
Копирование позы
Загрузка анимации получения удара
Команда Paste Pose/Posture/Track
Перемещение объекта COM
Создание движения стрельбы
Отработка эффекта отдачи
Выравнивание правой ступни перемещением объекта СОМ Настройка верхней части тела
Внесение изменений с помощью функции Set Multiple Keys
Резюме
Хорошая анимация бега
Загрузите в объект Biped файл Goodrun.bip.
Подвигайте ползунок шкалы времени из стороны в сторону и просмотрите анимацию. Даже не указывая на какие-либо конкретные кадры, ясно, что данные достаточно хорошие и явно содержат цикл. Наклон туловища во время движения практически не изменяется, значит, скорость бега постоянна (рис. 8.17).
Рис. 8.17. Данные, захваченные в середине движения, — пример хорошего бега
В подходящей позе нет очевидных наклонов туловища назад или вперед при замедлении или ускорении. Эти данные также длиннее предыдущего файла - они занимают 45 кадров. Этого достаточно, чтобы получить два полных цикла бега.
Использование редактора Motion Flow Editor для поворота Biped
Создайте новый объект Biped или воспользуйтесь тем, который применялся в анимации бега. Загрузите сохраненный ранее, после преобразования из файла формата CSM, файл Shotdrop.bip.
Если по какой-то причине у вас нет этого файла, загрузите в окно Motion Capture Conversion Parameters исходный файл Shotdrop.csm с компакт-диска и преобразуйте его. Загрузив файл, активизируйте окно проекции Front (рис. 8.46).
Рис. 8.46. Очевидно, что персонаж должен смотреть не туда
Правила, предписывающего совершать захват движения при какой-либо особой ориентации - спереди, сзади или сбоку, - не существует. Захват может производиться в позиции под любым углом, слева, справа или с противоположного направления. Что касается именно этих данных, то они были захвачены с неверной ориентацией. Один из способов повернуть объект Biped целиком - применить слой с соответствующей настройкой и повернуть объект СОМ так, чтобы персонаж смотрел вперед. Однако с помощью режима Motion Flow (Поток движения) это сделать гораздо удобнее.
Выделите объект Biped, откройте свиток Biped и щелкните по кнопке Motion Flow Mode (Режим потока движения) - на ней изображена кривая в форме буквы Z, - которая находится справа от кнопки Footstep Mode (Режим следа) - рис. 8.47.
Рис. 8.47 С помощью редактора Motion Flow Editor можно быстро трансформировать данные
Когда вы щелкаете по кнопке Motion Flow Mode - ничего не происходит, поскольку сначала нужно открыть файлы в редакторе с помощью окна Motion Flow Graph (Граф потока движения) и сценария Motion Flow Script (Сценарий потока движения). Представьте себе, что Motion Flow Editor (Редактор потока движений) - это отдельная программа внутри character studio. В ней можно объединять файлы в формате BIP и изменять их, создавая более длинные (или просто другие) анимации. Чтобы воспользоваться программой Motion Flow Editor, сначала нужно щелкнуть в свитке Motion Flow по кнопке Show Graph (Показать граф) - рис. 8.48.
Рис. 8.48. Чтобы воспользоваться редактором Motion Flow Editor, сначала нужно щелкнуть по кнопке Show Graph
Появится окно Motion Flow Graph. Активизируйте кнопку Create Clip (Создать отрезок) и, когда курсор примет форму причудливой стрелки, щелкните где-нибудь внутри окна (рис. 8.49).
Рис. 8.49. Именно в окне Motion Flow Graph и создаются отрезки движений
Поместив отрезок clip1 в окно Motion Flow Graph, в свитке Motion Flow Script в разделе Scripts (Сценарии) щелкните по кнопке Define Script (Определить сценарий) - рис. 8.50.
Щелкнув по кнопке Define Script, укажите, какие отрезки вводить в список отрезков, которые определены сценарием. Щелкните один раз по созданному в окне Motion Flow Graph отрезку clip1. Он станет красным -так обозначается, что отрезок был добавлен в сценарий script 1, а в самом сценарии теперь есть введенные данные (рис. 8.51).
Теперь дважды щелкните правой кнопкой мыши по красному отрезку clip1; появится диалоговое окно clip1, и в нем можно будет загрузить файл формата BIP. Заметьте, что кнопка Define Script стала недоступной. Это произошло, так как вы указали, что определение сценария закончено (рис. 8.52).
Щелкните по кнопке Browse (Обзор) и выберите файл Shotdrop.csm. Нажмите кнопку ОК и закройте окно Motion Flow Graph.
Загрузка файла в редактор Motion Flow Editor не оказывает какого-либо влияния на текущую анимацию, используемую в Biped. Если выключить режим Motion Flow, все параметры и файлы остаются неизменными до возврата в этот режим, даже если сохранить сцену 3ds max и выйти из программы. При следующей загрузке файла вы обнаружите, что данные в Motion Flow Editor никуда не исчезли.
Рис. 8.50. С помощью кнопки Define Script можно установить связь между отрезками движений
Рис. 8.51. Если щелкнуть по отрезку clip 7 в окне Motion Flow Graph, то он появится в списке в свитке Motion Flow Script
Рис. 8.52. Чтобы загрузить файл формата BIP в отрезок движения, щелкните по нему правой кнопкой мыши
Теперь нужно сделать то, ради чего все это затевалось, а именно изменить ориентацию данных, чтобы персонаж смотрел вперед. Откройте раздел Script в свитке Motion Flow и введите значение 200 в поле Start Rotation (Начальный поворот) - рис. 8.53.
Ориентация изменится только по оси Z. Теперь персонаж смотрит вперед. Перетащите ползунок шкалы времени и убедитесь, что переориентация проведена правильно, а затем сохраните измененный файл формата BIP, воспользовавшись опцией Save Segment. Чтобы изменить начальный и конечный кадры, в окне Save As щелкните по кнопке Active Time Segment. Затем, так как нас интересует только та часть анимации, в которой персонаж падает, введите в поле Start Frame значение ПО. Назовите новую анимацию Deathanim.bip (рис. 8.54).
Рис. 8.53. Если ввести в поле Start Rotation значение 200, то персонаж повернется на 200° относительно оси Z
Рис. 8.54. Анимацию, созданную с использованием редактора Motion Flow Editor, можно сохранить с помощью опции Save Segment только как отдельный файл в формате BIP
Выйдите из режима Motion Flow, еще раз щелкнув по кнопке Motion Flow Mode, и загрузите в объект Biped обновленный файл Shotdrop.bip, щелкнув в свитке Biped по кнопке Load File (рис. 8.55).
Использование редактора Motion Flow Editor целесообразно по многим причинам, и функциональности у него гораздо больше, чем описано здесь. В следующей главе об этом будет рассказано подробнее, но сначала нужно научиться объединять ряд анимаций для создания набора анимаций. На данном же этапе достаточно знать, как использовать редактор Motion Flow Editor для выполнения простых изменений ориентации.
Использование сокращения ключей
Одна из самых полезных функций в окне Motion Capture Conversion Parameters - предоставляемая возможность сокращения числа ключевых кадров анимации при импорте файла захвата движения. Так как у файлов захвата движения обычно есть столбец ключевых кадров для каждого трека анимации в каждом кадре, то фильтрация данных с целью сокращения ключевых кадров упрощает процесс редактирования анимации при подгонке ее к своему персонажу. Однако обычно есть смысл хранить как образец исходного качества по крайней мере одну версию файла захвата движения, в которой присутствуют все ключевые кадры в первоначальном состоянии.
Рис. 8.4. При загрузке файла в формате BVH или CSM конфигурация Biped значительно изменяется
Не отменяя выделения объекта Biped, щелкните еще раз по кнопке Load Motion Capture File и на этот раз загрузите файл формата CSM с именем Shotdrop.csm (рис. 8.5).
В окне Motion Capture Conversion Parameters оставьте все параметры без изменений. Когда файл будет преобразован и помещен в сцену для анимации объекта Biped, сохраните его как файл в формате BIP, щелкнув по кнопке Save File в свитке Biped (рис. 8.6).
Рис. 8.5. Чтобы преобразовать файл формата CSM, нужно выбрать этот тип файла в списке и загрузить файл
Рис. 8.6 Сначала сохраните файлы захвата движения в форматах BVH и CSM как BIP-файл без сокращения ключей
Сохраните файл как Shotdrop.bip и щелкните еще раз по кнопке Load Motion Capture File. Выберите в качестве типа файлов пункт Biped Files и загрузите только что сохраненный файл (рис. 8.7).
Рис. 8.7. На этот раз в окно Motion Capture Conversion Parameters загрузите файл формата BIP
Заметьте, что в нижней части окна Open есть две опции. При загрузке файла BIP, как в этом примере, есть дополнительный выбор: реструктуризировать объект Biped, в который будут загружаться данные, или нет. Это одно из преимуществ сохранения файлов типа BVH и CSM как BIP, и проведение всех настроек осуществляется уже с файлом В IP. Но в этом случае обратиться к данным датчиков в кадре 0 будет невозможно.
Когда появится окно Motion Capture Conversion Parameters, в выпадающем списке Conversion выберите пункт Use Key Reduction (Использовать сокращение ключей) - рис. 8.8.
Нажмите кнопку ОК, то же самое движение теперь оптимизировано и имеет меньше ключевых кадров. В character studio можно легко увидеть разницу между сокращенными ключевыми кадрами, так как начальные, не сокращенные, данные хранятся в буфере захвата движения. Чтобы оценить результат сокращения, сначала откройте в свитке Biped раздел Display и в выпадающем графическом меню выберите вторую кнопку Bones - рис. 8.9.
Рис. 8.8. Чтобы сократить число ключевых кадров в данных захвата движения, выберите пункт Use Key Reduction
Рис. 8.9. Если просматривать только кости объекта Biped, то разницу между сокращенным и не сокращенным числом ключевых кадров проще увидеть
Наконец, чтобы увидеть исходные данные захвата движения со всеми ключевыми кадрами на своих местах, активизируйте кнопку Show Buffer (Показать буфер), щелкнув по ней (рис. 8.10).
Подвигайте ползунок шкалы времени из стороны в сторону, чтобы увидеть разницу между совершенно красной фигурой и фигурой обычной окраски. Разница между ними очень мала - кроме тех моментов, когда движение более резкое при ударе Biped о землю (рис. 8.11).
Чтобы посмотреть на результат еще более значительного сокращения, можно увеличить значение допусков (tolerance) в разделе Key Reduction Settings (Установки сокращения ключей). Вместо того чтобы снова загружать файл захвата движения с помощью кнопки Load Motion Capture File, щелкните по кнопке Convert from Buffer (Преобразовать из буфера) и тем самым снова вызовите окно Motion Capture Conversion Parameters (рис. 8.12).
Рис. 8.10 С помощью кнопки Show Buffer можно просмотреть исходные данные захвата движения до сокращения числа ключевых кадров
Рис. 8.11. В нескольких местах, например в кадре 164, движения немного отличаются друг от друга
Рис. 8.12 Кнопка Convert from Buffer - еще один способ вызова окна Motion Capture Conversion Parameters
Когда появится окно преобразования, увеличьте значения в полях группы Tolerance (Допуск) до 10 для всех треков, кроме Body Horizontal, Body Vertical и Body Rotation. Их значения в полях группы Tolerance оставьте без изменений, равными 1. Измените значения в полях группы Minimum Key Spacing (Минимальное расстояние между ключами) на 6 для всех треков, кроме указанных трех, оставив значения 3, 4 и 3 соответственно (рис. 8.13).
Если у большинства треков одинаковые параметры допуска и промежутка между соседними ключами, то, чтобы изменить одно или оба значения в полях групп Tolerance и Minimum Key Spacing для всех треков сразу, воспользуйтесь строкой Set All (Установить все), которая находится в верхней части раздела Key Reduction Settings. Затем настройте отдельные параметры, которые должны отличаться от других.
Нажмите кнопку OK - и разница, производимая большими значениями, станет очевидна. Значение Tolerance определяет максимальное число единиц (или градусов), на которое может отклоняться трек положения или поворота от своего истинного положения. Как только character studio посчитает реальное значение Tolerance для конкретного трека, число ключевых кадров уменьшится далее с учетом ограничивающего параметра Minimum Key Spacing. Этим значением обычно устанавливается нижняя граница промежутка между соседними ключевыми кадрами, но даже после сокращения промежуток может быть меньше этого значения в зависимости от параметра Tolerance.
Рис. 8.13. При увеличении значений в полях групп Tolerance и Minimum Key Spacing число ключевых кадров уменьшается более значительно
В большинстве случаев уменьшать число ключевых кадров не нужно. Если необходимо настроить данные захвата движения, лучше всего использовать слои. Однако одним из преимуществ сокращения количества ключевых кадров анимации является устранение любого дрожания изображения, которое иногда появляется, если ключевой кадр определен в каждом кадре каждого трека.
Изменение назначения файла захвата движения
Очень часто данные захвата движения используются совершенно не в тех целей, для которых они предназначались. Объединив даже самые неожиданные данные с анимацией, созданной вручную с помощью ключевых кадров, можно получить нечто полезное и интересное. Чтобы проиллюстрировать такое изменение назначения данных захвата движения, мы определим для Betty особую анимацию стрельбы из самого мощного ее оружия - рельсовой пушки (railgun). Чтобы подчеркнуть для зрителя, какую опасность представляет собой этот вид оружия, при стрельбе из него Betty должна испытать сильную отдачу и затем восстановить позу. Чтобы получить движение такого типа, воспользуемся анимацией персонажа, которому наносят удар, а также применим ручное кадрирование.
Рис. 8.64. Выделите и удалите ключи рядом с точкой удара о землю, чтобы усилить эффект
Рис. 8.65. бы почти слышите, как персонаж ударяется о пол
Загрузите файл Betty13.max (рис. 8.66).
Рис. 8.66. Betty вернулась, она опять готова кого-нибудь подстрелить
Извлечение лучшего отрезка цикла
Теперь, когда продолжительность цикла известна, нужно решить, из какой части анимации его выделить. Лучше всего выбирать удобный цикл из середины файла захвата движения, однако это верно, только если данные имеют полный диапазон движения. При использовании данных, которые захватили не вы или которые изменил кто-то другой до вас, лучше всего просто проверить движение, воспользовавшись в качестве ориентира известной длиной цикла. Например, если кадры 0-26 - завершенный цикл, то и кадры 5-31 тоже можно использовать в качестве цикла. Кадры 19-45 - последний отрезок, который можно применить, так как цикл должен целиком лежать внутри исходной анимации.
Рис. 8.22. Ближайшее совпадение с начальной позой - в кадре 26
Рис. 8.23. В поле Current Frame отображается номер текущего кадра, а если в это поле ввести какое-либо число, то анимация перейдет к кадру с введенным номером
Определить, какой отрезок анимации лучше для создания цикла, можно двумя способами: найти ближайшие позы начала и конца цикла или применить различные диапазоны анимации и воспроизвести варианты цикла. Чтобы найти наиболее похожие позы в начальной и конечной точках цикла, воспользуйтесь полем Current Frame (Текущий кадр), которое находится под кнопкой Time Configuration. Удалите сгруппированные копии звеньев Biped, убедитесь, что вы все еще находитесь в окне проекции Left и что активен режим сглаженного или граненого (faceted) затенения. Щелкните дважды по отображаемому числу или кадру, введите значение 36 и нажмите клавишу Enter (рис. 8.23).
Поле Current Frame становится выделенным (синим), когда в него вводится значение, - можно, не снимая пальцы с клавиатуры, вводить номера кадров. Чтобы найти точки цикла с наилучшим совпадением, просто вводите номера кадров, промежуток между которыми равен 26 кадрам, и сравнивайте позы. Если активен кадр 36, введите число 10, снова нажмите клавишу Enter - и текущим станет кадр 10, а поза изменится. Понимаете, как это работает? Теперь пройдитесь по анимации, начав с кадра 0, и вводите наборы номеров, которые представляют возможные крайние точки цикла: 0 и 26, 1 и 27, 2 и 28 и т.д.
С помощью этого метода можно выяснить, что лучше всего совпадают кадры 0 и 26 (А) и 11 и 38 (В), - рис. 8.24.
Рис. 8.24. Кадры 0 и 26, 11 и 38 - наиболее близкие
Почему кадр 38, а не 37? Иногда человеческое тело не вписывается в удобное число кадров. Иногда актер бежит не с постоянным темпом. Кадры 0 и 26 совпадают достаточно хорошо, но после кадра 26 актер немного замедлил бег. Даже незначительное замедление скорости добавляет в цикл еще один кадр. Поэтому первые возможные крайние точки цикла находятся на расстоянии 26 кадров, а следующие - на расстоянии 27 кадров.
Чтобы проверить пригодность двух этих точек цикла, воспользуйтесь возможностью сохранения сегмента в окне сохранения файлов типа .bip и изолируйте в отдельные файлы два отрезка цикла. Так будет проще увидеть, какой цикл наилучший. Щелкните по кнопке Save File1 в свитке Biped (рис. 8.25).
Рис. 8.25 Чтобы изолировать потенциальные циклы - так будет проще их проверить, - воспользуйтесь кнопкой Save File
Убедитесь, что началом отрезка анимации является кадр 0, а концом -26; сохраните отрезок как файл Looptestl.bip (рис. 8.26).
Рис. 8.26. Опция Save Segment at Current Position and Rotation позволяет определить только ту часть анимации, которая нужна
В диалоговом окне Save As (Сохранить как) есть опция сохранения ключа для каждого трека каждого кадра анимации. Это хорошая опция, с помощью которой можно добавить ключи в более длинные анимации, когда это необходимо.
Проделайте то же самое со вторым потенциальным циклом: начальный кадр -11, конечный - 38. Сохраните второй отрезок как файл Looptest2.bip. Сделав это, загрузите Looptestl.bip в объект Biped, включите режим In Place и изучите анимацию дальше.
Команда Paste Pose/Posture/Track
Перейдите в кадр 0, включите кнопку Auto Key, убедитесь, что все звенья Biped выделены, и нажмите кнопку Paste Posture/Pose/Track
. Поза, сохраненная ранее, теперь вернет Betty обратно в положение перед стрельбой (рис. 8.70).Рис. 8.69. Обрежьте анимацию получения удара, удалив первые 69 ключевых кадров
Рис. 8.70. Betty вновь примет позу готовности к стрельбе после того, как сохраненная поза будет вставлена
Выделите только объект СОМ персонажа Betty. Вставка сохраненной позы обратно на Betty, к сожалению, не перемещает ее назад, в то место, в котором она была, когда копировалась поза. Скопирован был лишь трек поворота СОМ, поэтому придется вручную переместить Betty в нужное положение.
Копирование позы
Поза, в которой находится Betty, создана, чтобы держать любой тип оружия, из которого она стреляет. Когда бы она ни использовала рельсовую пушку, ей приходится несколько секунд ждать, пока оружие зарядится. Как только оно достигнет полной мощности, Betty стреляет и проходит анимацию, которая вскоре будет создана. Как же переместить анимацию получения удара на данный объект Biped, не потеряв текущую позу? Очень просто. То, что это всего лишь поза, упрощает задачу. Выделите объект СОМ персонажа Betty, сделайте кнопку преобразования Select and Move
активной и щелкните по ней правой кнопкой мыши, чтобы вызвать окно Move Transform Type-In (рис. 8.67).Теперь активизируйте кнопку Select and Rotate
и выделите все объекты Biped. Затем откройте свиток Copy/Paste и щелкните по кнопке Copy Posture, чтобы временно поместить текущую позу Betty в буфер поз.Рис. 8.67. Держите эти числа под рукой - они вскоре понадобятся
При копировании поз в буфер тип записанных данных зависит от того, какая кнопка преобразований активна и какая ось движения является текущей. Если копируются позы Biped целиком и необходимо выбирать между треками анимации Body Horizontal, Body Vertical и Body Rotate, то нажмите кнопку Body Rotate. Эту кнопку нужно использовать и перед выделением всех объектов Biped. Иначе выбор трека вручную отменит выделение всех объектов (рис. 8.68).
Рис. 8.68 Если у объекта СОМ будет только один трек, то используйте кнопку Body Rotate
Настройка верхней части тела
Положение персонажа правильно выровнено полностью, теперь нужно настроить туловище, руки и голову, тогда стрельба из ружья будет более реалистичной. В текущий момент ладони после удара поднимаются к лицу, а туловище и голова слишком сильно повернуты вправо. Выделите объекты Spine, руки и голову и примените к ним команду Set Key в кадрах 35 и 100. Затем перейдите в кадр 40 и определите положение верхней части тела так, чтобы оно было больше повернуто вперед и соответствовало движению сразу после выстрела (а не после получения удара). Поверните все объекты Spine, руки и голову. Не забудьте и про ключицы. На эти части рук иногда не обращают внимания, но они играют важную роль в движении руки (рис. 8.82).
Рис. 8.82. Поверните голову, позвоночник и руки так, чтобы Betty смотрела вперед
Затем, чтобы завершить впечатление того, что Betty сразу же собирается вернуться в исходное состояние и снова выстрелить, перейдите в кадр 0 и поверните верхнюю часть тела так, чтобы оно было немного больше направлено вперед. А позвоночник сильнее согните по оси Y, так как Betty пытается сохранить равновесие. Поверните голову, чтобы она смотрела вперед и немного вниз (рис. 8.83).
Рис. 8.83. Расположите верхнюю часть тела так, чтобы Betty начала вновь обретать равновесие для следующего выстрела
Наконец вернитесь в кадр 45 и поверните голову вниз так, чтобы она смотрела вперед. Голова всегда будет опережать тело при подобном восстановлении, потому что глаза обычно смотрят вперед или на цель. Подвигайте ползунок шкалы времени и настройте голову так, чтобы она всегда отчасти смотрела вперед (рис. 8.84).
Настроив голову, сверните слои и исправьте ступни там, где они погружаются в пол в кадрах 35 и 40.
Рис. 8.84. Голова всегда стремится повернуться вперед, чтобы глаза могли видеть цель
Определение длины цикла
Выделите все звенья и объекты Biped (кроме маленького круглого объекта Footsteps) и перейдите в кадр 0. Убедитесь, что активно окно проекции Left. Увеличьте масштаб и передвиньте вид так, чтобы Biped оказался слева. Затем выполните команды Tools/Snapshot (рис. 8.18, позиция 1) и создайте копии выделенных объектов Biped для кадра 0 (рис. 8.18, позиция 2).
Рис. 8.18. Чтобы скопировать звенья Biped, зафиксируйте их мгновенное положение в кадре 0
Для определения длины цикла необходима своего рода поза-образец, поэтому в кадре 0 было зафиксировано мгновенное положение звеньев Biped. Теперь нужно сгруппировать эти объекты, чтобы в дальнейшем их случайно не выделить поодиночке. Перейдите вперед на несколько кадров анимации, Biped должен переместиться на некоторое расстояние от копий мгновенного начального положения. Выделите копии, откройте меню Group (рис. 8.19, позиция 1) и сгруппируйте выделенные объекты (рис. 8.19, позиция 2), назвав их по умолчанию Group 1 (эта группа потом будет удалена).
Рис. 8.19. Чтобы случайно не выделить скопированные объекты в дальнейшем, сгруппируйте их
Теперь, когда есть мгновенное положение первого кадра анимации и объекты сгруппированы для упрощения выделения, нужно активизировать режим In Place (На месте), чтобы можно было понять, когда цикл повторяется. Еще раз выделите любую часть исходного объекта Biped и в разделе Modes (Режимы) свитка Biped щелкните по кнопке, которая похожа на мишень для стрельбы - она станет фиолетовой (рис. 8.20).
Во время работы над движением объект Biped, таким образом, будет находиться на одном месте - в центре сцены. Для просмотра анимаций с целью определения качества и приемлемости данных захвата движения этот режим подходит как нельзя лучше.
Режим In Place можно настроить и так, что движение будет ограничено осями X и Y по отдельности. Для этого выберите в выпадающем графическом меню одну из осей (рис. 8.21).
Рис. 8.20. Включите для объекта Biped режим In Place, чтобы во время роботы он всегда был на одном месте
Рис. 8.21. В режиме In Place можно выбрать только ось X или Y
Затем перемещайтесь по анимации кадр за кадром, пока не дойдете до первого наилучшего совпадения с зафиксированным мгновенным начальным положением. Ближайший кадр, в котором повторяется мгновенная поза, - кадр 26. Так как снимок Biped сделан в кадре 0, то длина цикла равна примерно 27 кадрам (кадры 0-26) - рис. 8.22.
Отработка эффекта отдачи
Выстрел произведен, теперь можно извлечь пользу из загруженной ранее в объект Biped анимации. Но сначала выделите ступни и скопируйте их мгновенное положение в качестве образца, на который нужно будет ссылаться при перемещении анимации эффекта отдачи ближе к анимации стрельбы (как во времени, так и на самой сцене). Включите режим каркаса, выделите ступни, в меню Tools выберите пункт Snapshot (рис. 8.75, позиция 1) и, когда появится окно Snapshot, щелкните по кнопке ОК (рис. 8.75, позиция 2).
В поле End Time в окне Time Configuration введите значение ПО и затем откройте окно Track View. Выделите и переместите все ключи, которые составляют анимацию получения удара, влево, чтобы они начинались в кадре 40. Затем выделите ряд ключей в кадре 30 и скопируйте их в кадр 100 (рис. 8.76).
Рис. 8.75. Зафиксируйте мгновенное положение ступней, чтобы использовать его в качестве образца при определении позы отдачи
Рис. 8.76. Переместите ключи эффекта отдачи ближе к точке, в которой Betty стреляет из ружья
Воспроизведите анимацию и посмотрите, как она выглядит. Во время анимации получения удара персонаж отрывается от земли и отходит немного вправо. Нужно изменить положение Betty, чтобы начальная и конечная позы полностью совпадали.
Перемещение объекта СОМ
Вызовите окно Move Type-In Transform и, сделав активной нужную ось, переместите Betty, введя координаты по осям X, Y и Z, которые показаны на рис. 8.67 (рис. 8.71).
Рис. 8.71. С помощью координат, определенных ранее, переместите Betty обратно в нужное положение
Если при попытке расположить объект СОМ персонажа путем ввода значений координат в окне Move Type-In Transform ничего не происходит, щелкните по кнопке Body Horizontal или Body Vertical и попытайтесь снова.
Вызовите окно Track View и скопируйте столбец ключей из кадра 0 в кадры 1, 9, 10 и 30. Созданная таким образом «анимация» будет использоваться для временного фрагмента стрельбы, отвечающего за зарядку оружия, а в движении не будет заминки, обусловленной параметром Continuity (рис. 8.72).
По-настоящему анимировать персонаж для этого неподвижного состояния не нужно, потому что его продолжительность изменяется, требуется лишь определенная поза. Ключи, скопированные в кадр 30, предназначены для следующего шага в создании анимации стрельбы.
Рис. 8.72. Скопируйте ключи, чтобы создать неподвижную «анимацию», которая будет использоваться как фрагмент подзарядки оружия
Плохая анимация бега
Большинство анимаций персонажей игр в реальном времени, если не все они, выполняются «на месте». Поэтому движение, которое вам требуется для использования, должно быть достаточно характерным, чтобы быть адекватным для игрового персонажа. Анимация бега не может смещаться в каком-либо направлении. Не должно быть наклонов в стороны или признаков ускорения или замедления.
Если не оговорено противное, частота смены кадров для всех анимаций по умолчанию определена как частота, принятая для стандарта NTSС, и равна 30 кадрам в секунду.
Откройте свиток Biped и щелкните по кнопке Load File. Укажите путь к файлу Badrun.bip и загрузите его (рис. 8.14).
Рис. 8.14 Чтобы загрузить файл формата BIP в объект Biped, щелкните по кнопке Load File и укажите путь к файлу
Выключите кнопку Show Buffer и перейдите в режим показа объектов, а не костей. Активизируйте окно проекции Left (Левый) и перетащите ползунок шкалы времени, чтобы просмотреть анимацию. Положение туловища на протяжении анимации изменяется от наклона вперед в начале до наклона назад ближе к концу. Это указывает на ускорение и замедление движения (рис. 8.15).
Рис. 8.15. Пример плохой анимации бега
Очень важна скорость персонажа и направление его движения. Прежде чем принять решение, использовать анимацию бега или нет, нужно найти точки замыкания цикла. Это две наиболее близкие позы в анимации, которые можно соединить, основываясь на близком угле наклона туловища, размещении ступней и положении рук. В загруженном файле захвата движения самые близкие точки, которые можно было бы назвать начальной и конечной точками цикла, находятся соответственно в кадрах 0 и 23 (рис. 8.16).
Рис. 8.16. К сожалению, в этом случае нет возможности для создания циклической анимации
Однако из рис. 8.16 видно, что, хотя левая ступня и закреплена, а левая рука находится в почти правильной позе, угол наклона туловища совершенно неправильный. Плохой цикл - результат того, что актеру не хватало места, чтобы выполнить бег целиком. Он начинает движение, делает несколько шагов и сразу же ему приходится замедлять движение и останавливаться, выгибая туловище. Выбирая студию захвата движения, посмотрите, сколько актеру доступно места в этом процессе, чтобы таких проблем с данными не возникло.
Другая причина, по которой этот определенный файл захвата движения плох, - то, что его длина равна только 29 кадрам. Актеру не просто требовалось больше расстояния для бега, но ему нужно было бы бежать в два раза дольше. Проверяя данные, которые будут преобразованы в бег, убедитесь, что повторяется достаточное число движений, иначе выявить в захваченном движении циклический отрезок не получится. А значит, данные должны быть достаточно длинными, чтобы можно было вырезать фрагменты в начале и в конце, устранить смещения туловища при ускорении и замедлении и в результате получить удачный отрезок.
Преобразование CSM- и BVH-файлов
Откройте новый файл 3ds max или сбросьте (reset) старый и создайте объект Biped. Объект СОМ нового Biped будет выделен автоматически, поэтому откройте панель Motion и в свитке Motion Capture (Захват движения) щелкните по кнопке Load Motion Capture File (Загрузить файл захвата движения) - рис. 8.1.
Рис. 8.1. Чтобы импортировать файлы в форматах CSM и BVH, щелкните по кнопке Load Motion Capture File
Когда появится диалоговое окно Open, из трех доступных в выпадающем списке Files of type (Тип файлов) типов файлов выберите формат BVH. Затем загрузите файл Walky.bvh, выделив его и нажав кнопку Open (рис. 8.2).
Когда появится окно Motion Capture Conversion Parameters (Параметры преобразования захвата движения), убедитесь, что в поле Footstep Selection (Выбор следов) выбрано None: Freeform (Нет: Свободная деформация), а в поле Conversion (Преобразование) - No Key Reduction (Без сокращения ключей). Нажмите кнопку ОК (рис. 8.3).
Рис. 8.2. Чтобы загрузить файл формата BVH, нужно выбрать этот формат в выпадающем списке Files of type
После того как 3ds max обработает преобразование, движение будет загружено в объект Biped. И сразу же станут заметными изменения конфигурации и пропорций Biped. Причина этому - место размещения маркеров во время захвата и экспорт в формат BVH (рис. 8.4).
Для преобразования файлов в форматах BVH и CSM всегда используйте Biped общего вида, установленный по умолчанию, а не сам персонаж. Конфигурации датчиков и Biped во время захвата движения и последующего экспорта в файл формата BVH или CSM повлияют на форму и конфигурацию Biped, в который они загружаются, и сильно исказят или разрушат сетку.
Рис. 8.3. Окно Motion Capture Conversion Parameters - отличный инструмент для быстрого преобразования файлов в форматах BVH и CSM
Переместите ползунок шкалы времени в кадр 0, если он еще не в этом кадре. Заметьте, что стали доступны кнопки в нижнем ряду свитка Motion Capture. Так происходит потому, что при загрузке файла в формате BVH или CSM с помощью этих кнопок можно еще раз прокалибровать данные от датчиков. Однако обращаться к ним приходится редко, и лучше всего доверить такие изменения студии захвата движения, которая предоставляет данные.
и 3ds max можно использовать
В character studio и 3ds max можно использовать файлы захвата движения трех типов: в формате CSM, BVH или BIP. Близкое знакомство с первыми двумя типами необходимо только тем, кто профессионально занимается захватом движения, используя данные датчиков и другие калибровочные элементы. Аниматору же нужно главным образом знать, как в character studio преобразовывать форматы CSM и BVH в BIP. Это можно сделать с помощью окна Motion Capture Conversion Parameters, которое вызывается из свитка Motion Capture. Именно в этом окне можно сократить число ключей, составляющих файл захвата движения (по умолчанию ключи созданы для каждого кадра каждого трека анимации), или создать цикл простым повторением данных.
Если нужно работать с файлами захвата движения, то лучше всего выполнить захват для каждого проекта, в котором требуются записанные движения. Однако временные и финансовые ограничения иногда вынуждают искать или покупать готовые данные захвата движения и модифицировать их. Выбирая файл захвата движения, изучите данные и посмотрите на качество движения, оцените его пригодность для своих нужд. Подойдет ли оно персонажу, можно ли его легко и быстро изменить? Примером того, на что нужно обращать внимание в файле захвата движения, служит сравнение хорошей и плохой анимации бега. В хорошей анимации бега от исходного ускорения движения или его замедления при остановке персонажа не остается и следа.
Чтобы увеличить или подчеркнуть действие физических сил, например центробежной силы и удара, можно добавить в файл захвата движения кадры или удалить их из него. Применение слоев в character studio дает возможность настраивать данные захвата движения так, как это необходимо.
Файлы захвата движения можно использовать в различных целях. Не стоит изощряться в выдумках - используйте данные по назначению. Поэкспериментируйте лучше с комбинациями данных захвата движения -так можно получить нечто совершенно новое.
Создание анимации смерти
В анимации Shotdrop.csm персонаж смотрит в ствол ружья, чтобы понять, почему оно не выстрелило. Идея разработчиков заключалась в том, чтобы создать для игрового проекта серию анимаций с глупыми ошибками. Идея не была воплощена, но сохранились данные захвата. Если удалить первый фрагмент данных и изменить общую ориентацию, то файл Shotdrop.csm получит сильный потенциал, чтобы стать хорошей анимацией смерти.
Создание циклического бега
Выбрав лучший файл захвата движения, необходимо его обрезать, чтобы цикл идеально замкнулся. Для этого сначала определите необходимую длину цикла.
Создание движения стрельбы
Поза скопирована, теперь нужно создать саму анимацию стрельбы из ружья. Закройте окно Track View, затем выделите и заморозьте все объекты сетки Betty. Активизируйте окно проекции Left, в поле Start Time окна Time Configuration введите значение 30 и щелкните по кнопке Auto Key - она станет активной и приобретет красный цвет. При изменении значения в поле Start Time вы автоматически должны оказаться в кадре 30, если этого не произошло, перейдите в кадр 30. По очереди выделите каждую ступню и заблокируйте ее с помощью кнопки Set Planted Key (из свитка Key Info). При блокировании каждой ступни снимите отметку с опции Join to Prev IK Key (рис. 8.73).
Рис. 8.73. В кадре 30 заблокируйте каждую ступню, сняв отметку с опции Join to Prev IK Key
Еще раз откроите окно Track View и скопируйте столбец ключей из кадра 30 в кадр 35. Перейдите в кадр 35 и создайте позу Betty, которая изображает ее сразу после выстрела. При этом представьте, как вы сами держали бы ружье, подобно Betty, и время от времени стреляли. От выстрела вас дернет влево и назад. Левая рука от удара отбрасывается назад, туловище поворачивается влево, а голова наклоняется вперед и вниз. При определении положения левой руки Betty с оружием постарайтесь, чтобы она при смещении назад указывала вперед, а правую ладонь вынесите вперед, как будто Betty пытается сохранить равновесие (рис. 8.74).
Рис. 8.74. Betty отклоняется назад под воздействием выстрела
Сравнение отрезков цикла
Теперь нужно решить, какой цикл выбрать, чтобы превратить его в плавную, улучшенную анимацию. Для этого внесите несколько изменений в каждый цикл и сравните их возможности. Измените параметры в окне Time Configuration: в поле Start Time введите значение 0, а в поле End Time - 25 (заметьте, что последний кадр не включен в диапазон, потому что он больше всего совпадает с первым). Затем откройте окно Track View и измените параметры фильтра, чтобы показывались только анимированные треки. Нажмите сочетание клавиш Alt+Ctrl+H, чтобы скопировать сцену во временный буфер (на всякий случай), затем выделите и удалите все ключи в кадрах 25 и 26. Скопируйте ключи из кадра 0 в кадр 26 (рис. 8.27).
Рис. 8.27. Удалите последние два набора ключей и скопируйте первый набор в кадр 26
Воспроизведите анимацию, чтобы посмотреть, как она выглядит. Теоретически копирование ключей первого кадра в конечный кадр цикла должно обеспечить плавный цикл. Однако, просматривая анимацию шаг за шагом, можно увидеть, что при переходе от последнего кадра цикла к первому происходит заминка. Кажется, что в конце цикла персонаж немного прихрамывает. Это указывает на то, что, возможно, для движения левой ступни широким, ровным шагом, которое описано в кадрах 1-10, 25 и 26 недостаточно кадров. Сравните: правая ступня проходит тот же диапазон движений из кадра 11 до кадра 24, то есть имеется 13 кадров перемещения левой ступни против 14 кадров правой. Заминка может быть вызвана этой разницей в продолжительности движения. В качестве эксперимента (взяв за основу второго цикла больший промежуток) попытайтесь увеличить цикл на один кадр.
Нажмите сочетание клавиш Alt+Ctrl+F, чтобы забрать сцену из временного буфера, или просто загрузите Looptestl.bip обратно в объект Biped. Снова откройте окно Track View, выделите все ключи и переместите их на один кадр вперед. Затем удалите ключи из кадров 1 и 26. Скопируйте ключи, находящиеся вне диапазона, из кадра 27 в кадр 0 (рис. 8.28).
Рис. 8.28. Чтобы зациклить первый отрезок, воспользуйтесь другим подходом
Воспроизведите анимацию и посмотрите, как она выглядит. В точке сведения цикла все еще есть заметная заминка, вызванная положением туловища, которое начинает немного выпрямляться в конце отрезка. Это не идеально, но, в отличие от первой попытки, с дополнительным кадром цикл выглядит лучше. Затем возьмите второй отрезок и посмотрите, можно ли сделать из него что-нибудь лучше. Сохраните измененный цикл Looptestl.bip как Looptestla.bip и загрузите Looptest2.bip в объект Biped.
Снова включите режим In Place, измените параметры в окне Time Configuration: в поле Start Time введите значение 0, а в поле End Time -26, затем откройте окно Track View. Удалите ключи из кадра 26 и скопируйте ключи из кадра 0 в кадр 27 (рис. 8.29).
Есть заминка, но, вообще говоря, с этой анимацией работать будет проще - чтобы достичь подходящего цикла, нужно приложить меньше усилий, чем в случае с первым отрезком. Сохраните его как Looptest2a.bip -теперь можно продолжать уточнять цикл.
Рис. 8.29. Во втором пробном отрезке удалите ключи последнего кадра и скопируйте ключи первого кадра в кадр 27
Удаление кадров для усиления эффекта соударения
Благодаря внесенным изменениям анимация стала менее условной и более эффектной. Усилить эффект, производимый анимацией, можно и другим способом - удалив определенные кадры с целью ускорить движения, чтобы они казались более резкими. Этот метод особенно результативен при работе с файлами захвата движения, так как в этом случае для каждого кадра каждого трека анимации определен ключ.
Начните с первого удара, который наносится персонажу. Откройте окно Track View и удалите все ключи в кадрах 1, 2 и 4. Затем закройте промежуток, созданный удаленными ключевыми кадрами, выделив и переместив остальные влево (рис. 8.63).
Воспроизведите анимацию и посмотрите на результат удаления ключей. Затем то же самое проделайте с точкой, в которой персонаж ударяется о землю. Еще раз откройте окно Track View, выделите и удалите столбцы ключей в кадрах 40, 44, 47, 49 и 50 (рис. 8.64).
Прежде чем заполнять промежутки, оставленные удаленными ключами, изучите расположение ключей между выделенными столбцами. Удалив ключи, вы значительно увеличили ускорение падающего тела при ударе о землю. В точке удара удалены два кадра, за два кадра до этого удален один кадр, и за три кадра до этого удален еще один кадр, и наконец за четыре кадра до этого также удален один кадр. Удаление кадров 49 и 50 добавляет в движение идеальный эффект столкновения. Удаление других ключей, до кадра 49, обеспечивает постепенное увеличение скорости падения к концу движения.
Закройте промежутки, образовавшиеся при удалении, и воспроизведите анимацию, чтобы посмотреть результат (рис. 8.65).
Надеемся, что с помощью этого упражнения вы получили представление о том, как придать большую эффектность не только анимациям смерти, но и приземлениям после прыжка, ударам и любым другим анимациям, в которых присутствует эффект столкновения.
Рис. 8.63. Если удалить ключи и убрать промежутки, то начальный удар будет резче
Удвоение цикла
Выбрав хороший отрезок и приблизительно настроив его, чтобы он плавно замыкался, усовершенствуйте его с помощью окна Motion Capture Conversion Parameters. Щелкните по кнопке Load Motion Capture File и загрузите только что сохраненный файл Biped (он уже будет введен в список и выделен в поле File name (Имя файла)). Отметьте опцию Loop (Цикл) в разделе Load Frames (Загрузить кадры) и введите в это поле значение 1 (рис. 8.30).
Выбранный и настроенный ранее цикл удвоен по продолжительности. Таким образом, число кадров, с которыми можно работать, увеличивается и появляется возможность изменять начальную и конечную точки цикла, чтобы удовлетворить нужды анимации персонажа. Например, вы хотите, чтобы анимация начиналась с правой ступни, а не с левой, как в настоящий момент. Или же вы хотите, чтобы анимация начиналась с полушага. Удваивая цикл, вы получаете возможность вносить такие изменения. Нужно лишь немного исправить новый удвоенный цикл.
Начальный и конечный кадры исходного цикла совпадали, поэтому в середине анимации есть двойные ключи. Откройте окно Track View, выделите все ключи в кадре 27 (или 28) и удалите их. Затем выделите ключи справа от удаленного столбца и перетащите (slide) их на один кадр влево. Измените значения начала и конца анимации на 0 и 54 соответственно и воспроизведите анимацию. Даже несмотря на то что в кадрах 0 и 54 ключи совпадают, анимация проигрывается плавно (рис. 8.31).
Рис. 8.30. Опция Loop в окне Motion Capture Conversion Parameters - удобный инструмент
Рис. 8.31. Наконец получена хорошо замкнутая анимация бега, в которой нужно исправить лишь незначительные фрагменты
Уточнение цикла с использованием слоев
Чтобы сделать цикл еще более плавным, нужно внести в анимацию дополнительные уточнения. Сначала измените первый кадр цикла, чтобы он был больше похож на начало бега. Таким образом, когда персонаж остановится, а затем начнет бежать, движение не будет сильно зависеть от того, какая ступня впереди. Для этого в окне Time Configuration в поле Start Time введите значение 0, а в поле End Time - 31.
Затем определите первый фрагмент, который нужно настроить, посмотрев на траекторию объекта СОМ. Выключите режим In Place, щелкнув по соответствующей кнопке, и выделите объект Bip0l. Щелкните по нему правой кнопкой мыши, щелкните по пункту Properties (рис. 8.32, позиция 1) и отметьте опцию Trajectory (Траектория) - рис. 8.32, позиция 2.
Рис. 8.32. Включите опцию Trajectory, чтобы увидеть траекторию объекта СОМ
Появится красная пунктирная кривая, соответствующая положению объекта СОМ при прохождении по анимации. И хотя линия обрывается в начале кадра 26, ее точки максимума и минимума можно увидеть. Разница высот этих точек по отношению друг к другу и вызывает одну из проблем с анимацией (рис. 8.33).
Рис. 8.33. Если отображается траектория, то источник одной из проблем с циклом становится очевиден
Кривая изображает естественное движение центра тяжести персонажа вверх и вниз по мере того, как он бежит. Если воспроизвести анимацию с включенным режимом In Place, то можно увидеть, что ближе к концу движения персонаж на правой ступне поднимается выше, чем на левой. Доказательством этому служит сравнение второй точки максимума траектории с первой. К тому же первая точка минимума в кадре 0 находится ниже, чем вторая в кадре 13. Чтобы анимация была гладкой и не раздражала несимметричностью, две точки минимума должны находиться на одной высоте, то же верно и для двух точек максимума.
Путь любого выделенного объекта Biped можно просмотреть, включив кнопку Trajectory в разделе Display в свитке Biped (рис. 8.34).
Проще всего исправить проблему разницы в высотах траектории с помощью слоев. Выделите объект СОМ и щелкните по кнопке Create Layer, чтобы добавить еще один слой анимации (рис. 8.35).
Рис. 8.34. Кнопка Trajectory отображает траекторию или путь любого выделенного объекта либо звена Biped
Рис. 8.35. Добавление слоя - лучший способ внести значительные изменения в анимацию
Прежде чем переместить объект Biped, щелкните по пиктограмме Select and Move в верхней части окна - она станет активной. Затем нажмите кнопку Set Key в кадрах 5 и 27 - и эти положения останутся без изменения.
Производить анимирование при включенной кнопке Auto Key - хорошая привычка, но кнопка Set Key установит ключ, даже если кнопка Auto Key выключена.
Затем перейдите в кадр 8 и поднимите объект СОМ по оси Z, пока он не окажется на ближайшей линии сетки (А). Перейдите в кадр 14 и опустите СОМ, пока он не окажется на линии сетки на одно деление ниже той, которая использовалась в кадре 8 (В). Наконец, перейдите в кадр 21 и опустите СОМ, пока он не окажется на линии сетки, которая использовалась в кадре 14 (С), - рис. 8.36.
Теперь настройте ступни Biped так, чтобы они твердо стояли на плоскости земли. Добавьте еще один слой в анимацию, щелкнув по кнопке Create Layer.
Добавление слоев один поверх другого при внесении изменений в анимацию во многом схоже с добавлением модификаторов в стек модификаторов. Это необязательно, но если придется вернуться назад и удалить или изменить добавленное уточнение, вы сможете провести эти операции в рамках слоев, соответствующих уточнениям, то есть получите дополнительные уровни отката.
Выделите правую ступню и нажмите кнопку Set Key для кадров 11 и 18. Затем в кадре 13 поверните и переместите ее относительно оси Z так, чтобы она своей плоскостью идеально легла на плоскость земли. То же проделайте в кадре 15 (рис. 8.37).
Рис. 8.36. Переместите объект СОМ так, чтобы точки минимума и максимума траектории были на одном уровне
Рис. 8.37. Правая ступня должна находиться на плоскости земли и лежать на ней полностью в те моменты, когда ступня неподвижна
Затем выделите левую ступню и поступите с ней точно так же. Добавьте еще один слой, посмотрите, где необходимо установить ключ, чтобы сохранить нужную часть анимации, и настройте поворот и перемещение.
В этом случае изменения незначительны. Щелкните по кнопке Set Key для кадров 24 и 27, а затем поверните и поставьте ступню на плоскость в кадрах 25 и 26.
Последний слой, который нужно добавить, решает вопрос с небольшим выпрямлением туловища ближе к концу анимации. Создайте другой слой, выделите первый объект Spine и нажмите кнопку Set Key для кадров 21 и 29. Затем перейдите в кадр 25 и поверните объект Biped Spine на -5° относительно оси Z (рис. 8.38).
Рис. 8.38. Поверните объект Spine, чтобы устранить небольшое выпрямление в конце цикла
Сверните стек слоев и перейдите в окно проекции Front, чтобы исправить последнюю проблему (рис. 8.39).
Рис. 8.39 С помощью кнопки Collapse Stack (Свернуть стек) все анимационные слои сворачиваются
В окне проекции Front просмотрите анимацию шаг за шагом и проследите за левой ступней. В кадрах 24-26 ее нужно переместить и немного повернуть так, чтобы внутренняя сторона ступни была направлена вдоль основной линии сетки в начале координат. Использовать слой не нужно -просто начните с кадра 24, переместите и поверните ступню соответствующим образом.
Поворачивать объекты и звенья Biped при активной кнопке Auto Key можно только в системе координат Local (Локальная). Когда нужно будет переместить звено Biped после поворота, система координат может остаться локальной. В этом случае просто смените ее на систему координат View (Вид) - рис. 8.40.
Теперь можно посмотреть, как внесенные изменения отразились на анимации. Анимации хорошо просматривать, держа персонаж на виду, но при использовании режима In Place в исходном варианте при визуализации анимации в любом виде, кроме вида сбоку, ее воспроизведение не будет точным. Если вы хотите более точно просмотреть анимацию, снова включите для Biped режим In Place, но на этот раз выберите режим In Place Y (рис. 8.41).
Рис. 8.40. Преобразования поворота ограничены системой координат Local
Рис. 8.41. Удерживая выпадающее графическое меню, щелкните по пиктограмме In Place Y
Теперь персонаж будет слегка двигаться из стороны в сторону, перемещаясь по мере анимации бега, - важное вторичное движение для любого бега или ходьбы. Чтобы получить плавное воспроизведение анимации, в поле End Time окна Time Configuration введите значение 32 (рис. 8.42).
Последнее, что нужно сделать, настраивая анимацию, - вручную переместить объект Biped в начало координат. Режим In Place прекрасно подходит для внесения изменений и просмотра, а также для центрирования объекта Biped вручную - завершающего шага для создания циклических анимаций, таких как бег или ходьба. Выделите объект СОМ, выключите режим In Place и из кадра в кадр перемещайте Biped обратно к кадру 0 по оси Y, используя систему координат View. Безусловно, проще всего переместить объект Biped, вызвав окно Move Transform Type-In и введя значение 0 в поле Absolute:World (Абсолютная:Мировая) - рис. 8.43.
Рис. 8.42. После внесения изменений нужно сделать еще один, завершающий анимацию, шаг
Рис. 8.43 Окно Transform Type-In никогда не бывает ненужным
Если вызвать окно Track View и удалить все ключи типа Horizontal для трека Ыр01, то объект СОМ останется в начале координат, но будут удалены перемещения по осям X и Y. Перемещение из стороны в сторону вдоль оси X очень важно в таких анимациях, как бег и ходьба, - оно моделирует равновесие и перенос веса, поэтому предпочтительнее переместить анимацию вручную в точку с координатой 0 по оси Y.
Как только объект Biped будет перемещен в начало координат во всех кадрах цикла, сохраните анимацию с помощью опции Save Segment. Чтобы автоматически задать отрезок текущим диапазоном анимации, щелкните по кнопке Active Time Segment (Активный временной сегмент), которая находится справа от поля То (До). Сохраните новый файл Biped как Myrun.bip (рис. 8.44).
Рис. 8.44. С помощью кнопки Active Time Segment начальный и конечный кадры задаются в соответствии с установками в окне Time Configuration
В качестве эксперимента загрузите файл Myrun.bip в окне Motion Capture Conversion Parameters. He используя режимы в списке Footstep Extraction (Извлечение следов), примените сокращение ключей. Снимите отметку с опции Loop, потому что она не нужна, также отмените выделение треков Body Horizontal, Body Vertical, Left Leg и Right Leg в разделе Key Reduction Settings (рис. 8.45).
Поэкспериментируйте со значениями Tolerance и Minimum Key Spacing и добавьте звенья Legs и Body в число объектов для сокращения ключей, чтобы посмотреть, нельзя ли еще больше сгладить анимацию.
Рис. 8.45. Оптимизируйте верхнюю часть туловища во время анимации с помощью окна Motion Capture Conversion Parameters
Внесение изменений с помощью функции Set Multiple Keys
Внести необходимые изменения в файл захвата движения можно не только с помощью слоев, но и используя функцию Set Multiple Keys1 (Установить несколько ключей)
. Откройте окно Track View и выделите все ключи в кадрах 40-89 только для трека Betty R Thigh (рис. 8.85).Не отменяя выделения ключевых кадров, закройте окно Track View, активизируйте окно проекции Front и перейдите в кадр 59. Увеличьте правую ступню в окне проекции и посмотрите, как она сгибается по оси Z (рис. 8.86).
Угол наклона ступни неестественен, это обусловлено мягким покрытием пола, на котором производилось движение. Этот недостаток можно быстро и легко исправить с помощью функции Set Multiple Keys.
Рис. 8.85. Выберите только ключи для корректного добавления эффекта отдачи
Рис. 8.86. Правая ступня поворачивается во время анимации, что обусловлено покрытием пола
Выключите кнопку Auto Key, выделите ступню и поверните ее относительно оси Z так, чтобы она ровно стояла на полу (рис. 8.87, позиция 1). Затем в свитке Keyframing щелкните по кнопке Set Multiple Keys (рис. 8.87, позиция 2) - появится окно Biped Multiple Keys (Несколько ключей Biped). Щелкните по кнопке Apply Increment (Применить инкремент) - рис. 8.87, позиция 3, - и ко всем выделенным в окне Track View ключам будет применена операция вращения.
Рис. 8.87. Чтобы применить функцию преобразования к определенному ряду ключей, воспользуйтесь функцией Set Multiple Keys
Иногда кажется, что в результате применения функций Set Multiple Keys и Apply Increments сетка растягивается или деформируется. Чтобы убедиться, что команда Apply Increments привела к желаемому результату, подвигайте ползунок шкалы времени из стороны в сторону либо нажмите клавишу . ( точка) или, (запятая) несколько раз. Не забывайте также, что нужно повернуть или переместить выделенный объект относительно одной оси и воспользоваться функциями Set Multiple Keys и Apply Increment прежде, чем переходить к другой оси или другому типу преобразования. Иначе говоря, если совершить ряд поворотов или перемещений, а затем нажать кнопку Set Multiple Keys, то результата не будет.
Воспроизведите анимацию и посмотрите, нет ли других фрагментов, которые нужно исправить. Во время анимации попробуйте удалить ключи для рук, позвоночника и головы из различных положений, чтобы сделать движения более плавными. На этом превращение Betty, получающей удар, в Betty, отпрянувшей от удара, и наконец в Betty, восстанавливающуюся после сильной отдачи ружья, завершено (рис. 8.88).
Рис. 8.88. Эффект отдачи от оружия Betty
Выбор формата файлов захвата движения
Конечно, нельзя позволить себе записывать сессию захвата движения каждый раз, когда нужно анимировать персонаж. Иногда приходится работать с тем, что уже имеется, или с тем, что можно найти в свободном доступе в приличном виде. В студии House of Males существует огромная коллекция CSM-файлов для мужских и женских персонажей, к которым можно получить доступ как за деньги, так и через систему онлайнового доступа Diva. У студии Modern Uprising есть файлы BVH для мужских и женских персонажей, которые доступны по запросу.
Определяя, подходит вам файл захвата движения или нет, рассмотрите два фактора: качество и возможность его применения для ваших целей. Качество закладывается в момент съемки; вы полагаетесь на актера, на режиссера, затем на конечный результат, предоставляемый компанией после обработки и настройки файла. Остается только загрузить эти файлы в ваш объект Biped и посмотреть на результат. Файл либо хорошо подойдет для ваших целей, либо нет. Возможность применения зависит от длительности полученной анимации и их цикличности, так как персонажи игр в реальном времени должны бегать, прыгать, плавать и стрелять в бесконечно повторяемых циклах. Чтобы получить цикл, в движении должен быть отрезок, начальная и конечная позы которого похожи (или должна быть возможность создать достаточно близкие позы).
Анимация бега - один из лучших примеров для иллюстрации разницы между хорошими и плохими данными захвата движения.
Выравнивание правой ступни перемещением объекта СОМ
Откройте свиток Layers и щелкните по кнопке Create Layer а, чтобы создать новый слой. Перейдите в окно проекции Front, включите кнопку Auto Key и выделите объект СОМ персонажа Betty. Убедитесь, что активна кнопка преобразований Select and Move, и примените команду Set Key для объекта СОМ в кадрах 35 и 100. Нужно, чтобы движения до и после отдачи совпадали. Перейдите в кадр 40 и переместите объект СОМ так, чтобы ступни выровнялись со снятым ранее мгновенным положением. Больше внимания уделите совпадению зеленой правой ступни, а не синей левой (когда персонаж отходит назад, вес перебрасывается на правую ступню) - рис. 8.77.
Рис. 8.77. Перемещайте объект СОМ до тех пор, пока правая ступня не выровняется со снятым мгновенным положением правой ступни
В свитке Track Selection кнопки Body Horizontal и Body Vertical использовать одновременно нельзя. Можно нажать только на одну из них. Однако, если выбрать кнопку Restrict to ZX (Ограничить по ZX) или Restrict to YZ (Ограничить по YZ) на панели Axis Constraints (Ограничения по осям), то обе кнопки - Body Horizontal и Body Vertical - будут выделены и теперь можно одновременно определить ключи для обоих треков анимации (рис. 8.78).
Рис. 8.78 С помощью кнопки Restrict to ZX или Restrict to YZ можно определить ключи для обоих треков анимации Body Horizontal и Body Vertical для объекта СОМ
Если для перемещения по осям X, Y и Z вы используете трехгранник осей (axis tripod), то станет проще определить ключ для обоих треков. Просто переместите объект СОМ с помощью значка в углу трехгранника, что вызовет перемещение по двум осям одновременно (рис. 8.79).
Рис. 8.79. Если воспользоваться трехгранником осей и переместить объект СОМ с помощью значка перемещения в углу, можно определить ключи для трека как Body Horizontal, так и Body Vertical
Затем, не выходя из окна проекции Front, перейдите в кадр 90 и снова переместите объект СОМ. пока правая ступня Betty не выровняется со снимком правой ступни (рис. 8.80).
Теперь подвигайте ползунок шкалы времени между кадрами 40 и 60. В кадрах 45-53 персонаж немного подпрыгивает. Перейдите в кадр 45 и опять переместите объект СОМ, пока правая ступня не выровняется с образцом. Затем перейдите в кадр 53 и сделайте то же самое. Подвигайте ползунок шкалы времени из стороны в сторону и везде, где ступня отклоняется от снимка, переместите СОМ - ступня должна быть выровнена во всей анимации. В кадрах 36-39 проигнорируйте положение ступни, потому что в этих кадрах, чтобы выровнять ее, надо перемещать саму ступню, а не объект СОМ. Переместите СОМ в кадре 95, чтобы выровнять ступни, проигнорируйте кадры 91-94 и 96-99 по той же причине.
Теперь просмотрите анимацию в окне проекции Right, переместив СОМ в каждом кадре, где ступня не выровнена, принимая во внимание прыгающее движение в кадрах 45-55 (просто переместите СОМ по оси Y), - рис. 8.81.
Рис. 8.80. Переместите объект СОМ в кадр 90, пока правая ступня не совпадет с мгновенным положением
Рис. 8.81. Переместите объект СОМ в окне проекции Right, выровняв ступню должным образом
Если положение будет неточным, не волнуйтесь. Здесь самое главное -обработать движение получения удара с помощью слоя и поместить ступни в правильное положение, сначала переместив СОМ. Пока не обращайте внимания на то, что ступня проходит сквозь пол.
Не пытайтесь использовать в слое команду Set Planted Key - сначала слои нужно свернуть. Попробуйте проделать это - и вы поймете причину. Ступня и нога будут двигаться неестественно.
Загрузка анимации получения удара
Щелкните по кнопке Load File в свитке Biped и загрузите в объект Biped файл Whacked.bip.
Чтобы удалить избыточные ключевые кадры, которые не нужны для анимации, откройте окно Track View. Затем выделите и удалите все ключи из кадров 0-69 и 120-135 (рис. 8.69).
Удаление большого числа ключевых кадров в окне Track View иногда может создать нехватку памяти и ресурсов процессора компьютера, а программа 3ds max может зависнуть. Тогда вместо удаления ключевых кадров сохраните нужную часть анимации с помощью опции Save Segment.
СВОДИМ ВСЕ ВМЕСТЕ
СВОДИМ ВСЕ ВМЕСТЕ
Режим Motion Flow
Подготовка анимации для режима Motion Flow
Создание сценария Motion Flow Script
Настройка длины перехода между отрезками движений
Поворот отрезков движения
Экспорт
Установка экспортеров WildTangent 3ds max 4
Создание и экспорт актера
Экспорт актера с анимациями
Заключение
Экспорт
Процесс разработки персонажей игр в реальном времени не может обойтись без экспорта в том или ином виде. В Q3A персонажи экспортировались в ASCII-формат 3ds max (под названием ASE), затем программисты взмахивали своими волшебными математическими палочками - и персонажи появлялись в игре. В файле конфигурации определялась скорость смены кадров для анимации, а также точка начала и конца анимации. Такой подход, использующий группу файлов, вполне приемлем, но он определенно предназначен не для художника.
Однако не все компании отказываются от подхода визуальных инструментов и заставляют художника (трепещите!) вводить массивы данных в процессе экспорта. Технология Web Driver компании WildTangent и набор инструментов RenderWare фирмы Criterion Software представляют новое поколение графически ориентированных экспортеров, в которых художественная разработка упрощена. Чтобы проиллюстрировать один пример экспорта, в следующем разделе подробно рассматривается использование экспортера для 3ds max 4 компании WildTangent1. На компьютер придется установить ряд программ WildTangent, поэтому, если вы хотите пропустить данный раздел, переходите сразу к заключению.
Экспорт актера с анимациями
На этом этапе пригодятся все временные теги. Щелкните по полю Add Time Tag и отметьте кадры, в которых имеет место анимация Swim Forward (кадры 680-720) - рис. 9.29.
Откройте свиток Actor Motions (Движения актера) и щелкните по кнопке New Motion (Новое движение). В поле имени введите Swim Forward. Нажмите клавишу Tab или дважды щелкните по полю Start Frame и введите значение 680. В поле End Frame введите значение 720 (рис. 9.30).
Еще раз нажмите кнопку Export Actor и снова откройте страницу просмотра (рис. 9.31).
Рис. 9.29. Чтобы увидеть список кадров начала и конца анимаций, щелкните по полю Add Time Tag
Рис. 9.30. Чтобы добавить анимации, нужно просто присвоить имя диапазону анимации и определить его границы
Если вас раздражает проблема отсечения изображения по границам и вы умеете редактировать HTML-страницу, сделайте следующее. Откройте папку, в которую был помещен экспортер, и найдите файл WildTangent.html. С помощью программы FrontPage, Notepad (Блокнот) или любого другого редактора HTML откройте файл и перейдите к строке 339. Измените строку camera.setClipping( 10000*globalPositionIncrement,
2*globalPositionIncrement);
на camera.setClipping( 10000*globalPositionIncrement, 4.0);
Точность Z-буфера увеличится, но если увеличение слишком велико, то будут отсечены передние части модели, поэтому немного измените значение. Экспортер старается установить хорошее значение по умолчанию - значение, которое подойдет для большинства моделей, но в зависимости от размеров модели эти числа можно увеличить и получить лучший характер видимости вдоль оси Z. Сохраните файл и держите его под рукой, чтобы заменять им исходный файл WildTangent.html, который записывается каждый раз при экспорте актера.
Рис. 9.31. Теперь Betty «плывет» в Web-браузере
Чтобы поместить в игру такого персонажа, как Betty, нужно ввести все его анимации в список движений перед тем, как экспортировать персонаж. Помимо этого есть и другие возможности для настройки, например, выдвинутых костей (promoted bones) и создаваемых материалов WildTangent. Изучите работу экспортера WildTangent, посетите сайт www.wildtangent.com. где представлены более подробные руководства.
Экспортер WildTangent производит экспорт на Web-страницу, поэтому вы можете создать одну или несколько моделей, анимировать их, экспортировать и разделять их со всеми, кто может и хочет скачать WildTangent Web Driver.
Настройка длины перехода между отрезками движений
После того как сценарий определен, а движения внесены, нужно устранить резкие переходы между отрезками движений. Закройте окно Motion Flow Graph и вызовите окно параметров перехода для первого элемента сценария (шаги 13-15 в списке, приведенном ранее). В поле Length (Длина) введите длину перехода 0 и измените значение времени начала для следующего отрезка в поле Start Frame на 731 (рис. 9.13).
Рис. 9.13. Чтобы устранить резкие переходы между отрезками, измените значения в полях Start Frame и Length
Красная фигура, появляющаяся, когда открывается окно параметров перехода, изображает целевое движение. Она важна только при создании перехода к следующему отрезку движения. Желтая фигура, обозначающая исходный отрезок анимации, позволяет при перетаскивании ползунка в разные позиции на шкале времени сравнить относительные положения персонажа во время перехода.
Значение, которое нужно ввести в поле Start Frame в разделе Source Clip (Исходный отрезок), легко определить. Введите в это поле число, которое находится справа в текстовом поле прямо над полем Start Frame. Изменив два значения, щелкните по кнопке Next Transition in Script (Следующий переход в сценарии) - рис. 9.14, - перейдите к следующему отрезку анимации и измените значения в полях Length и Start Frame соответствующим образом.
Рис. 9.14. Пройдите по всем переходам сценария, нажимая на кнопку Next Transition in Script
Подготовка анимации для режима Motion Flow
Прежде чем переносить отрезок движения в Motion Flow Editor, нужно удостовериться в наличии трех условий, при необходимости внеся исправления. Прежде всего, первый столбец ключей должен быть в кадре 0. Даже если по какой-то причине в кадрах, например, с 0 по 50 нет анимации, первый столбец ключей, определенных для всех звеньев Biped при просмотре в окне Track View, должен находиться в кадре 0. Иначе, когда будет включен режим Motion Flow, переходы и длина отрезка анимации могут быть неправильными.
Загрузите файл Betty15.max (рис. 9.1).
Вызовите окно Track View - и вы увидите, что ключи сдвинуты вправо, они не начинаются в кадре 0. Такое иногда случается при сохранении сегмента анимации, а не всего файла Biped (особенно в режиме Motion Flow). Выделите все ключи и перетащите их так, чтобы первый столбец оказался в кадре 0 (рис. 9.2).
Рис. 9.1. Betty готова к объединению всех движений
Во-вторых, нужно убедиться, что в последнем кадре анимации присутствуют ключи, которые полностью закрывают отрезок движения, то есть ключи для всех треков. Тогда при соединении анимации не будут влиять друг на друга. В загруженной анимации эффекта отдачи Betty скопируйте набор ключевых кадров из первого кадра в последний (рис. 9.3).
В-третьих, - и это последнее, что нужно сделать, - добавьте дополнительный столбец ключей в конец отрезка движения. Когда отрезок движения окажется в редакторе Motion Flow Editor, последний кадр отрезка, если после него добавить другой отрезок движения, будет «съеден». Так происходит, даже если переходы не определены. В 3ds max и character studio предполагается, что последний кадр либо дублирует первый (для циклов), либо используется при переходе. Выделите последний столбец ключей и перетащите его в соседний кадр, чтобы создать «подушку» из ключевых кадров (рис. 9.4).
Заметьте, что отрезки движений не обязательно должны быть одной анимацией. Полученный ранее в результате ручного создания ключевых кадров анимаций бездействия, стрельбы и плавания Betty файл был достаточно большим. Он отлично подходит на роль первого отрезка движения, так как включает в себя кадр 0 в исходной позе. В отрезок движения может входить несколько движений; существует веская причина для того, чтобы назвать этот файл отрезков Clipl: в нем были созданы временные теги, начинающиеся с нулевого кадра.
Поворот отрезков движения
После устранения переходов, которые происходят между анимациями движения, нужно проверить ориентацию отрезков. Каждый последующий отрезок начинается в конце предыдущего, а вращение объекта СОМ относительно - оно происходит в зависимости от положения персонажа. Это значит, что иногда нужно повернуть отрезок анимации с помощью того же метода, который использовался при повороте всего движения. Перейдите в кадр 731 и посмотрите на Betty в окнах проекции Тор и Front (рис. 9.15).
Рис. 9.15. Второй отрезок ориентирован неправильно
Вернитесь в окно параметров перехода для первого отрезка движения в сценарии и в поле Angle введите значение 40 (рис. 9.16).
Рис. 9.16. Если ввести значение в поле Angle, то следующий отрезок анимации повернется
Обычно при вращении отрезков движения в окне редактирования перехода правильное значение угла определяется экспериментально.
При вводе значения в поле Angle персонаж поворачивается соответствующим образом (рис. 9.17).
Рис. 9.17. Второй отрезкок можно исправить, повернув все движения после первого отрезка на 40°
Очевидно, что параметры в окне переходов влияют на следующий отрезок движения в сценарии. Однако не забывайте, что все отрезки движений, которые в сценарии следуют за первым, повернуты на 40°, потому что ориентация каждого отрезка определяется по отношению к предыдущему.
Теперь нужно проверить другие отрезки движения и убедиться, что они ориентированы правильно. Чтобы перейти к следующему отрезку движения, не закрывая окно параметров перехода, снова щелкните по кнопке Next Transition in Script
.В сценарии можно перейти к первому кадру каждой анимации, выделив конкретный отрезок движения и щелкнув по кнопке Go To Frame (Перейти к кадру)
, которая находится в свитке Motion Flow.В следующем переходе, от betty_bigshot к betty_kick, поворот будет немного больше: голова Betty должна смотреть вперед, а не под углом (рис. 9.18).
Рис. 9.18. Чтобы исправить ориентацию третьего отрезка, в поле Angle введите значение -8
Если в поле Angle ввести положительное число, то персонаж повернется по часовой стрелке, а если отрицательное - против часовой стрелки.
Перейдите к следующему переходу и перетащите ползунок шкалы времени, чтобы воспроизвести анимацию смерти. Здесь поза ориентирована более или менее правильно, так как Betty падает почти строго назад, перпендикулярно виду сбоку. А следующий переход нужно исправить. Для перехода от betty_death к betty_recovery введите в поле Angle значение -58°, чтобы Betty падала прямо назад и вставала на ноги, смотря вперед (рис. 9.19).
Не заботьтесь об изменении относительной высоты. Это можно исправить с помощью слоев, окончив работу со всеми переходами, сохранив файл в формате BIP и перезагрузив его в новый объект Biped. Обратитесь к следующему переходу. Голова Betty, хотя этого можно и не заметить, повернута слишком сильно, поэтому всю анимацию нужно повернуть на 5°, чтобы голова смотрела вперед (рис. 9.20).
Рис. 9.19. К четвертому переходу нужно добавить угол, равный -58°
Рис. 9.20. Голову Betty нужно повернуть на 5°
В следующем переходе протащите ползунок по шкале времени, просматривая анимацию в окне проекции Front. Голова Betty не смотрит вперед, но перемещение ее ступней и туловища таково, что поворота на -10° будет достаточно, чтобы выровнять ее нужным образом (рис. 9.21).
Рис. 9.21. Отклонение назад нужно исправить, голова Betty должна более явно смотреть вперед
Последний отрезок движения состоит из нескольких анимаций, как и betty_clip01. Перейдите в кадр 1082, где персонаж в окне проекции Front смотрит куда-то вперед. Видно, что движение нужно повернуть еще примерно на-10°, выровняв отрезок правильно (рис. 9.22).
Рис. 9.22. К последнему переходу нужно также применить поворот на -10°
У последнего отрезка движения нет опций настройки перехода, потому что он последний и дальше переходить некуда. Переходы изменены -и анимацию можно сохранять и перезагружать на новый объект Biped. В свитке Biped щелкните по кнопке Save File и воспользуйтесь опцией Save Segment. Чтобы получить правильный диапазон анимации, щелкните по кнопке Active Time Segment и снимите отметку с опции A Keyframe per Frame (Генерировать ключевой кадр в каждом кадре), чтобы избежать добавления ненужных ключевых кадров. Назовите новый файл betty_01.bip (рис. 9.23).
Щелкнув по кнопке Motion Flow Mode и выключив ее, вы вернетесь в обычный режим character studio. Нажмите кнопку Load File - и только что сохраненный файл автоматически появится в поле имени файла. Нажмите кнопку Open - теперь можно продолжать настраивать соединенные анимации.
Редактор Motion Flow Editor нужно рассматривать как инструмент, который временно используется для соединения анимаций друг с другом. Экспортировав анимации в новый файл и загрузив их в объект Biped, вы сможете редактировать их и дальше. Сохранять и перезагружать новый файл в формате BIP нужно еще и потому, что Motion Flow Editor загружает отрезки анимации из определенной папки. Это усложняет процесс доступа других пользователей к той же сцене 3ds max и/или тем же анимациям, так как файл будет искать отрезки движения в прежней папке. Если она не существует и файлов нет, анимации нельзя будет загрузить. Сохранение нового файла в формате BIP устраняет зависимость от положения файла движения.
Рис. 9.23. Не забудьте снять отметку с опции A Keyframe per Frame, чтобы избежать добавления ненужных ключевых кадров
Вот некоторые изменения, которые нужно внести в новый файл формата BIP: переместите все движения персонажа (например, отрезок betty_recovery), добавьте буфер между анимациями и временные теги. Завершив работу над набором анимаций, можно переходить к экспорту.
Режим Motion Flow
Редактор Motion Flow Editor предназначен для создания переходов между движениями и изменения направления файлов движения, если это необходимо. Он идеально подходит для соединения отдельных созданных вами анимаций, завершая аналогию с анимационной папкой. В режиме Motion Flow есть много полезных функций, но в этой главе рассматривается только сшивание (stitching) набора анимаций.
Создание и экспорт актера
Щелкните по кнопке New Actor (Новый актер) в свитке Actor Geometry (Геометрия актера). По умолчанию в качестве имени актеру присваивается название одного из выделенных объектов. Выделите появившееся в поле имя и измените его на Betty (рис. 9.26).
Щелкните в любом месте окна проекции, чтобы сохранить измененное имя, и в свитке Actor Export (Экспорт актера) нажмите кнопку Export Actor (Экспортировать актера). Приложение начнет экспортировать актера в особую программу просмотра, а в нижней части экрана появится синяя полоса состояния. По окончании экспорта в нижней части экрана на панели задач Windows вы увидите ярлык новой программы. Щелкните по нему, чтобы вызвать окно программы просмотра (рис. 9.27).
Рис. 9.25. Загрузите файл Betty06.max и выделите все объекты сетки Betty
Рис. 9.26 Измените имя актера, присвоенное по умолчанию, на Betty
Удерживая нажатой левую кнопку мыши, перетащите курсор в окне программы просмотра, поворачивая камеру вокруг экспортированной Betty. Чтобы перетащить сцену, удерживайте нажатой правую кнопку мыши, а чтобы увеличить или уменьшить масштаб, удерживайте обе кнопки мыши, перемещая указатель вперед и назад. Чтобы переключаться между серым, белым и черным фоном, нажимайте клавишу В.
Рис. 9.27. Просмотр актеров Wile/Tangent осуществляется через Internet Explorer
Исходные параметры камеры обеспечивают отсечение изображения, поэтому издалека Betty выглядит немного странно. Однако в увеличенном виде она выглядит хорошо. По умолчанию только что созданный файл хранится в папке Documents and Settings\[Имя пользователя]\Аррlication Data\WildTangent\Generated Files\Web.. Закройте окно программы просмотра, вернитесь в 3ds max и в свитке Actor Export щелкните по кнопке Preferences (Настройки). Когда появится окно Export Preferences (Настройки экспорта), щелкните по вкладке Web-ready Format (Формат, готовый для Web), а затем - по адресной строке, расположенной под опцией Web-Ready Output (Выход для Web). Введите путь C:\artgc\export (вместо C:\ можно указать любой диск) - рис. 9.28.
Рис. 9.28. В окне Export Preferences определяется, куда попадут экспортируемые актеры
Когда появится предложение создать папку, нажмите кнопку ОК. Теперь каждый раз при экспорте актера в этой конкретной сцене 3ds max его файл окажется в определенной выше папке.
Создание сценария Motion Flow Script
Чтобы соединить все анимации, нужно создать сценарий потока движений, определив тем самым порядок, в котором связываются анимации, и всевозможные переходы или изменения ориентации, которые нужно осуществить. Этот сценарий всегда создается одинаково, поэтому в файле Betty 12.max выполните следующие шаги:
1. Выделите объект Biped.
2. Щелкните по кнопке Motion Flow - она станет активной (фиолетовой) - рис. 9.6.
Рис. 9.6. Создание сценария потока движений начинается с активизации режима Motion Flow
3. Щелкните по кнопке Show Graph - она станет активной.
4. В окне Motion Flow Graph: Betty активизируйте кнопку Create Clip.
5. Создайте столько полей для отрезков, сколько нужно (для Betty создайте восемь) - рис. 9.7.
Рис. 9.7. Создайте поля в окне Motion Flow Graph
Расположите поля отрезков движений так, чтобы их было проще связывать друг с другом. Обычно больше всего подходит ступенчатая конфигурация, но можно применить и любую другую придуманную вами систему. Чтобы переместить отрезки, сначала нужно нажать кнопку Move Clip (Переместить отрезок) - рис. 9.8.
Рис. 9.8. Позиционируйте отрезки движений: активизируйте кнопку Move Clip и определите положение отрезков
6. Щелкните правой кнопкой мыши по пустым полям отрезков движений.
7. Укажите путь к нужным отрезкам движения.
8. В каждое поле отрезка загрузите файл движения. Загрузите файлы betty_*.bip из папки в следующем порядке (рис. 9.9):
Рис. 9.9.Загрузите отрезки движений в окне Motion Flow Graph
betty_clip01;
betty_bigshot;
betty_kick;
betty_death;
betty_recovery;
bettyjog;
bettyjbackpedal;
betty_specials.
9. Когда все движения будут загружены, обратите внимание на раздел Scripts (Сценарии).
10. Активизируйте кнопку Define Script, щелкнув по ней.
11. Выберите пункт Create new script (Создать новый сценарий) и нажмите кнопку ОК (рис. 9.10).
Рис. 9.10. Создайте новый сценарий потока движений
12. Щелкните по каждому полю отрезка в том порядке, в котором они должны быть соединены друг с другом. Порядок для отрезков Betty таков (рис. 9.11):
betty_clip01;
bettyjbigshot;
betty_kick;
betty_death;
betty_recovery;
bettyjog;
betty_backpcdal;
betty_specials.
Рис. 9.11. Чтобы определить порядок воспроизведения отрезков в сценарии, щелкните по каждому из них
13. Закройте окно Motion Flow Graph, щелкните по имени отрезка в списке под названием сценария справа - оно будет выделено (синим).
14. Щелкните по кнопке Edit Transition (Редактировать переход).
15. Отредактируйте параметры перехода (рис. 9.12).
Рис. 9.12. Определите сценарий потока движений и настройте переходы между отрезками
Прежде чем устанавливать экспортер WildTangent,
Прежде чем устанавливать экспортер WildTangent, прочитайте раздел Known Issues файла Readme на компакт-диске, чтобы убедиться, что параметры вашей системы удовлетворяют требованиям.
Если проблем совместимости не должно возникнуть, закройте все программы, включая 3ds max. Откройте папку Demos\WT на компакт-диске и запустите файл установки wtwdinstFull. Пакет Web Driver компании WildTangent будет установлен на ваш компьютер. Эта программа позволяет запускать содержимое, созданное на патентованной платформе WildTangent.
Затем запустите файл WildTangentMax4Plugins, чтобы установить сам экспортер 3ds max. После этого снова запустите 3ds max. Откройте панель Utilities, щелкните по кнопке More (Еще), выделите в списке утилиту WildTangent Actors и нажмите кнопку ОК (рис. 9.24).
Рис. 9.24. После установки к экспортеру Wile/Tangent можно получить доступ на панели Utilities
Загрузите файл Betty16.max и затем выделите объекты сетки Betty (рис. 9.25).
Без сомнения, ничто так не
Без сомнения, ничто так не достойно вознаграждения, как анимация персонажей. В этой книге я давал советы, указывал тонкости, приводил инструкции в надежде, что вы сможете поверить в свою способность «оживить» персонажи. Программы 3ds max и character studio - отличные инструменты, и с каждой новой версией они становятся все лучше. Этот факт, а также рост мощности компьютеров и игровых приставок открывают новые горизонты анимации персонажей игр в реальном времени. Я не сомневаюсь, что в ближайшие пять лет мы увидим персонаж, состоящий из 10000 полигонов, невероятно быстро анимируемый, с тоннами пиротехники и других эффектов.
Вам же как аниматору персонажей нужно будет извлечь пользу из любого технологического нововведения, подчинить его своей творческой воле. Анимация персонажей всегда будет одной из самых сложных и наиболее вознаграждаемых форм компьютерной графики. Чтобы лучше ее освоить, нужно работать, экспериментировать тысячи часов. Какой бы инструмент вы ни использовали, над каким бы проектом ни работали, не останавливайтесь на достигнутом (если время позволяет). Ищите более интересную позу, динамичное, чистое движение. В каждом из нас заложена способность совершенствоваться.