Развиваем дебютную идею
Продолжим совершенствование навыков создания простейших анимаций в автоматическом режиме, заставив шахматные фигурки двигаться по доске и разыгрывать простейший дебют. Особенностью этой анимации явится то, что ключи будут установлены для многих объектов сцены. Кроме того, мы научимся производить расчет времени анимации и выполнять еще ряд важных операций, в частности устанавливать момент начала движения объекта и корректировать траекторию его перемещения, задавая промежуточные точки.
Выполните следующие действия:
1. Перезапустите max 7.5 и загрузите сцену, изображающую шахматные фигуры, расставленные на доске в исходных позициях. Такую сцену с необходимыми материалами можно найти под именем Shahmati01.max в папке Scenes\ Glava_14 компакт-диска, прилагающегося к книге. Сохраните файл с инкрементированием имени.
2. Произведем простейший расчет времени. Стандартная длительность временного сегмента анимации составляет 100 кадров. При опять же стандартной скорости воспроизведения — 30 кадров в секунду — анимация такого объема будет длиться 3,3 секунды. Сколько ходов шахматных фигур имеет смысл моделировать за это время? Наверное, не более 5—6, чтобы продолжительность каждого хода составляла от 1/2 до 2/3 секунды. Если заставить фигуры двигаться быстрее, то при воспроизведении подобной анимации трудно будет уследить за их мельканием. Итак, выберем в качестве базовой продолжительности одного хода величину 20 кадров, то есть 2/3 секунды.
3. Не мудрствуя лукаво, разыграем запомнившийся мне с ранних лет своим легкомыслием дебют под названием «Детский мат». Начинается он со знаменитого хода... Правильно, е2-е4! Итак, щелкните на кнопке Auto Key (Автоключ), чтобы включить режим автоматической анимации. Выделите пешку на поле е2 (это должен быть объект Peshka12). Перетащите ползунок таймера анимации к отметке кадра № 20 или просто введите число 20 в поле Current Time (Текущее время) группы инструментов управления анимацией и нажмите клавишу Enter. Ползунок при этом передвинется в нужную позицию автоматически. Переместите выделенную пешку на поле е4, как показано на рис. 16.14. Это удобно произвести в окне вида сверху, но несложно сделать и в окне проекции Perspective (Перспектива), если пользоваться габаритным контейнером преобразования в виде тройки координатных векторов.
Рис. 16.14. Гроссмейстер сделал ход е2-е4!
4. Итак, первый ход сделан. Черные, разумеется, отвечают не менее знаменитым е7-е5. Вы, наверное, думаете, что для анимации этого хода следует просто переместить ползунок таймера к отметке кадра № 40 и передвинуть пешку, стоящую на клетке е7, на поле е5? Попробуйте так и сделать, а затем выключить режим анимации и воспроизвести ее в окне проекции. Результат, однако, будет не тем, на какой вы рассчитывали. Обе пешки начнут движение одновременно, только первая достигнет своей конечной цели за 20 кадров, а вторая будет двигаться в два раза медленнее и перейдет на поле назначения за 40 кадров. Дело в том, что max 7.5, если ему не указано иного решения, всегда устанавливает для анимируемого объекта первый ключ анимации в кадре № 0. Нам же требуется, чтобы черная пешка стояла неподвижно вплоть до кадра № 20, а затем начала двигаться и к сороковому кадру переместилась на отведенное ей поле. Отмените ошибочные действия, если вы их произвели. Итак, чтобы задать момент начала движения черной пешки, нам следует установить для нее первый ключ анимации в кадре № 20. Такой ключ можно назвать ключом фиксации, так как он действительно фиксирует текущее значение анимируемого параметра, не позволяя ему меняться до заданного момента. Чтобы создать такой ключ, выделите пешку на поле е7 (это должен быть объект Peshka05) и, не перетаскивая ползунок таймера с отметки кадра № 20, щелкните на ползунке правой кнопкой мыши. Появится окно диалога Create Key (Создать ключ), показанное на рис. 16.15. Это окно диалога позволяет создавать ключи анимации трех стандартных преобразований объекта: перемещения, поворота и масштабирования.
Рис. 16.15. Окно диалога Create Key содержит средства для создания ключей анимации преобразований перемещения, поворота и масштаба
ЗАМЕЧАНИЕ Существование окна Create Key (Создать ключ), назначение которого — принудительно создавать ключи в нужных кадрах, явно говорит о том, что автоматический режим анимации, помимо достоинств, имеет и недостатки. Именно желание преодолеть эти недостатки и привело разработчиков к реализации режима принудительной анимации. |
5. По умолчанию в окне установлены флажки всех трех преобразований: Position (Положение), Rotation (Поворот) и Scale (Масштаб). Мы собираемся создать только ключ анимации преобразования перемещения, поэтому сбросьте флажки Rotation (Поворот) и Scale (Масштаб). В счетчике Source Time (Опорное время) указывается номер кадра, из которого будут взяты ключевые значения анимируемых параметров объекта (в данном случае — значения его координат). По умолчанию в этом счетчике указывается номер текущего кадра. Так как нам требуется, чтобы пешка в кадре № 20 сохраняла свое исходное положение, не меняйте значения этого параметра. В счетчике Destination Time (Время создаваемого ключа) задается номер кадра, для которого требуется создать ключ анимации. Нас устраивает указанный в этом счетчике по умолчанию номер текущего кадра — 20, поэтому просто щелкните на кнопке ОК. Ключ анимации перемещения пешки с ее текущими координатами в кадре № 20 создан, и теперь она на интервале с нулевого по двадцатый кадр будет оставаться на месте.
6. Перетащите ползунок таймера к отметке кадра № 40, а еще лучше просто введите число 40 в поле Current Time (Текущее время) и нажмите клавишу Enter. Переместите черную пешку с клетки е7 на клетку е5. Обратите внимание на появление ключа в виде красного квадратика на отметке кадра № 40 строки треков. Чтобы убедиться, что все пока идет, как нужно, выключите режим анимации, щелкнув на кнопке Auto Key (Автоключ). Воспроизведите анимацию в окне проекции. Для этого сначала щелкните на кнопке Go to Start (Перейти в начало), чтобы перейти к начальному кадру сегмента анимации. Затем щелкните на ползунке таймера анимации и не спеша перетаскивайте его вправо, следя за тем, что происходит в активном окне проекции. Вы увидите, как белая пешка переместится с клетки е2 на е4 за первые 20 кадров, с нулевого по двадцатый, а черная проделает свое движение за вторые 20 кадров, с двадцатого по сороковой.
7. Продолжим создание анимации. Установите в качестве текущего кадр № 40. Дебютная идея «детского мата» подразумевает, что теперь белые должны сделать ход слоном fl-c,4. Выделите белого слона на клетке f1 (это должен быть объект Slon03) и установите для него ключ преобразования Position (Положение) в текущем кадре № 40, действуя совершенно аналогично тому, как мы создавали ключ положения для черной пешки в п. 5.
ЗАМЕЧАНИЕ Заметьте, что для принудительного создания ключей с помощью окна диалога Create Key (Создать ключ) совершенно не требуется, чтобы был включен режим анимации. |
8. Включите режим анимации, щелкнув на кнопке Auto Key (Автоключ). Установите в качестве текущего кадр № 60 любым известным вам способом и переместите объект Slon02 на клетку с4. Выключите режим анимации и попробуйте воспроизвести ее в окне проекции. Слон должен начинать двигаться только с момента кадра № 40 и достигать нужной клетки к кадру № 60. Так как время, отведенное на движение слона, то же, что и у пешек, а переместиться ему требуется на большее расстояние, то и двигаться он будет быстрее пешек. Об этом позаботится mах .7.5. Обратите внимание на то, что по какой бы траектории вы ни перемещали слона с исходной клетки на конечную, двигаться при воспроизведении анимации он будет строго по кратчайшему расстоянию, так как для mах 7.5 имеют значение только координаты начальной и конечной точек движения, запомненные в виде ключей анимации. С этим важным условием нам еще придется столкнуться ниже. Попробуйте также поочередно выделить все три объекта и проследите за ключами анимации в строке треков. Теперь ключи анимации установлены нами уже для трех объектов: Peshka12, Peshka05 и Slon03. Для объекта Peshka12 ключи в виде красных квадратиков будут располагаться в кадрах № 0 и № 20, для Peshka05 — в кадрах № 20 и № 40, а для Slon03 — в кадрах № 40 и № 60. На рис. 16.16 показано, как должна выглядеть наша сцена в окне проекции на данный момент.
Рис. 16.16. Дебютная идея развивается: передвинуты уже три фигуры
9. Предположим, что играющий черными фигурами настолько туп, что не замечает готовящейся ловушки и собирается сделать ход конем Ь8-с6. Просто ход конем позволит нам рассмотреть такую особенность анимации перемещения объекта, как задание требуемой траектории. Ведь конь должен перепрыгнуть через стоящие перед ним фигуры, а не пройти сквозь них, хотя для бестелесных виртуальных шахматных фигур проходить друг сквозь друга и не составляет никакого труда. Итак, установите в качестве текущего кадр № 60, выделите черного коня на клетке Ь8 (объект-группа Коп'01) и создайте для него ключ положения, используя окно диалога Create Key (Создать ключ), как было описано выше. Это заставит коня до момента кадра № 60 стоять на месте. Затем включите режим анимации, перетащите ползунок таймера к отметке кадра № 80 и переместите коня на клетку с6 по любой траектории. Как мы уже говорили, форма этой траектории не имеет никакого значения: все равно конь будет перемещаться на отведенное ему поле по кратчайшему пути. Чтобы убедиться в этом, выключите режим анимации и несколько раз перетащите ползунок таймера влево-вправо.
10. Для исправления ситуации переключитесь на кадр № 70, соответствующий середине интервала перемещения коня. Включите режим анимации и в окне вида слева или спереди приподнимите объект Коп'01 вверх, заставив его зависнуть над остальными фигурами, как показано на рис. 16.17. Если теперь опять выключить режим анимации и потаскать ползунок таймера влево-вправо, вы увидите, что конь теперь движется с исходной клетки на конечную не по кратчайшему пути, а по дуге, взлетая при этом над другими фигурами. Обратите внимание, что если выделить коня, то в строке треков будут видны квадратики трех ключей анимации: в кадрах 60, 70 и 80.
Рис. 16.17. Черный конь в кадре № 70 зависает в воздухе
11. К сожалению, время активного сегмента анимации неумолимо приближается к концу, и мы можем позволить себе сделать еще только один ход, конечно же, белым ферзем: d1-f3. Сделайте текущим кадр № 80. Выделите белого ферзя (объект Ferz02) и с помощью окна диалога Create Key (Создать ключ) создайте для него ключ, фиксирующий текущее положение этой фигуры в кадре № 80. Затем перейдите к кадру № 100, включите режим анимации и сделайте ход, то есть переместите ферзя с клетки d1 на f3. Выключите режим анимации. Готово! Итоговое расположение фигур нашей анимации, уже не столь простой, как предыдущая, показано на рис. 16.18. Воспроизведите анимацию, вернувшись к начальному кадру и медленно перетаскивая ползунок таймера. Можете попробовать воспроизвести ее и в окнах проекций, вот только вряд ли удастся сделать это без пропуска кадров в тонированном режиме отображения. В заключение сохраните файл с только что созданной анимацией. Сравните то, что у вас получилось, с готовой анимацией, которая имеется в папке Scenes\Glava_16 компакт-диска, прилагающегося к книге, под именем Shahmati02.max.
Рис. 16.18. Третий ход белых так и остался без ответа
Если у вас возникнет желание продолжить игру в виртуальные шахматы, то увеличьте продолжительность сегмента анимации. Для этого щелкните на кнопке Time Configuration (Настройка временных интервалов) или щелкните правой кнопкой мыши на любой из кнопок управления анимацией, чтобы вызвать окно диалога Time Configuration (Настройка временных интервалов). Введите в счетчик End Time (Время окончания) окна диалога, где по умолчанию значится величина 100, новое значение последнего номера кадра, скажем, 200. Тем самым вы увеличите продолжительность анимации почти до 6,6 секунды, сохранив все уже созданные ключи, и обеспечите себе возможность завершить шахматную партию к собственному удовольствию.