1 Уроки Maya Программно-визуализируемые системы частиц [Часть 2]2 Сб Окт 02, 2010 6:37 am
Admin
Admin
Воспользуемся системой частиц для того, чтобы имитировать броуновское движение частиц внутри замкнутого пространства, в качестве которого будет служить обычный NURBS-шар. Создайте сцену с шаром в центре и назначьте последнему полупрозрачный материал (рис. 18). Внедрите в сцену эмиттер, воспользовавшись командой Particles=>CreateEmitter (Частицы=>Создать эмиттер), и проиграйте анимацию — эмиттер станет испускать частицы, правда количество их слишком велико, появляются они строго в центре шара и спокойно распространяются за его пределы (рис. 19).
Попробуем добиться, чтобы частицы появлялись практически в любой внутренней части шара, — это совсем несложно, если выбрать объемный эмиттер. Поэтому выделите эмиттер и в редакторе атрибутов в поле EmitterType установите вариант Volume, в поле Volume Shape — Sphere, а затем масштабируйте сферу-эмиттер так, чтобы она стала немного меньше полупрозрачной сферы (рис. 20). Проиграйте анимацию и убедитесь, что цель достигнута. Теперь имитируем столкновение частиц со сферой. Выделите систему частиц и (при нажатой клавише Shift) сферу (не сферу-эмиттер), а затем воспользуйтесь командой Particles=>MakeCollide (Частицы=>Задействовать столкновение) — частицы перестанут вылетать за пределы сферы (рис. 21).
Обратите внимание, что в начальных кадрах анимации частиц сравнительно немного, зато потом их количество переходит все мыслимые пределы. Причина в том, что каждую секунду эмиттер генерирует по сто частиц, — в нашем же случае требуется, чтобы во всех кадрах анимации одновременно существовало примерно одинаковое их количество. Это значит, что в самых первых кадрах анимации должно сформироваться нужное их число, а затем оно просто должно поддерживаться примерно на том же уровне. Чтобы добиться такого результата, анимируем параметр Rate у эмиттера: выделите эмиттер, активируйте 1-й кадр, установите в поле Rate значение 1000 и создайте анимационный ключ (команда Set Key из контекстного меню) — рис. 22. Переключитесь в 5-й кадр и создайте ключ анимации при том же значении параметра Rate, после чего перейдите в 6-й кадр, введите в поле Rate значение 1 и опять создайте ключ. Проиграйте анимацию и убедитесь, что количество частиц визуально на всем протяжении анимации одинаково (на самом деле в первых пяти кадрах их меньше, но заметить это при обычном просмотре практически невозможно). Измените тип частиц на B lobbySurface (тогда частицы при рендеринге будут выглядеть как обычные сферы) и уменьшите радиус сфер, щелкнув на кнопке CurrentRenderType (Параметры текущего типа визуализации) из свитка RenderAttributes и введя в поле Radius (Радиус) значение 0,1 (рис. 23). Затем добейтесь некоторой хаотичности их движения, увеличив для эмиттера параметры Speed и SpeedRandom примерно до 15 и 10 соответственно и назначив системе частиц радиальную силу (команда Fields=>Radial — Поля=>Радиальность). После этого частицы станут двигаться в соответствии с нашим планом (рис. 24).
Кружащиеся и собирающиеся в стопку кленовые листья
Немного усложним задачу и заставим кружиться в пространстве, а затем собираться в стопку кленовые листья. Смоделируйте кленовый лист. Для этого вначале создайте его контур в виде замкнутой NURBS-кривой (это проще сделать на основе имеющего растрового изображения) — рис. 25. А затем выделите контур и примените к нему операцию Bevel (команда Surfaces=> Bevel — Поверхности=>Скос) — в итоге будет получена боковая поверхность листа, придающая ему объем. Затем на основе той же кривой инструментом Planar (команда Surfaces=>Planar — Поверхности=>Планарный) смоделируйте две плоские поверхности, поместите первую из них в качестве верхней плоскости листа, а вторую — в качестве нижней. Объедините все три поверхности в группу (рис. 26), а затем уменьшите размеры всех элементов группы.
Создайте систему частиц particle1 с Directional-эмиттером, размещенным в верхней части окна проекции Perspective, повернутым на –90° относительно оси Z и генерирующим частицы в разных направлениях за счет увеличения значения параметра Spread (рис. 27). Назначьте созданной системе частиц силы Gravity, Newton и Turbulence для притягивания частиц поверхностью земли, вращения их и перемешивания во время движения (рис. 28). Отрегулируйте значение скорости движения частиц и влияния сил так, чтобы частицы непрерывно кружились и постепенно опускались на землю. Замените частицы на объект-образец. Для этого выделите группу элементов, образующих кленовый лист, и щелкните на квадратике, расположенном справа от команды Particles=>Instancer (Частицы=>Заместитель). Удостоверьтесь, что в списке ParticleObjecttoInstance выбрана система частиц particle1, а затем для движения объектов с учетом назначенных частицам сил установите для параметров в области Rotation Options вариант Force (рис. 29) и щелкните на кнопке Apply. В итоге каждая из частиц будет заменена на указанный образец, который окажется повернутым в пространстве на определенный (соответствующий комплексному воздействию сил) угол (рис. 30).
Дополните сцену плоскостью, имитирующей поверхность земли. Теперь по замыслу нужно сделать так, чтобы кружащиеся листья после того, как достигнут данной поверхности, автоматически собирались в стопку. Это означает, что требуется организовать столкновение частиц с поверхностью, при котором каждая частица создает одну новую частицу, принадлежащую уже другой системе частиц particle2, и умирает. Чтобы организовать это, выделите систему частиц, а затем при нажатой клавише Shift — созданную плоскость и примените к ним команду Particles=>MakeCollide. Откройте редактор событий частиц (команда Particles=> Particle Collision Events), настройте его параметры в соответствии с рис. 31 и щелкните на кнопке CreateEvent. Замените частицы созданной системы на объект-образец.
Полученные в результате работы созданного выше события новые частицы будут двигаться в несколько замедленном темпе, тоже кружась, но в стопку собираться, естественно, не будут. Поэтому создайте вспомогательный объект (например, сферу) — рис. 32 и назначьте его мишенью для сбора particle2-частиц, выделив частицы и сферу и применив команду Particles=>Goal, а затем увеличьте целевой вес мишени примерно до 0,8. Для того чтобы листья, достигнув мишени, не продолжали кружить вокруг нее, а остановились, придется настроить столкновение и создать соответствующее событие для системы частиц particle2. Поэтому вначале выделите объект particle2 и мишень и примените команду Particles=>MakeCollide. А затем откройте редактор событий частиц, выделите систему частиц particle2 и создайте для нее событие с параметрами, представленными на рис. 33, поскольку пришедшие на смену particle2-частицам частицы системы particle3 должны быть уже неподвижны, то есть они не могут наследовать скорость частиц, их породивших. Скройте объект-мишень, чтобы он не визуализировался, и замените частицы созданной системы на объект-образец, и при рендеринге вы увидите, что частицы двигаются к центру предполагаемой стопки и, достигнув последней, останавливаются (рис. 34). Возможный вид полученной в итоге при визуализации сцены в некоторых кадрах анимации представлен на рис. 35.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 18. Исходная сцена
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 19. Вид сцены сразу после создания эмиттера
Рис. 18. Исходная сцена
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 19. Вид сцены сразу после создания эмиттера
Попробуем добиться, чтобы частицы появлялись практически в любой внутренней части шара, — это совсем несложно, если выбрать объемный эмиттер. Поэтому выделите эмиттер и в редакторе атрибутов в поле EmitterType установите вариант Volume, в поле Volume Shape — Sphere, а затем масштабируйте сферу-эмиттер так, чтобы она стала немного меньше полупрозрачной сферы (рис. 20). Проиграйте анимацию и убедитесь, что цель достигнута. Теперь имитируем столкновение частиц со сферой. Выделите систему частиц и (при нажатой клавише Shift) сферу (не сферу-эмиттер), а затем воспользуйтесь командой Particles=>MakeCollide (Частицы=>Задействовать столкновение) — частицы перестанут вылетать за пределы сферы (рис. 21).
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 20. Корректировка формы и размеров эмиттера
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 21. Результат установки препятствия в виде поверхности сферы на пути полета частиц
Рис. 20. Корректировка формы и размеров эмиттера
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 21. Результат установки препятствия в виде поверхности сферы на пути полета частиц
Обратите внимание, что в начальных кадрах анимации частиц сравнительно немного, зато потом их количество переходит все мыслимые пределы. Причина в том, что каждую секунду эмиттер генерирует по сто частиц, — в нашем же случае требуется, чтобы во всех кадрах анимации одновременно существовало примерно одинаковое их количество. Это значит, что в самых первых кадрах анимации должно сформироваться нужное их число, а затем оно просто должно поддерживаться примерно на том же уровне. Чтобы добиться такого результата, анимируем параметр Rate у эмиттера: выделите эмиттер, активируйте 1-й кадр, установите в поле Rate значение 1000 и создайте анимационный ключ (команда Set Key из контекстного меню) — рис. 22. Переключитесь в 5-й кадр и создайте ключ анимации при том же значении параметра Rate, после чего перейдите в 6-й кадр, введите в поле Rate значение 1 и опять создайте ключ. Проиграйте анимацию и убедитесь, что количество частиц визуально на всем протяжении анимации одинаково (на самом деле в первых пяти кадрах их меньше, но заметить это при обычном просмотре практически невозможно). Измените тип частиц на B lobbySurface (тогда частицы при рендеринге будут выглядеть как обычные сферы) и уменьшите радиус сфер, щелкнув на кнопке CurrentRenderType (Параметры текущего типа визуализации) из свитка RenderAttributes и введя в поле Radius (Радиус) значение 0,1 (рис. 23). Затем добейтесь некоторой хаотичности их движения, увеличив для эмиттера параметры Speed и SpeedRandom примерно до 15 и 10 соответственно и назначив системе частиц радиальную силу (команда Fields=>Radial — Поля=>Радиальность). После этого частицы станут двигаться в соответствии с нашим планом (рис. 24).
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 22. Создание ключа для 1-го кадра
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 23. Настройка параметров визуализации частиц
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 24. Броуновское движение частиц
Рис. 22. Создание ключа для 1-го кадра
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 23. Настройка параметров визуализации частиц
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 24. Броуновское движение частиц
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение] |
Немного усложним задачу и заставим кружиться в пространстве, а затем собираться в стопку кленовые листья. Смоделируйте кленовый лист. Для этого вначале создайте его контур в виде замкнутой NURBS-кривой (это проще сделать на основе имеющего растрового изображения) — рис. 25. А затем выделите контур и примените к нему операцию Bevel (команда Surfaces=> Bevel — Поверхности=>Скос) — в итоге будет получена боковая поверхность листа, придающая ему объем. Затем на основе той же кривой инструментом Planar (команда Surfaces=>Planar — Поверхности=>Планарный) смоделируйте две плоские поверхности, поместите первую из них в качестве верхней плоскости листа, а вторую — в качестве нижней. Объедините все три поверхности в группу (рис. 26), а затем уменьшите размеры всех элементов группы.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 25. Контур кленового листа
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 26. Кленовый лист
Рис. 25. Контур кленового листа
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 26. Кленовый лист
Создайте систему частиц particle1 с Directional-эмиттером, размещенным в верхней части окна проекции Perspective, повернутым на –90° относительно оси Z и генерирующим частицы в разных направлениях за счет увеличения значения параметра Spread (рис. 27). Назначьте созданной системе частиц силы Gravity, Newton и Turbulence для притягивания частиц поверхностью земли, вращения их и перемешивания во время движения (рис. 28). Отрегулируйте значение скорости движения частиц и влияния сил так, чтобы частицы непрерывно кружились и постепенно опускались на землю. Замените частицы на объект-образец. Для этого выделите группу элементов, образующих кленовый лист, и щелкните на квадратике, расположенном справа от команды Particles=>Instancer (Частицы=>Заместитель). Удостоверьтесь, что в списке ParticleObjecttoInstance выбрана система частиц particle1, а затем для движения объектов с учетом назначенных частицам сил установите для параметров в области Rotation Options вариант Force (рис. 29) и щелкните на кнопке Apply. В итоге каждая из частиц будет заменена на указанный образец, который окажется повернутым в пространстве на определенный (соответствующий комплексному воздействию сил) угол (рис. 30).
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 27. Параметры настройки эмиттера
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 28. Появление частиц
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 29. Настройка параметров замены частиц на объект-образец
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 30. Вид сцены после замены частиц на объект-образец
Рис. 27. Параметры настройки эмиттера
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 28. Появление частиц
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 29. Настройка параметров замены частиц на объект-образец
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 30. Вид сцены после замены частиц на объект-образец
Дополните сцену плоскостью, имитирующей поверхность земли. Теперь по замыслу нужно сделать так, чтобы кружащиеся листья после того, как достигнут данной поверхности, автоматически собирались в стопку. Это означает, что требуется организовать столкновение частиц с поверхностью, при котором каждая частица создает одну новую частицу, принадлежащую уже другой системе частиц particle2, и умирает. Чтобы организовать это, выделите систему частиц, а затем при нажатой клавише Shift — созданную плоскость и примените к ним команду Particles=>MakeCollide. Откройте редактор событий частиц (команда Particles=> Particle Collision Events), настройте его параметры в соответствии с рис. 31 и щелкните на кнопке CreateEvent. Замените частицы созданной системы на объект-образец.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 31. Параметры настройки события для системы частиц particle 1
Рис. 31. Параметры настройки события для системы частиц particle 1
Полученные в результате работы созданного выше события новые частицы будут двигаться в несколько замедленном темпе, тоже кружась, но в стопку собираться, естественно, не будут. Поэтому создайте вспомогательный объект (например, сферу) — рис. 32 и назначьте его мишенью для сбора particle2-частиц, выделив частицы и сферу и применив команду Particles=>Goal, а затем увеличьте целевой вес мишени примерно до 0,8. Для того чтобы листья, достигнув мишени, не продолжали кружить вокруг нее, а остановились, придется настроить столкновение и создать соответствующее событие для системы частиц particle2. Поэтому вначале выделите объект particle2 и мишень и примените команду Particles=>MakeCollide. А затем откройте редактор событий частиц, выделите систему частиц particle2 и создайте для нее событие с параметрами, представленными на рис. 33, поскольку пришедшие на смену particle2-частицам частицы системы particle3 должны быть уже неподвижны, то есть они не могут наследовать скорость частиц, их породивших. Скройте объект-мишень, чтобы он не визуализировался, и замените частицы созданной системы на объект-образец, и при рендеринге вы увидите, что частицы двигаются к центру предполагаемой стопки и, достигнув последней, останавливаются (рис. 34). Возможный вид полученной в итоге при визуализации сцены в некоторых кадрах анимации представлен на рис. 35.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 32. Появление вспомогательного объекта
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 33. Параметры настройки события для системы частиц particle2
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 34. Фрагмент сцены с собирающимися в стопку листьями
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 35. Кружащиеся и собирающиеся в стопку кленовые листья
]Рис. 32. Появление вспомогательного объекта
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 33. Параметры настройки события для системы частиц particle2
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 34. Фрагмент сцены с собирающимися в стопку листьями
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 35. Кружащиеся и собирающиеся в стопку кленовые листья