Этот метод встречается не так уж часто, но иногда его применение бывает эффектно. У нас есть космический корабль, столкнувшийся с крутой инопланетной цивилизацией, которая его заметила и быстренько взяла и лазером на кусочки порезала. Нам надо показать, как луч проходит по кораблю, оставляя за собой светящийся оплавленный металл.
Итак, для начала о корабле. Пусть это будет несколько менее примитивно-тривиальное, чем просто Box, возьмите, например, что-то типа этого.
Теперь создайте луч. Луч будет простенький - просто Volume Light. Долго тут на этом останавливаться не буду - просто создайте Target Direct источник света с Volume Light, установите источник на месте инопланетного корабля (у нас он будет за пределами камеры) и назовите его как-нибудь, например Laser.
Теперь нам надо создать путь движения луча. Это уже сложнее, т.к. тут вам надо вспомнить из геометрии, как строятся сечения. К счастью, сечения MAX хорошо построит за вас. Для этого существует такая вещь, как Section (сечения). Сделайте Create/Spline и выберите Section. Создайте плоскость сечения (все равно, какая по размеру). Теперь перемещайте ее и разверните так, чтобы она делила ваш объект (истребитель) так, как вам нужно. Теперь нажмите кнопку Create Shape. Все - путь движения луча создан! (Лучше еще бы взять и отрезать часть пути, но сейчас мы этим заниматься не будем).
Если нужно, измените количество кадров, которые вы хотите получить в своей анимации (нажмите на одну из кнопок типа Play внизу и поставьте в полученном окошке Frames). Теперь цель нашего источника света Laser.Target надо передвигать по тому пути движения луча, который мы нарисовали ранее. Выделите Laser.Target, откройте вкладку Motion и нажмите на кнопку Trajectories. В появившемся списке нажмите на Convert From (получить траекторию из сплайна) и укажите на нашу траекторию.
Проиграйте анимацию - это уже выглядит неплохо - луч перемещается по поверхности кубика, но не оставляет за собой следа. А нам хочется, чтобы "края разреза" оставались оплавленными. Для этого возьмем Particle System - Super Spray и заставим его оставлять свой particle'ы на поверхности кубика по мере движения.
Установите в произвольном месте Super Spray (Create/Particle Systems). Теперь надо, чтобы он двигался вместе с лучом. Для этого прилинкуйте эмиттер (источник частиц) к Target'у луча (нажмите кнопку , выделите эмиттер, нажмите кнопку мыши и подтащите пунктируную линию к Target'у луча.)
Все отлично - эмиттер теперь двигается вместе с точкой прожигания, но почему-то его частицы передвигаются вместе с ним! Это не баг 3DSMAX2, это фича :) Называется она Motion Inheritance (наследование движения) и связана она с тем, что частицы могут наследовать движение своего эмиттера, передвигаясь вместе с ним. Нам сейчас это не нужно - поэтому откройте вкладку Motion Inheritance в свойствах эмиттера и укажите там 0. Все - дело осталось за малым :) Во вкладке Particle Type укажите скорость равную нулю (это для того, чтобы частички не улетали, а оставались на месте, создавая тем самым некий ободок), и чтобы частички оставались и генерировались в течении того времени, которое вам нужно (например, "обрезав" жизнь частички до 10-20 кадров вы получите быстро остывающий металл).
Источник: http://www.rpm-16.h11.ru/lessons/11/index.php |