|   Регистрация (Registration)   Вход  



1 ! 2
Шаг 6: Теперь выделяем второй нод PMotionInheritance, который соединен с группой Tornado 2. Изменяем значение параметра Inheritance на 90%, Type на Cylinder, Radius на 300, Cylinder Axis на Y, Cylinder Height на 500.
Для Distance Gradient меняем левый узел на светло серый (R = 185, G = 185, B = 185). А правый на темно серый (R = 70, G = 70, B = 70).
Cylinder Gradientделаем чем-то похожим на Cylinder Gradient в настройках предыдущего нода PMotionInheritance. Только смещаем расположение узлов вправо и серый цвет делаем немного другим (R = 80, G = 80, and B = 80). Оставляем Scale Gradient как есть.
На заметку: вам не обязательно использовать точно такие же настройки градиента как в уроке, экспериментируйте со своими настройками.
Шаг 7: Досягнув земли торнадо подымает вверх пыль, дальше мы будем симулировать этот эффект. Создаем объект Plane, который будет у нас имитировать землю (Objects=>Primitive=>Plane).
В настройках объекта Plane устанавливаем следующие значения : Width = 2500, Height = 2500. Переименовываем объект Plane в Floor.
Создаем нод PPass (Thinking Particles=>TP Initiator=>PPass) и перетягиваем на него группу Tornado Group. Нам также понадобится нод PGetData. Создаем его (Thinking Particles=>TP Helper=>PGetData). Соединяем выход Particle нода PPass со входом Particle нода PGetData.
Создадим несколько нодов, которые нам понадобятся в дальнейшем: Vector2Reals (Xpresso=>Adapter=>Vector2Reals), Compare (Xpresso=>Logic=>Compare), PDie (Thinking Particles=>TP Standard=>PDie),PStorm (Thinking Particles=>TP Generator=>PStorm), а также перетянем объект Floor, для создания его нода.
Нод PGetData берет всю информацию группы частиц, которая ему присвоена. Для данного выражения нам понадобится только информация о позиции частиц, соответственно создаем выход Position у нода PGetData. Соединяем выход Position с входом нода Vector2Reals.
Теперь мы должны сравнить позицию частиц по оси Y с позицией по оси Y объекта Floor. Создаем выход Position. Y для нода Floor. Соединяем выход Position. Y с входом Input 2 нода Compare, а выход Y нода Vector2Reals с входом Input 1 нода Compare .
Выбираем нод Compare и в его настройках изменяем параметр Function на <= (меньше либо равно). Теперь если позиция частиц по оси Y будет меньше либо равна позиции объекта Floor по оси Y, нод Compare на выходе будет давать значение True.
Мы хотим, чтобы, когда частицы торнадо коснуться пола - они исчезали, а вместо них образовывались новые - имитирующие пыль. Создаем вход On для нодов PDie и PStorm. Соединяем выход Output нода Compare с обоими входами On.
Для того чтобы убить частицы торнадо группа частиц должна быть присвоена ноду PDie, дабы тот знал какие частицы убивать. Соединяем выход Particle нода Tornado Group PPass с входом Particle нода PDie. Также соединяем выход Position нода PGetData со входом Emitter Position нода PStorm.
Шаг 8: Выбираем нод PStorm и вводим значения для следующих параметров: Birth Type = Shot, Shot = 10, Life = 20 F, Life Variation = 50%, Speed = 250, Speed Variation = 90%, X FOV = 180, Y FOV = 180.
Последний PStorm не имеет никакой привязки, для этого создадим объект Null Object и переименуем его в Alignment. Выделяем и перетаскиваем объект Alignment в поле редактора XPresso, что позволяет создать нод объекта Alignment. Создаем выход Global Matrix для только что созданного нода.
Теперь создаем выход Emitter Alignment для нода PStorm. Соединяем выход Global Matrix нода Alignment со входом Emitter Alignment нода PStorm. Выделяем объект Alignment И поворачиваем его на 90 градусов по оси P.
Шаг 9: Присваиваем частицам группу. В Thinking Particles Settings dialog добавляем новую группу. Переименовываем ее в Dirt и кликнув правой кнопкой мыши вызываем меню, где выбираем пункт Settings. Меняем цвет частиц на коричневый.
Создаем нод PGroup (Thinking Particles=>TP Standard=>PGroup) и активируем выход Particle Birth для нода PStorm. Соединяем выход Particle Birth со входом Particle нода PGroup.
Перетягиваем группу Dirt на нод PGroup.
Шаг 10: Все что нам осталось сделать - это создать объект за которым будут следовать частицы. Создаем Null Object и переименовываем его в Follow. Создаем нод объекта Follow, а также нод PPositionFollow (Thinking Particles=>TP Dynamic=>PPositionFollow).
Выделяем нод PPositionFollow и меняем параметр Type = Spring и параметр Spring Speed = 10%. Активируем вход Follow Position.
Для нода Follow создаем выход Global Position. Соединяем выход Global Position со входом Follow Position нода PPositionFollow. Также соединяем выход Particle нода Tornado Group PPass со входом Particle нода PPositionFollow.
Теперь, если мы будем двигать объект Follow в плоскости XZ , хвост торнадо будет следовать за ним. В файле проекта, который вы себе скачали, имеется еще один XPresso тэг у объекта Follow. Он содержит выражение, которое перемещает объекты Emitters и Motion вслед за объектом Follow в пределах +/- 500 юнитов в плоскости XZ.

1 ! 2


  К списку уроков

 новости   plugin db   а-чем-а-как   форум   ссылки   о проекте  
Вся ответственность за содержание материалов, опубликованных на сайте, лежит на их авторах.
Использование материалов, опубликованных на сайте, разрешено только со ссылкой на источник.

Copyright © 2003-2011 C!NEMAXiMUS