Link:INB Home|INB English| INB русский язык|INB العربية|INB Türkiye|INB فارسی|INB Español|INB Français|INB Português|INB Deutsch|INB 國語|INB 中文|INB 日本语|INB 한국어|INB ภาษาไทย|INB tiếng Việt||Уроки Maya Программно-визуализируемые системы частиц [Часть 2]1
INB русский язык Форум
Добро пожаловать! inbforum.COM Интернет без границ Форум Здесь вы можете обсудить с друзьями по всему миру прений, приходите и присоединяйтесь к нам! Постоянный имя: Ruinbforum.forumotion.com
INB русский язык Форум
Добро пожаловать! inbforum.COM Интернет без границ Форум Здесь вы можете обсудить с друзьями по всему миру прений, приходите и присоединяйтесь к нам! Постоянный имя: Ruinbforum.forumotion.com
INB русский язык Форум

Добро пожаловать! inbforum.COM Интернет без границ Форум Здесь вы можете обсудить с друзьями по всему миру прений, приходите и присоединяйтесь к нам! Постоянный имя: Ruinbforum.forumotion.com


Вы не подключены. Войдите или зарегистрируйтесь

《《《《《《《上一页INBforum   Перейти вниз

上一页INBforum》》》》》》》Предыдущая тема Следующая тема Перейти вниз  Сообщение [Страница 1 из 1]

1Уроки Maya Программно-визуализируемые системы частиц [Часть 2]1 Empty Уроки Maya Программно-визуализируемые системы частиц [Часть 2]1 Сб Окт 02, 2010 6:36 am

Admin

Admin
Admin
Частицы могут сталкиваться с любыми полигональными или NURBS-объектами (за исключением NURBS-кривых), а с другими частицами — не могут. При столкновениях они отскакивают от поверхности чаще всего с некоторой потерей скорости и либо испускают новые частицы, либо разбиваются на множество дополнительных частиц, либо умирают. Кроме того, при столкновениях возможно возникновение каких-то иных событий, запускаемых с помощью MEL-скриптов. За назначение системам частиц столкновений отвечает команда MakeCollide (Задействовать столкновение) из меню Particles (Частицы). А удалить столкновение можно через редактор динамических связей DynamicRelations, вызываемый командой Window=>RelationshipEditors=>DynamicRelations (Окно=>Редакторы связей=>Редактор динамических связей).
Для примера создайте NURBS-куб и определите его верхнюю грань в качестве источника частиц, выделив ее и применив команду Particles=>EmitfromObject (Частицы=>Испускать с поверхности объекта). Изначально частицы с поверхности испускаются во всех направлениях, поэтому выделите в окне Outliner эмиттер и в окне каналов измените его тип на Surface (параметр Emitter Type) — частицы станут вылетать вверх по нормали к поверхности (рис. 1). Увеличьте параметр Speed, отвечающий за скорость перемещения частиц, примерно до 7 и расширьте поток частиц, чтобы они падали не только прямо вниз на куб, но и по сторонам, повысив значение параметра TangentSpeed (Скорость по касательной), например, до 0,5. Добавьте к данной системе гравитационную силу: активируйте 1-й кадр, выделите в окне Outliner систему частиц и примените команду Fields=>Gravity (Поля=>Гравитация). Назначенная по умолчанию сила гравитации явно велика (все частицы падают вниз, практически не приподнимаясь над поверхностью), поэтому уменьшите степень воздействия гравитационного поля (параметр Magnitude для поля) так, чтобы последние вначале вылетали вверх, немного поднимались и лишь затем падали, — мы остановились на значении 4 (рис. 2).
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 1. Вид частиц при однонаправленном испускании их поверхностью

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 2. Результат назначения частицам гравитационной силы


Создайте под кубом плоскость, с которой по замыслу и должны будут сталкиваться частицы. Проиграйте анимацию — естественно, частицы будут спокойно проходить сквозь плоскость, не замечая ее (рис. 3). Поэтому выделите систему частиц, затем при нажатой клавише Shift — созданную плоскость и примените команду Particles=>MakeCollide (Частицы=>Задействовать столкновение). После этого частицы при столкновении с плоскостью уже станут отталкиваться от нее и подпрыгивать, как резиновые мячики (рис. 4).
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 3. Прохождение частиц сквозь плоскость

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 4. Столкновение частиц с плоскостью


Для тренировки попробуем удалить созданное столкновение. Для этого откройте редактор динамических связей DynamicRelations, воспользовавшись командой Window=>RelationshipEditors=>DynamicRelations. Выделите в его левой части систему частиц, а в правой установите режим Colli sions, отвечающий за управление столкновениями. После этого щелкните на подсвеченной строке с именем NURBS-плоскости, с которой сталкиваются частицы (рис. 5), — строка окажется уже неподсвеченной (а значит, связь будет нарушена) и частицы вновь станут проходить сквозь плоскость (рис. 6). Опять установите связь на столкновение между системой частиц и плоскостью — в данном случае для этого достаточно будет лишь щелкнуть на той же самой строке в редакторе DynamicRelations для ее подсвечивания.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 5. Вид окна Dynamic Relations с назначенным столкновением

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 6. Результат отмены столкновения частиц с плоскостью


Особенностями столкновения частиц можно управлять посредством параметров Resilience (Упругость) и Friction (Трение) — их значения устанавливаются сразу же при настройке параметров команды MakeCollide либо редактируются позднее через редактор атрибутов. Параметр Resilience характеризует степень упругости частиц и обычно изменяется в интервале от 0 до 1: при значении 0 частицы просто сталкиваются с поверхностью, а при 1 — отлетают после столкновения с первоначальной скоростью. Параметр Friction определяет уровень трения — естественному трению соответствуют значения в интервале от 0 до 1. Если значение параметра Friction равно 0, то поверхность настолько гладкая, что частицы при столкновении с нею вообще не подвергаются воздействию трения, а при значении равном 1 трение оказывается максимальным и приводит к полной остановке частиц. При реальном столкновении воздействие трения, даже при достаточно гладкой поверхности, все равно неизбежно. Чтобы подвергнуть частицы воздействию трения, выделите плоскость, с которой происходит столкновение частиц, откройте редактор атрибутов, переключитесь на вкладку geoConnector и увеличьте значение параметра Friction примерно до 0,5 (рис. 7). Проиграйте анимацию, и вы увидите, что отскакивающие частицы в результате трения стали терять часть своей энергии и отлетают уже с гораздо меньшей скоростью.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 7. Корректировка параметра Friction


Возможны ситуации (как правило, при повторных столкновениях частиц, изначально имеющих высокую скорость перемещения), когда часть частиц, несмотря на назначение им столкновения с некоторой поверхностью, все равно пролетает сквозь нее. Этого можно избежать, открыв редактор атрибутов и на вкладке particleShape в секции CollisionAttributes увеличив значение параметра TraceDepth, регулирующего уровень обнаружения столкновений, до нужной величины (рис. Cool.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 8. Редактирование параметра TraceDepth


Как уже было отмечено, после столкновения частиц с поверхностью может происходить какое-либо событие: чаще всего столкнувшиеся частицы либо испускают новые частицы, либо разбиваются на множество дополнительных частиц, либо просто умирают. Регулируется это через редактор событий частиц ParticleCollisionEvents, вызываемый командой Particles=>ParticleCollisionEvents (рис. 9). В нем указывается, для каких частиц данной системы частиц должно выполняться событие:

  • AllCollisions — событие будет срабатывать для всех частиц, столкнувшихся с определенным препятствием, независимо от номера столкновения;
  • Collision Number — событие будет выполняться только для частиц, столкнувшихся с препятствием указанное в данном параметре число раз.

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 9. Окно редактора ParticleCollisionEvents


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

  • Random # Particles — обеспечивает генерацию случайного числа частиц, которое может меняться в интервале от 1 до значения, указанного в параметре Num particles;
  • Num particles — задает количество новых частиц, формируемых (путем генерации или раскола) каждой из столкнувшихся частиц;
  • Spread — определяет угол разброса новых частиц;
  • Target Particle — указывает систему частиц (это может быть как новая, так и уже существующая система частиц), частью которой становятся сгенерированные при столкновении частицы;
  • Inherit Velocity — определяет скорость новых частиц, которая задается как доля от скорости частиц, их сгенерировавших; данный параметр может меняться в интервале от 0 до 1: при 0 новые частицы не наследуют скорость старых, при 1 — скорости новых и старых частиц равны.

При необходимости удалить неудачно созданное событие достаточно открыть редактор ParticleCollisionEvents, выделить нужную систему частиц, затем выделить событие (если событие всего одно, то этого делать не требуется) и щелкнуть на кнопке DeleteEvent.
Для примера сделаем так, чтобы каждая частица при столкновении генерировала от одной до трех новых и тут же умирала, при этом новые частицы имели бы достаточно широкий угол расхождения и двигались со скоростью в два раза меньшей, чем породившие их частицы. Откройте окно редактора событий частиц (команда Particles=>ParticleCollisionEvents) и в разделе Event Type включите флажки Split и Random # Particles. Установите параметр Num particles равным 3, а Spread и InheritVelocity — 0,5 и щелкните на кнопке Create Event. В итоге для исходной системы частиц particle1 будет создано событие event1, результатом которого станет появление новой системы частиц particle2 (рис. 10), что и можно будет наблюдать при запуске анимации (рис. 11).
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 10. Окно редактора Particle Collision Events после создания события

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 11. Вид сцены после настройки события (красным цветом отображены старые частицы, зеленым — дополнительно сгенерированные при столкновении)

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Притягивание частиц мишенью


Поток частиц может притягиваться мишенью (целью), при этом довольно часто назначение частицам мишени используется для того, чтобы обеспечить их плавное перемещение, которое трудно реализовать другими методами. Мишенью может стать любой объект, кроме кривой на поверхности. Если в качестве мишени определен полигональный объект, то частицы будут стремиться к его вершинам, а если NURBS-поверхность — то к управляющим точкам. Если мишенью является другая система частиц, то частицы привлекаемой системы частиц будут следовать за частицами мишени последовательно, то есть первая созданная в привлекаемой системе частица будет следовать за первой частицей ведомой системы, а последняя — за последней. Правда, данный принцип справедлив лишь при условии, если частицы обеих систем не умирают — в противном случае предсказать порядок их следования невозможно.
За назначение мишени отвечает команда Particles=>Goal (Частицы=>Цель). Сила притяжения объекта мишенью зависит от индивидуального веса, изменяющегося в интервале от 0 до 1: при 0 мишень не оказывает никакого влияния на объект, а при 1 ее влияние максимально. Вес мишени определяется непосредственно при ее создании или регулируется позже через редактор атрибутов. Конкретному объекту может быть назначено несколько притягивающих его мишеней — тогда объект будет стремиться к каждой из мишеней одновременно, максимально приближаясь к той, которая имеет больший вес.
Для примера удалите в рабочей сцене систему частиц particle2 и гравитационную силу, выделив их в окне Outliner и нажав клавишу Del, и уменьшите силу испускания частиц эмиттером до 1 — частицы вновь станут двигаться строго вверх. Создайте сферу и поместите ее на некотором удалении от куба (рис. 12); выделите частицы, затем, при нажатой клавише Shift, — сферу и привлеките частицы к сфере, назначив ее мишенью (команда Particles=>Goal). Просмотрите анимацию — поток частиц станет стремительно двигаться в направлении сферы, окутывая ее со всех сторон (рис. 13). Попробуем уменьшить силу притяжения частиц к мишени, уменьшив целевой вес последней, — выделите частицы, откройте редактор атрибутов, активируйте вкладку particle Shape1 и раскройте свиток GoalWeight and Objects. Уменьшите значение параметра nurbsSphere Shape1 до 0,1 (рис. 14), и частицы станут двигаться к цели, а затем вращаться вокруг нее более плавно (рис. 15). Если влияние мишени необходимо устранить (когда она стала не нужна), можно сделать ее неактивной, выключив в свитке GoalWeightandObjects флажок Goal Active, или вообще удалить.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 12. Исходный вид сцены со сферой

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

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 14. Уменьшение веса мишени

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 15. Привлечение частиц мишенью с меньшим целевым весом


Немного изменим характер притяжения частиц мишенью. Выделите частицы, активируйте 1-й кадр, откройте редактор атрибутов, обнулите значение параметра GoalWeight (Целевой вес) и создайте для данного параметра анимационный ключ, воспользовавшись командой Set Key (Установить ключ), вызванной из контекстного меню (рис. 16). Переключитесь в 50-й кадр, увеличьте целевой вес до 0,05 и создайте ключ. Запустите анимацию (теперь частицы сначала станут испускаться вверх, но постепенно начнут притягиваться мишенью) и обратите внимание на номер кадра, в котором частицы достигнут мишени, — в данном случае это 220-й кадр. Увеличьте для данного кадра значение целевого веса примерно до 0,3 и также создайте ключ анимации, что приведет к тому, что частицы, достигнув шара, начнут стремительно кружиться вокруг него (рис. 17).
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 16. Создание ключа для 1-го кадра

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 17. Вид притягивающихся мишенью частиц на разных стадиях анимации
]

http://ru.inbforum.com

上一页INBforum   Перейти вниз

上一页INBforumПредыдущая тема Следующая тема Вернуться к началу  Сообщение [Страница 1 из 1]

Права доступа к этому форуму:
Вы не можете отвечать на сообщения

Copyright ©2009-2010 LTD Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

IT:SINGLESERVGoogle谷歌翻译TranslateFORUMSOFTLAYERGoogle谷歌广告联盟AdSenseAsia

 

Бесплатные форумы | ©phpBB | Бесплатный форум поддержки | Сообщить о нарушении | Cookies | Последние обсуждения