Можно обойтись и без ключей и просто сохранить текущее положение кривых в качестве начального, чтобы анимация начиналась с уже упавшими на свое место волосами. Именно это мы сейчас и сделаем.
Проиграйте анимацию примерно до пятисотого кадра, пока волосы не успокоятся на своих местах. Выберите кривые (Hair=>Convert Selection=>to Follicles) и выполните операцию Hair=>Set Start Position=>From Current.
![](/images/openglorg10/openglorg10-698.png)
Теперь начальное состояние волос нас полностью устраивает, однако при проигрывании анимации волосы ведут себя просто возмутительно. Казалось бы, они должны остаться около начального положения, так как мы зафиксировали их в этом положении, когда кривые находились в относительном покое. Вместо этого они инфантильно свисают как …, ну, скажем, как спагетти, и никакие усилия по увеличению упругости не могут привести их в чувство.
Все дело в коварном атрибуте Sample Density, значение которого равно трем. Как только мы сохранили текущее положение как начальное, все стартовые кривые унаследовали количество точек с текущего положения. Соответственно, количество точек на стартовых кривых утроилось, однако значение Sample Density для всех кривых по-прежнему осталось равным трем, поэтому количество точек на самих волосах еще раз утроилось. Нужно лишь не забыть немедленно вернуть Sample Density в единицу после определения нового стартового положения кривых.
Выберите hairSysteml, затем Hair=>Convert Selection=>to Follicles, и в Channel Box задайте Sample Density=1.
Примечание. Количество сегментов на остаточных кривых осталось прежним.
Теперь кривые остаются в покое.
Сохраните сцену (headModelHairDress.ma).
Если вас смущает ширина прически (височные области), выберите сферу hairConstraintl и уменьшите ее размер вдоль оси X (scaleX=5.2).
![](/images/openglorg10/openglorg10-699.png)
рммр
Не забудьте снова выбрать кривые (Hair=>Convert Selection=>to Follicles) и выполнить операцию Hair=>Set Start Position=>From Current.
Все дальнейшие усовершенствования прически могут носить индивидуальный характер. Имеет смысл выбирать отдельные кривые и редактировать их длину и, может быть, упругость. Ничто не мешает воспользоваться приведенным выше бесцеремонным подходом и отредактировать форму стартовых кривых вручную.
Пассивные кривые. Увеличение густоты прически Существует два способа увеличивать густоту волосяного покрова.
Первый состоит в увеличении густоты самих пучков, повторяющих форму динамических кривых. Однако в ситуациях, когда кривых не так уж много, деление на пучки становится заметным и возникает необходимость в увеличении количества самих пучков.
Поэтому второй способ состоит в увеличении количества волос при помощи пассивных кривых (Passive Curves). Такими кривыми можно дополнительно «засеять» поверхность между уже существующими динамическими кривыми. Основная особенность пассивных кривых в том, что их не надо анимировать динамикой: они лишь повторяют форму соседних, динамических (активных) кривых. Их главное преимущество - что их форму не надо моделировать: она автоматически получается, за счет усреднения формы соседних кривых. Второе преимущество: на просчет их формы не надо тратить дополнительное время. Их можно отдаленно сравнить с промежуточными формами blendShape между соседними активными кривыми.