Вернуться   Foxter.ru > Графика > 3D / Трехмерная графика > Уроки

 
 
Опции темы Опции просмотра
Старый 06.03.2007, 00:43   #42530  
Хранитель
 
Аватар для Bloke
 
Репутация: 279616Репутация: 279616Репутация: 279616Репутация: 279616Репутация: 279616Репутация: 279616Репутация: 279616Репутация: 279616Репутация: 279616Репутация: 279616Репутация: 279616
Регистрация: 24.06.2006
Адрес: КК
Сообщения: 424
По умолчанию Создание столкновения

Часть 1: Создание столкновения


Система частиц Particle Flow, которая управляет событиями, позволяет Вам создавать очень гибкую анимацию частиц. Эта система очень гибкая, в смысле, что Вы не должны определять свойства частиц и их действия, для которых необходимо явно указывать ключевые кадры, как это было в более ранних системах частиц. В Particle Flow, Вы можете создавать последовательность событий, которые вызываются условиями. Когда условия изменяются или обновляются, это также происходит и с системою частиц. Это облегчает корректировку движений и свойств, без применения “сложного кода” к этой системе. Например, если Вы создаете ряд событий, которые вызывают единственное столкновение частицы, то что, если Вы добавите больше частиц? С системой, которая управляет событиями, не имеет значения, сколько раз это событие будет вызвано.

Один из способов представить систему частиц, которая управляет событиями, это вспомнить такое устройство, как Rube Goldberg или домино, выстроенное вряд: Одно событие вызывает следующее, и так далее. Точно так же и в этой обучающей программе, Вы используете единственное событие, чтобы вызвать ряд сложных событий. В этом случае, объект астероида разбивается о поверхность планеты. Когда астероид сталкивается с поверхностью, генерируются события, которые создают шаровую молнию, фрагменты со следами дыма, ударную волну, вторичные воздействия, и так далее.

Откройте файл сцены:

Откройте asteroid_impact_start.max.

Кроме планеты и объектов астероида, эта сцена содержит две деформации пространства: Drag и Gravity. Так же в сцене находится сферический дефлектор (отражатель) (SOmniFlect01).

Создайте систему частиц

Чтобы начать, Вам необходимо создать источник потока: астероид, который будет нарисован по направлению к поверхности планеты.

1. В области просмотра Left, создайте сферический объект PF Source, с диаметром 1000 единиц. Выключите Show: Logo.



2. Используйте инструмент Align, чтобы центрировать этот эмиттер по отношению к объекту Planet.



Это установит частицы на некотором расстоянии поверхности.

По умолчанию, система содержит некоторые операторы, которые Вам не нужны, поэтому Вы их исключите.

3. Откройте Particle View. Вы можете сделать это из вкладки Modifier для объекта PF Source или нажав клавишу 6.

4. В Particle View, щелкните оператор Render в глобальном событии объекта (PF Source 01) и установите Type к None.

Эта сцена не подходит для рендеринга; она - только для того, чтобы продемонстрировать установку системы частиц. Перед рендерингом, Вы должны были бы определить различные формы и материалы для множества событий, которые не затрагиваются в этой обучающей программе.

5. Удалите операторы Speed, Rotation и Shape в событии birth: Event 01.



По умолчанию, событие рождения (birth event) содержит оператор Position Icon, который находится там, откуда Вы начнете излучать частицы астероида.

6. Выберите оператор Position Icon и установите его метод location к Edges.

Это запустит частицы с внешних границ значка, а не в пределах его объема.

7. В группе Uniqueness, установите Seed к 12517.



Это размещает начальную частицу таким образом, чтобы она ударялась о планету в нужном местоположении, около источника света.

Анимация относительно длинная (если быть точным, то 1000 кадров), поэтому Вы откорректируете параметры оператора Birth.

8. В операторе Birth, установите Emit Stop к 700 и Amount к 1.



Это заставит одну частицу зародиться между кадром 0 и 700; а именно, в кадре 0. В остальных кадрах, начальная частица породит другие частицы.

Затем, Вы определите, какой будет геометрия астероида. В этой сцене Вы найдете объект Asteroid, простой мэш с модификатором Noise. Модификатор анимирован и принимает в каждом кадре новую форму. Эта процедурная генерация мэша может быть полезна, когда Вы хотите использовать несколько уникальных астероидов, не создавая при этом отдельные мэши для каждого из астероидов.

9. Добавьте оператор Shape Instance, под оператором Position Icon и установите объект Asteroid, в качестве объекта на который ссылаются.



Совет: Так как при открытии этой сцены объект Asteroid находится вне видимости областей просмотра, вероятно Вам будет легче выбрать этот объект, использовав диалог Pick Object: Когда Вы нажмете кнопку Particle Geometry Object в операторе Shape Instance, нажмите клавишу H и затем дважды щелкните в списке объект Asteroid.

10. (Дополнительный шаг), Посмотрите на параметры Shape Instance; сначала, Scale %. Вместо того, чтобы добавлять отдельный оператор Scale, Вы можете установить относительный масштаб для экземпляра геометрии, так же и с Variation, чтобы рандомизировать масштаб с каждой последующей частицей. Соответственно, не бойтесь корректировать любой из параметров. Кроме того, если бы Вы должны были использовать несколько астероидов, но оставили бы Acquire Current Shape, приведенная в качестве примера геометрия всегда выглядела бы одинаково. Включив этот параметр, оператор Shape Instance будет использовать текущее состояние геометрии, назначая ее на недавно родившуюся частицу. Это не дает Вам возможность создавать уникальный объект для каждой частицы. Но для этой обучающей программы, Вы запускаете только одну первоначальную частицу, таким образом Вы можете не использовать эту опцию.

Кстати, проще визуализировать то, что происходит, когда Вы фактически можете видеть форму объекта.

11. Выберите оператор Display и установите Type к Geometry.

Используйте гравитацию, чтобы направить астероид на планету:

В данный момент, частица реально ничего не делает. Чтобы заставить ее упасть на объект планеты, все, что Вы должны сделать, это - определить деформацию пространства Gravity, как силу, которая применяется к этой частице. Чтобы создать этот эффект, в этой сцене Вы найдете сферическую Gravity, выровненную к объекту планеты.

1. Добавьте оператор Force под оператор Shape Instance и назначьте Gravity01, в качестве Force Space Warp. Также, установите Influence % к 100.0.



Если Вы запустите анимацию, Вы увидите мэш, падающий на объект планеты. Этот мэш должен упасть на поверхность планеты в месторасположения источника света (Direct01.Target), видимый в области просмотра Perspective.


Мэш астероида ударяет поверхность планеты около источника света (область просмотра Perspective).

Чтобы иметь более естественный вид, астероид должен падать, вращаясь. Вы можете достигнуть этого с помощью оператора Spin. Оператор Spin похож на оператор Rotation, за исключением явного управления ориентацией, вместо этого, он применяет угловую скорость к частице. Поэтому, иногда Вы будете использовать оператор Spin, вместе с оператором Rotation, но не в этом случае

2. Продолжайте пополнять событие, добавьте оператор Spin под оператором Force.

Его параметры позволяют Вам управлять угловой скоростью на различных осях. Но в этой сцене, Вам только необходимо придать частице толчок в случайном направлении.

3. Проверьте, установлен ли Spin Axis к Random 3D, а затем установите Spin Rate к 90 со значением Variation в 30.



4. Это заставит частицу вращаться каждую секунду на 90 градусов, плюс или минус 30 градусов.

Щелкните правой кнопкой заголовок Event 01 и переименуйте его на CreateAsteroids.



Это событие в данный момент только зарождает частицы астероида и заставляет их притягиваться к объекту планеты. Что касается количества частиц, то для Вас, и для простоты применения, в этой обучающей программе мы рекомендуем использовать единственную частицу.

Создайте столкновение:

Следующий шаг должен заставить частицу астероида сталкиваться с поверхностью планеты, в этом месте он разбивается и вызывает ударную волну.

Эта сцена включает сферический дефлектор (отражатель), который примерно соответствует размеру поверхности объекта планеты. Причина для использования этого дефлектора, вместо дефлектора на основе мэша - из-за скорости и простоты. Дефлекторы на основе мэша, такие как UDeflector, должны проверять многоугольники на пересечении, что медленнее, чем проверка ограниченной сферы. Так как объект планеты - это сфера, то все, что необходимо для более быстрых вычислений столкновения - это выравнивание их центров и соответствие масштаба. В этой сцене, все это уже сделано.

1. Добавьте тест Collision, в самый низ события CreateAsteroids.



Поскольку столкновение вызовет рождение частиц, Вы могли бы применить тест Collision Spawn, однако вместо него Вы будете использовать тест Collision, таким образом Вы сможете взглянуть на его добавленную гибкость.

2. Щелкните этот тест, чтобы выбрать его и в его параметрах, назначьте в качестве дефлектора SOmniFlect01.

Оставьте остальные элементы управления Collision в их значениях по умолчанию, но обратите внимание на то, что этот тест содержит довольно небольшое количество функциональных возможностей. Частицы не должны проверять True только при столкновении. Фактически, Вы можете иметь частицы, которые проверяют True, когда они собираются сталкиваться с дефлектором, или только, если они замедлились или набрали скорость после столкновения.

Дальше, Вам необходимо будет новое событие, чтобы перейти к столкновению частиц. Это событие выполнит несколько различных функций. Сначала оно породит частицы, генерируя группу частиц из единственного астероида. Затем оно разобьет поток частиц на некоторые зарождающиеся фрагменты, которые полетят в атмосферу, а другие, сформируют ударную волну, которая пройдет по поверхности планеты.

3. Создайте новый тест Spawn, отдельно от события CreateAsteroids.



Также будет автоматически создан и оператор Display.

Измените название нового события на RocksShockwave и свяжите его с тестом Collision, когда он создаст камни и взрывную волну.



5. В параметрах теста Spawn, установите Offspring # к 200 с установкой Variation % в 15.

6. В группе Speed, измените Variation % к 30 и угол Divergence к 60.



Таким образом, столкновение астероида с планетой сгенерирует приблизительно 200 новых частиц, скорость каждой из этих частиц будет между 70 и 130 процентов от первоначальной скорости, и с угловым разбросом в 60 градусов.

Обратите внимание: Хотя Spawn - номинально тест, в этом случае Вы используете его строго в качестве оператора, чтобы определить результаты столкновения. Позже, Вы примените два дополнительных теста в этом событии, добавив второй Spawn, чтобы направить частицы к другим событиям.

7. Измените тип и цвет оператора Display. К примеру, попробуйте оранжевый цвет для меток.



8. Запустите анимацию.



При столкновении, астероид создаст взрыв частиц.


Уроки от: 3ds Max
Перевод: Касилов Евгений


При размещении этого материала на других ресурсах, обязательно указывать место первоисточника. Первоисточником публикации данных переводов является форум foxter.ru

__________________
Bloke вне форума   Ответить с цитированием
 


Здесь присутствуют: 1 (пользователей - 0 , гостей - 1)
 

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Powered by vBulletin
Copyright ©2000-2024, Jelsoft Enterprises Ltd.
[Foxter Skin] developed by: Foxter.ru