Сегодня даже домашний компьютер можно оснастить достаточно мощной графической подсистемой, превратив его в настоящую графическую станцию для создания сложнейших «голливудских» спецэффектов
Внешние модули 3DSMAX 2.0
Спецэффекты на вашем домашнем PC
Владимир Прыгин
Алексей Хрипков
Сегодня даже домашний компьютер можно оснастить достаточно мощной графической подсистемой, превратив его в настоящую графическую станцию для создания сложнейших “голливудских” спецэффектов. Бурный рост компьютерных технологий и удешевление вычислительных мощностей вызвали рост популярности таких пакетов трехмерного моделирования, как 3DSMAX, SoftImage, Lightwave и др.
Теперь любой 3D-художник по мере сил и собственного терпения может создавать на компьютере профессиональные трехмерные изображения и ролики, изучив хотя бы один из перечисленных пакетов. Но с развитием средств компьютерного моделирования появляются новые задачи, требуются все новые и новые поражающие воображение эффекты. Тем, что можно было сделать вчера, сегодня уже никого не удивишь. Производители пакетов трехмерного моделирования уже не успевают встраивать новые функции, требующиеся для создания эффектов, в свои продукты — и тут на помощь приходят мобильные внешние модули (plugins). Существует целый ряд фирм, специализирующихся на производстве вспомогательных модулей для популярных пакетов трехмерного моделирования. Некоторые из них уже давно снискали заслуженную популярность у пользователей (еще по классической 3D Studio), другие только выходят на этот рынок. Каждый модуль оптимизируется под свою определенную задачу (например, создание компьютерного волосяного покрова, меха, эффекты старения). Через некоторое время производимый им спецэффект переживает пик популярности, благодаря удобству и простоте модуля, и переходит в разряд стандартных. Число таких локальных задач постоянно растет, и для их решения разрабатываются соответствующие внешние модули, что значительно упрощает работу 3D-художника и делает возможным ранее невозможное.
Те, кто работал с программой 3DSMAX 2.0 (текущая версия 2.5) фирмы Kinetix, вероятно, по достоинству оценят безграничные возможности этого пакета самого по себе. Однако, как показывает практика, для создания некоторых профессиональных специальных эффектов понадобятся уже специализированные модули расширения. Само по себе понятие модуля расширения (plug-in) не является чем-то принципиально новым, сторонними производителями уже давно выпускается огромное их количество для наиболее популярных программ, однако в таком море продукции иногда трудно разобраться и понять, зачем нужен тот или иной модуль. Учитывая это обстоятельство, мы пытаемся рассказать хотя бы о некоторых, наиболее интересных внешних модулях пакета 3DSMAX.
Сам по себе внешний модуль состоит из набора файлов, обычно с расширениями .dlo и .dlg. Если у модуля нет специального инсталлятора, то достаточно скопировать его файлы в директорию 3DSMAX2/Plug-ins и перезапустить пакет. Иногда модуль инсталлируется в отдельную директорию — нужно будет прописать некоторые пути к файлам, используемым модулем, в plugins.ini в корневой директории 3DSMAX2. После того, как модуль проинсталлирован, а пакет 3DSMAX перезапущен, остается только найти то место в среде 3DSMAX, где модуль появляется. Это не всегда так легко, как, скажем, в Adobe Photoshop, где все новые модули появляются в меню Filters. В 3DSMAX это может быть совершенно произвольное место, в зависимости от функций, которые выполняет модуль. Но, как правило, это вкладки Modifiers, Helpers, либо Motion. После того, как модуль найден, можно переходить к изучению его меню, настроек и принципов работы.
Специфика работы с внешними модулями пакета 3DSMAX состоит в том, что версии Kinetix 3DSMAX 1.2 и 2.0 (2.5) принципиально различаются, поэтому модули, работавшие под 3DSMAX 1.2, не будут работать под 2.0 (нет совместимости). Это обстоятельство следует учитывать при выборе модуля. Стандартом на данный момент является 3DSMAX 2.0 (хотя у некоторых пользователей на столах уже появилась версия 2.5), поэтому при выборе какого-нибудь модуля следует убедиться, что его версия совместима с 3DSMAX 2.0. Сторонние фирмы-производители внешних модулей для 3DSMAX, как правило, не меняют название своих детищ, а выпускают каждый раз новую версию, модифицированную и дополненную.
Как с первого взгляда определить, совместим ли модуль с 3DSMAX 2.0? Если в каталоге рядом с модулем прямо не указано, для какой из разновидностей 3DSMAX его следует использовать, то посмотрите на номер версии: если он больше 1.0, то есть было уже несколько дополнений, то скорее всего (но не всегда), модуль работает под 3DSMAX 2.0; если же версия модуля 1.0 или вообще не указана, то он, вероятно, предназначен для 3DSMAX 1.0-1.2. В затруднительных случаях обращайтесь к сопровождающей модуль документации. Кроме того, некоторые plug-ins, которые раньше были внешними, теперь являются стандартными.
Некоторые из наиболее эффектных модулей (Outburst, Fur 2.0, Ultrashock, DirtyReyes, ClothReyes) и принципы работы с ними мы и рассмотрим в данной статье.
OUTBURST
Модуль Outburst имеет собственную, самодостаточную систему частиц (Particle Systems), принципы работы с которой разработчики во многом позаимствовали у другого мощного 3D-пакета SoftImage. Модуль предназначен для создания всевозможных эффектов тогда, когда необходимо применение автономной системы активных частиц. В общем случае, это нужно, если аниматор хочет правдоподобно воспроизвести движение разнообразных по свойствам потоков частиц чего-либо в какой-либо среде, подчиняющейся определенным законам и интерактивно взаимодействующей с этими потоками (магнитые поля, гравитация, ветры, завихрения в пространстве, вес частиц, вязкость и т.п.). При этом движение каждой отдельно взятой частицы, ее влияние и взаимодействие с другими частицами этого или других потоков всей системы (соударения, магнитное притяжение и др.) просчитываются индивидуально, в зависимости от параметров потока, к которому частица принадлежит (вес, скорость, размеры, упругость и др.).
При помощи такой системы частиц можно описать и смоделировать, например, следующие явления, встречающиеся в природе: клубы дыма от сигареты или паров воды, струи дождя, косяки рыб в воде или рои мошек в лесу, турбулентные потоки в воздухе, движение облаков, факел, спрей, стелющийся туман, водопады и водовороты, смерчи и ураганы, галактику со звездами и прочие природные, погодные и иные эффекты. При этом в качестве одной частицы можно использовать как точку, так и любой произвольный геометрический объект (например, смоделировать трехмерную пчелу).
Помимо влияний среды, которые будет испытывать объект, можно анимировать его индивидуальную геометрию (заставить пчелу махать крылышками и жужжать), причем независимо, или с некоторой задержкой по времени, относительно других объектов (все пчелы в рое будут махать крыльями и жужжать в разной фазе, их движения не будут повторяться, что придаст рою еще большую разрозненность и случайность, создавая впечатление абсолютного хаоса). Таким образом, например, трехмерный Винни-Пух, путешествующий на шарике и помещенный в такой рой пчел, будет выглядеть более естественно, так как среда его обитания (рой пчел) не будет раздражать глаз нереалистичностью своего движения. Можно порассуждать о возможностях модуля и дальше, но, понятно, что необходимые вычислительные мощности прямо пропорциональны количеству и сложности структуры трехмерных объектов, используемых в сцене. Если несколько небольших потоков в сцене еще можно просчитать на мощном домашнем PC, то для чего-то большего за более или менее приемлемое время вам потребуются более мощные системы.
Первое, что приходит в голову при словах “описание движения потока системы частиц” — всевозможные сложные физические законы, необходимость разбираться в механизме движения частиц, учет различных факторов. Однако на самом деле, все это уже было один раз проделано разработчиками, а пользователю остается только манипулировать с несложными настройками меню.
Попробуем поработать с Outburst. После инсталляции зайдите в Create/Objects/Standard/Outburst и расположите где-либо в сцене вектор системы частиц. Система частиц представляет собой набор эмиттеров, испускающих, в свою очередь, наборы частиц с определенными свойствами определенным образом
Система частиц подчиняется естественным физическим законам. Теперь зайдите в стандартную закладку Modify — увидите блок Entity Management с шестью закладками (System, Source, Particle, Obstacle, Local и т.д.). Задайте в System/Global Forces комбинацию глобальных сил, воздействующих на все потоки частиц системы в целом (пиктограммы: гравитация, ветер, электростатическое притяжение, магнитное поле рис. 1). Этот блок и определяет свойства будущей системы частиц.
Теперь открываем вкладку Source, делаем Source/Add и задаем стандартный тип эмиттера (один из шести возможных рис. 2) или объект, который будет использован в его качестве (в последнем случае надо будет предварительно создать этот объект и затем сделать Pick Object в сцене). По умолчанию используется невидимый трехмерный куб. Далее следует задать параметры эмиттера:
+Emitter
1. Rate — количество испускаемых частиц в секунду;
2. Speed — скорость частиц;
3. Spread — угол рассеивания в градусах;
4. Inherit Velocity — наследуемая скорость в процентах от 100;
5. Inclination, Azimuth — параметры, влияющие на отклонения частицы в потоке.
,Generation — происхождение частиц (испускаются по краям/ребрам объекта — Edge, либо по всему объему — Volume);
-Emission — направление вылета (Absolete, Relative) относительно объекта. |
|
После того, как эмиттер определен, открываем вкладку Particle ( рис. 3) и задаем параметры частиц:
+General Parameters
1. Life Time — время жизни в кадрах, по истечении которого частица просто исчезает в сцене;
2. Trail Life — величина “следа” от частицы (при этом частицы во время движения кажутся вытянутыми);
3. Size — размер частички;
4. Mass — масса частицы, которая учитывается при взаимодействии с глобальными силами системы, при соударениях частиц и при расчете силы гравитации;
5. Drag — сила воздействия глобального ветра системы на частицу (степень влияния ветра). Ветер задается в System/Global Forces;
6. Electric — подверженность частицы влиянию электростатического поля. Поле задается в System/Global Forces;
7. Magnetic — степень влияния магнитного поля системы на частицу. Магнитная составляющая системы задается в System/Global Forces;
8. Collision Rate — чем больше данное значение, тем с большего расстояния включается блок просчета соударений частиц, и соответственно, тем быстрее идет расчет.
,Noise — тип “разброса” частиц в потоке
1. Position — случайный разброс по положению (рой мушек, скорость каждой из которых примерно одинакова);
2. Velocity — случайный разброс по скорости (хаотическое движение водомерок с разной скоростью);
-Rendering Parameters — управляет процессом рендеринга частицы
1. Rendering Type — Face Mapping/Pixel Mapping — частица будет представлять собой граненый объект (прямоугольная плоская проекция), либо пиксел (требуется значительно меньше вычислительных мощностей).
2. Здесь же можно выбрать исходный для частицы объект — Geometry/Pick Object.
.Alignment — None/Random — выравнивание граней частицы относительно наблюдателя (грани не выравниваются, либо случайное выравнивание);
/Viewport Representation — как отображаются частицы в основных видах пакета 3DSMAX2 при проектировании сцены (Tick/Lines — крестиками или линиями, точками);
:Trail Rendering — управляет “хвостом” частицы (след, который остается от частицы)
1. Face — “граненый” хвостик;
2. Solid — цилиндрический граненый хвост;
3. Size Factor — 1 — размер хвоста относительно размера частицы;
4. Trail Mat ID — номер effect channel материала.
5. Mapping — тип наложения текстуры для хвоста, если он Trail Mat ID. Сама текстура берется там же — из Diffuse карты материала.
;Path Assignment — назначение путей для частиц |
|
|
Рис. 3 |
Если хаотическое движение частицы не требуется, а необходимо заставить ее двигаться по определенному пути, можно создать пространственную кривую — сплайн в стандартной вкладке Create/Objects/Spline, а затем сделать Path Assignment/Pick Path в меню Outburst и указать на созданную кривую. После этого можно задать ее параметры:
1. Follow/Attracted — тип следования частицы по пути (либо точно следует пути, либо притягивается к пути с определенной силой, которая предполагает некоторую свободу при движении по заданной траектории;
2. Strength Limit — когда это значение равно 1, частица полностью следует пути;
3. Time Start — в каком кадре частица начинает следовать пути;
4. Time End — в каком кадре частица перестает следовать пути и снова подчиняется влиянию внешних сил;
5. Path 100% — какой отрезок заданного пути проходит частица(в процентах от его длины);
6. Custom Forces — внешние силы, оказывающие влияние на частицу во время следования пути (можно указать в сцене нужные силы из имеющихся в системе).
Далее снова входим в System/Global Forces и продолжаем настраивать систему частиц.
+Global Forces — кнопки, задающие внешние силы системы (которые мы обсуждали выше);
,Simulation — управляет тем, как отображаются частицы в рабочих видах 3DSMAX (не влияет на то, что получится в процессе рендеринга, и используется только при моделировании сцены)
1. Range — задает предел видимости частицы в сцене;
2. Preview — процент частиц от общего их количества, отображаемый в сцене;
3. Turn Off — выключить отображение частиц во всех видах вообще;
-Collision — регулирует столкновения частиц при взаимодействии нескольких их потоков в одном эмиттере.
.Transformation — регулирует плавность перетекания/превращения одного потока в другой. Несколькими последовательными Add можно указать необходимые потоки, которые затем будут плавно переходить один в другой в сцене за указанный промежуток кадров.
/Turbulence — задает возмущения в одном потоке, турбулентность.
1. Corelation — разбивает поток на несколько различных струй. Этот коэффициент определяет на сколько они будут отстоять друг от друга (0 — совсем разные и растекающиеся во все стороны, 1 — примерно один поток, но состоящий из нескольких струй);
2. Length Scale — относительные длины струй в потоке;
3. Speed — скорость турбулентных струй в потоке (может быть различной);
4. Advanced — параметр для более тонкого управления турбулентностью.
Seed — элемент случайности в характере турбулентных потоков (Random Seed);
Oversampling — реалистичность поведения частиц при просчете;
Prerol — за сколько кадров до начального кадра сцены частицы уже начали вылетать. (наблюдать за появлением частиц с самого начала необязательно; достаточно задать некий кадр, к которому достаточное количество частиц уже будет выпущено из эмиттера, и рендерить сцену начиная с этого кадра);
Computational Mode — Accuracy/Speed — точный или быстрый просчет сцены.
Теперь входим во вкладку Obstacle и задаем взаимодействие с внешними объектами MAX сцены. Это делается как Obstacle/Add, а затем Pick Object. После этого сам обтекаемый объект можно спрятать, а потоки частиц будут двигаться по причудливым траекториям, продолжая от него отскакивать.
1. Side — задает отражание частиц от объекта MAX при соударении. Частицы могут отражаться:
- только с внешней стороны объекта (если взять сферу и пустить на нее поток частиц, то он будет отражаться от ее внешней поверхности, когда частицы подойдут к ней на расстояние, необходимое для взаимодействия);
- только с внутренней стороны (если взять сферу и пустить на нее поток частиц, то они будут пролетать сквозь внешнюю стенку сферы, как будто ее нет, но будут отскакивать уже внутри сферы от ее внутренней поверхности: таким образом, весь поток окажется заключенным в сферу, а все частицы будут отражаться от внутренних стенок сферы до конца своего жизненного цикла);
- как с внешней, так и с внутренней стороны объекта (если взять сферу и два потока частиц, один поток направить на сферу, а другой поместить внутрь сферы и направить его произвольным образом, то частицы обоих потоков так никогда и не пересекутся: первый поток будет отражаться от внешней стенки сферы, а второй — от внутренней стенки, таким образом, оставаясь заключенным в сферу).
Во всех случаях для определения внешней/внутренней стороны объекта служит так называемая нормаль объекта. Нормаль объекта представляет собой единичный вектор, перпендикулярный его поверхности. Направление вектора указывает сторону объекта (по вектору — внешняя сторона, против вектора — внутренняя сторона).
Направление вектора нормали объекта также можно анимировать, как и другие параметры. Так, можно добиться того, чтобы во втором из описанных случаев поток, пойманный внутрь сферы, снова начал бы свое движение из нее, сквозь стенки, — для этого достаточно поменять положение нормали объекта на противоположное.
2. Tangent — угол отскока частиц при соударении с объектом;
Остается открыть вкладку Local и задать локальные силы, действующие на объект в системе, если это необходимо. В Local задаются границы сферы, внутри которой на частицы действуют свои локальные силы, а влияние глобальных сил системы не учитывается. При помощи Local Force можно указать существующие в системе силы и назначить их области Local.
Все настройки модуля можно анимировать стандартным образом. Для этого необходимо нажать на кнопку Animate в среде 3DSMAX, перейти к нужному кадру и внести необходимые изменения в параметры системы Outburst (например, изменить силу магнитного поля, или поставить в ноль частоту испускания частиц – тогда поток просто плавно исчезнет к заданному кадру, или, наоборот, плавно появится начиная с заданного кадра).
FUR
Еще недавно создание волосяного покрова, меха, травы было огромной проблемой. Теперь в арсенале 3D-художника есть модуль Fur, который как раз и предназначен для решения этой задачи. Можно достаточно просто генерировать волосы, например, на голове человека, на теле животных. Можно их анимировать и заставлять колыхаться на ветру — тысячи волосинок одной простой операцией. Однако для достижения реалистичности все же потребуется приложить немало усилий: пригладить волосы на голове — и то требует терпения и усидчивости. |
|
Если под рукой нет генератора ландшафтов, совместимого с 3DSMAX, то и здесь вам поможет Fur — создать травяное поле ему вполне по силам. Цвет травинок также можно задавать от корня до верхушки; сами травинки будут отбрасывать и получать тени, что часто является проблемой при интеграции травы, созданной генератором ландшафтов и сцены в MAX. Теперь такой проблемы нет.
Работать с Fur несложно. После инсталляции выделите объект или грани объекта, которые предстоит покрыть волосами — например, часть головы модели девушки.
Зайдите в Render/Environment/Atmosphere/Add — добавить атмосферный эффект — теперь там появились Shag Fur и Shag Render. Выберите их и добавьте в сцену.
Параметры Shag Fur:
Модуль Fur: создание волосяного покрова
1. Pick — Fur необходимо назначить объект в сцене, на который он будет воздействовать. Для этого и нужна эта кнопка;
2. Remove — отмена воздействия Fur на объект;
3. Edit Selection — можно выбрать объект из списка активных объектов;
4. Apply Fur To — задает область влияния Fur на объект: на весь объект, на выбранные грани, либо по номеру Material ID группы граней;
5. Length — длина волоска (Max/Random/Sub.Mat.ID — максимальная, случайная от 0 до Max или по карте длины волос. В последнем случае берется diffuse map материала с номером ID в группе материалов multi sub-object material, или просто первая diffuse карта материала, если он целиковый сплошной и используется в качестве карты длины волос. Соотношение черного и белого участков карты используются для расчета длины волос в данном месте поверхности);
6. Density — количество волос (плотность) на единицу поверхности (Per Area/Absolute/Sub.Mat.ID — одной грани, всей площади поверхности и карты плотности волос соответственно. В последнем случае в качестве карты плотности берется diffuse карта материала с номером ID в группе, так же, как и в случае с Length. Черные участки на карте означают минимальную плотность, белые — максимальную);
7. Thickness — толщина волос. Параметры те же;
8. Color — Base/Tip/Bias — цвет корня/верхушки волоса и кривая плавности перехода из Base в Tip. Random Factor — добавляет случайные оттенки в цвет волоса (1 — максимальное, 0 — минимальное отклонение от базового цвета);
9. Viewport — управляет отображением волос в основных видах сцены.
10. Leaning — задает вектор направления роста волос. Amount — степень влияния вектора роста на действительное направление роста волос, Random Factor – элемент случайности во влиянии Amount, Max Angle — максимальное отклонение волос от направления вектора. Select Vector — выбор вектора направления роста.
11. Bending — задает вектора загибания волос. Amount — степень влияния вектора загибания на действительное направление загибания волос, Random Factor — элемент случайности во влиянии Amount, Normal — загибаются в сторону вектора Leaning, Along Lean Direction — загибаются по своим дополнительно задаваемым в Select Bend Vectors векторам.
12. Random — вносит общий элемент случайности в процесс роста волос. Middle Strands, Vertex Strands — влияют на “перепутывание” волос в направлении роста.
13. Picture Quality — задает степень точности отображения волоска. View Density — количество волосков, отображаемое в видах MAX. Bezier Steps — количество вершин в кривых Безье на изгибах волос.
14. Illumination — задает различные свойства волоска как материала. Ambient/Diffuse/Specular — влияние общего, отраженного и преломленного света на волосок. Cast Shadow — задает, отбрасывают ли волосы тень, а Back Straits — принимают ли тени. |
|
Особенность Fur в том, что обычные источники света MAX не действуют на волосы. Для того, чтобы все же осветить их, нужно зайти в Create/Lights/Hair Enabled Lights (рис. 4) и создать несколько источников, либо в Shag Render конвертировать имеющиеся стандартные источники света в источники Hair Enabled, пригодные для Fur. Векторы же создаются в Create/Helpers/Shag Fur/Vectors (рис. 5) — затем их можно назначать волосам в качестве Leaning и Bending векторов. |
|
|
Рис. 4 |
Рис. 5 |
Параметры вектора:
1. Near/Far — задание области влияния для вектора (ближняя и дальняя);
2. Amount — задание степени влияния вектора в каждой из областей на волосы;
3. Random — генерация случайных возмущений;
4. Disable Before Near/After Far — отключение влияния вектора до Near или после Far областей, если это требуется.
Параметры Shag Render:
1. Quality/Memory — соотношение качества просчета к количеству отведенной под задачу памяти. Чем больше это значение, тем качественней отрендеренная картинка, но, вместе с тем, и больше расход памяти;
2. Cast Shadow — волосы отбрасывают тени;
3. Convert Lights to HairEnabled — стандартные источники света конвертируются в источники с Hair Enabled для того, чтобы падающий от них на волосы свет также учитывался. |
|
Волосы можно анимировать обычным образом. Например, “колыхать” их можно, изменяя положение соответствующих векторов Leaning и Bending при нажатой кнопке Animate, а заставлять расти — изменяя максимальную длину волос в каком-либо произвольном кадре. Однако все это требует большого терпения и усидчивости, так как сделать даже очень простое подобие прически в Fur – дело весьма кропотливое. Отдельной проблемой остается сглаживание границы волос прически на поверхности головы человека. Иначе можно получить голову куклы, утыканную волосами. В любом случае, сглаживание достигается манипуляциями с цветом корней волос (чтобы не было резкого отличия между цветом основания волоса и цветом головы модели человека) и правильно подобранной картой плотности – по краям прически плотность должна быть соответствующей. Ресницы же, напротив, делаются довольно просто, не требуя никаких особых завитков и завихрений.
Оживление персонажа: анимация волос
Так что возможности, открываемые модулем, огромны — надо только правильно их использовать.
ULTRASHOCK
Данный модуль встраивается в VideoPost систему 3DSMAX и предназначен для постобработки сцены: создания эффектов дыма, огня, всевозможных вспышек и прочих ошеломляющих эффектов (смерч), (вспышка) требующих взаимодействия с системами частиц. Отличие от Outburst заключается в том, что все это просчитывается и накладывается уже поверх отрендеренной картинки или ролика (в плоском виде), а не в самой трехмерной сцене, что может существенно сэкономить время рендеринга
|
|
.
Ultrashock — модуль постобработки
Создадим объект Ultrashock в сцене Create/Helpers/Ultrashock Helpers/Ultrashock.
Он отобразится в сцене в виде буквы “U”. Далее заходим в Modify/Modifiers/Ultrashock. Параметры модуля следующие:
+Parameter Selection
1. Select Particle System — выбор нескольких сред, систем частиц;
2. Particle Age Parameters — открывает меню Particle Age;
3. Plugins — выбор представления частиц;
4. Scene Preview — предварительный просмотр сцены; |
|
,Particle Age — диапазон действия системы;
1. Quick Preview — окошко предварительного просмотра частицы (анимация);
2. Particle Age Range — Begins At/Ends At — начало/конец действия системы;
3. Particle Selection — Every Nth/Nth Offset — просчитывать влияние каждой N-ной частицы и сколько частиц пропустить вначале;
4. Paint Brush Setting — задает кривые перехода Birth Trans, Death Trans, Birth Size, Death Size. Определяют прозрачность частицы вначале и в конце жизненного цикла. Пиктограмма кривой перехода вызывает окно диалога (рис. 6). Параметры кривой перехода:
Variation By Particle — вариация по частице;
Variation Strength — сила влияния вариации;
Variation Birth — начиная с какого кадра;
Variation Death — заканчивая каким кадром;
Variation By Age — вариация по времени жизни;
Seed — элемент случайности;
Frequency — 0.5 — частота;
Fractal Noise — фрактальный шум;
Roughness — грубость, шероховатость частицы;
|
|
|
Рис. 6 |
5. Shadow Settings — задает то, каким образом тень от частицы проецируется на плоскость. Можно либо установить Use Brush Setting, либо задать собственные кривые перехода, как в Paint Brush Setting |
|
Type — Regular/Fractal/Turbulence — тип Noise частицы;
Size — размер частицы;
Horizontal Stretch — горизонтальное растяжение;
Vertical Stretch — вертикальное растяжение;
Turbulence Level — уровень детализации Noise при Turbulence;
Phase — задает порядок перетекания из начального хаоса в конечный (чем меньше, тем плавнее);
Noise Threshold — Hign/Low соотношение темных и светлых пятен на частице (контрастность).
Почти для каждого из перечисленных параметров можно задать кривую перехода Birth/Death. |
|
3. Default Color — задает одну из систем окрашивания частиц. Либо Default Color/Gradient, либо Pandora (в зависимости от времени)(рис. 8).
По умолчанию устанавливается Default Color.
Параметры Default Color:
Number of Colors — количество цветов в градиенте; Birth Inner, Death Inner, Birth Outer, Death Outer — задают кривые перехода для внешних и внутренних цветов частицы в начале действия системы и в конце. Blacken Colors “чернит” цвета.
4. Default Composite — определяет взаимодействие с остальной системой. Параметры следующие:
Alpha — альфа-канал для прозрачности (светлые участки — прозрачный, темные — непрозрачный);
Glow — к частице добавляется яркое свечение;
Darken — частица вычитается из сцены;
Blur — сцена под частицей размывается (эффекты искажения от горячего асфальта, костра, когда воздух кажется “густым” и вязким);
Blur Setting — сила влияния по цвету и по альфа-каналу.
5. Scene Preview
Preview — позволяет сделать только для Ultrashock системы, но не для сцены; |
Рис. 7 |
|
Рис. 8 |
|
|
|
Preview Scene — предварительный просмотр и сцены и результата работы Ultrashock
Теперь, когда все параметры заданы, остается только отрендерить сцену в стандартном Video Post пакета 3DSMAX. Video Post предназначен как раз для пост-обработки отрендеренных изображений. При этом создается некоторая очередь из слоев, которая включает саму сцену и то, что должно быть отрендерено поверх нее (ближе к наблюдателю) или за ней (дальше от наблюдателя). Можно также использовать маску и альфа-канал для прозрачности.
Для того, чтобы создать очередь в Video Post, выберите нужный вид, зайдите в Render/Video Post — откроется диалог. Сделайте Add Image Filter Event – для Ultrashock Shadow, затем Add Scene Event для Camera сцены, и снова Add Image Filter Event для Ultrashock Shader и Ultrashock Blur. После этого можно рендерить сцену, результат работы Ultrashock будет наложен поверх нее в модуле Video Post. |
|
DIRTYREYES
Большинство изображений, созданных на компьютере, отличаются излишней четкостью линий, идеальностью и непогрешимостью. Это режет глаз и сразу выдает их происхождение. Теперь есть возможность вносить в трехмерную модель сцены некоторые возмущения, чтобы при рендеринге она выглядела не так идеально.
Например, можно “помять” корпус автомобиля или поверхность лица человека, убрать острые углы сглаживанием, заретушировать стыки поверхностей, особенно если они должны выглядеть единым целым одного живого организма и двигаться, — при этом можно сделать так, чтобы вершины сопрягающихся поверхностей перемещались по некоторому закону (в зависимости от областей влияния) так, чтобы оставалось впечатление “складок” тела при движении. Компьютерные художники хотят, чтобы их изображения выглядели все более и более реалистично, чтобы эффект “идеальности” был максимально уменьшен. С этой целью был создан и модуль Dirtyreyes. Он предназначен для придания объекту эффекта “старости”. Если вы когда-нибудь копались на чердаке и держали в руках какую-нибудь пыльную и грязную древнюю посудину или статуэтку, то вы хорошо представляете себе, что можно сделать с новой идеальной вещью при помощи этого модуля. Он просчитывает положение частичек древней грязи, черноты и копоти на предмете и может запросто превратить новую серебряную ложку из сервиза в ее древнее потускневшее подобие.
Рассмотрим возможности этого модуля. После того, как компоненты установлены, выделите объект, которому вы хотите придать налет старины, и заходите в Modify/Modifiers/More Sets/DirtyReyes.
Установите Map Path/Resolution — промежуточный файл, куда будет генериться текстура (рис. 9). Затем установите Resolution — чем больше это значение, тем более четко будет выглядеть результат (просчет текстуры), чем меньше — тем более размытой будет картинка. Затем в меню DirtyReyes сделайте Select Material/Selected Objects/<Название материала объекта> (рис. 10) Сделайте его копию (в примере материал называется DOGMetal) и нажмите Start Calculation (окно редактора материалов должно быть при этом открыто). После того, как текстура с эффектом старости индивидуально просчитана для данного объекта и файл с ней создан, в редакторе материалов на месте материала-копии появляется новый материал с картой diffuse и уже установленными параметрами DirtyReyes mix (рис. 11). Остается только переназначить его выбранному объекту, нажав Apply Material и Apply Texture в меню DirtyReyes и отрендерить сцену. Сравнить изображение до и после рендеринга можно на следующей картинке. |
|
|
Рис. 10 |
|
Рис. 9 |
|
CLOTHREYES
Когда-то все персонажи, выполненные на компьютере, выглядели как пластиковые куклы, раскрашенные в яркие кричащие цвета. Их тела, лица, волосы, головы и прочие части выглядели ненатурально, как пластмассовые. Об одежде вообще не приходится говорить — ее просто не было, а в самых ответственных местах можно было увидеть некие пластмассовые насадки (на локтях и плечах у рыцарей, на животах, вместо пуговиц, — у клоунов, и на ногах, вместо ботинок — у нормальных людей). От всего этого ужаса до созданных профессиональными художниками анимированных персонажей — долгий путь. Но он был пройден, и сейчас все описанное выше используется скорее при первичном пре-рендеринге сцены (preview), когда точные формы и реалистичность объектов не имеют значения, а выверяется общее их расположение, постановка камер, света и динамика их движения. Таким было прошлое. Что же стало доступным сейчас? Если не почти все, то очень и очень многое. Например, можно запросто делать одежду, всевозможные тряпки, лоскутки и прочие вещи и тут же одевать в них персонажей сцены. При этом у каждого куска материи, помимо стандартных свойств материала, могут быть свои свойства упругости/вязкости/прочности; такую тряпку можно бросать, заворачивать в нее различные объекты, делать флаги, полотнища и транспаранты, и даже рвать. Если представить все это в процессе анимации (развевающийся флаг, материя, рвущаяся под весом какого-либо предмета или просто под собственной тяжестью — и все это абсолютно без всякого вмешательства со стороны художника! Достаточно задать объекту свойства “тряпичности”, вес и поставить ветер — дальше все произойдет само по себе (вернее, по законам физики, заложенным в модуль), — просто дух захватывает.
А имя всему этому — Clothreyes.
Давайте поближе познакомимся с этим модулем. Рассмотрим три наиболее часто встречающихся общих случая: “тряпочная” плоскость падает на недеформируемый шарик (деформация плоскости), “тряпочный” шарик падает на недеформируемую плоскость (деформация шарика), развевающийся на ветру флаг (деформация плоскости под действием ветра)
+“Тряпочная” плоскость падает на недеформируемый шарик.
В этом примере демонстрируется, как в деформации может участвовать группа граней объекта.
После того, как модуль установлен, зайдите в Create/Objects/REM Primitives и создайте, например, Hexamesh (гексагональная плоскость, рис. 12). Теперь создаем шарик, выделяем все в сцене, входим во вкладку Modify/Modifiers/ClothReyes 2.0 и делаем Object/Make Scene — при этом система запрашивает имя файла, куда будут сохранены все расчеты ClothReyes (рис. 13). Затем делается тряпочка Object/Make Fabric: для шарика Sphere указываем — No (оставить как есть), для плоскости Hexa — Yes (сделать тряпочным объектом). Расположите плоскость-тряпочку над шариком так, чтобы центры объектов оказались примерно на одной вертикали. |
|
|
Рис. 12 |
Рис. 13 |
Параметры тряпочки Fabric:
1. Stretch Limit — насколько растягивается тряпочка;
2. Friction — шероховатость;
3. Springs Const/Cushion — сила натяжения (оттянуть тряпочку — возврат в первоначальное положение);
4. Torsion Const/Cushion — упругость;
5. Gravity — сила притяжения;
6. Mass — масса;
7. Air Friction — сопротивление воздуха (влиянию ветра);
8. Collision Distance — с какого расстояния начинается деформация тряпочки (при этом участвующие в деформации объекты фактически могут и не касаться друг друга);
9. Frame Delay — сколько кадров “прошло” до момента начала просчета деформации (этот параметр устанавливается, если вы хотите наблюдать за деформацией не с самого начала, а начиная с некоторого места, когда часть тряпочки уже деформирована. Это место определяется числом кадров, которые уже “прошло” с момента начала деформации);
10.Tearable, Tearing — разрешает разрывы на тряпочке; |
|
|
11.Rigidity — разрешает эластичность Elasticity и устанавливает ее величину.
12.Ignore SelfCollisions — при просчете игнорируются все самопересечения граней тряпочки, что вызывает не всегда реалистичную деформацию, но зато ускоряет процесс.
Затем нужно выбрать в ниспадающем меню Sub-Object/Face, выделить все грани объектов и сделать их группой, присвоив ей какое-нибудь имя.
Не обращайте внимания на Related Muscle Group — этот параметр нужен для совместного использования с модулем ClayStudio, который позволяет делать “мышцы” методом обтягивания.
После всего этого нажмите Start Calculation и укажите диапазон кадров для просчета. Кроме того, потребуется задать силу ветра (Wind — на панели меню) и скорость сцены (Speed) (рис. 14). |
|
Рис. 14 |
|
Чтобы ускорить просчет сцены, выберите размер Small и установите опцию Ignore Small Polygons (рис. 15) – система начнет предварительные вычисления столкновения шарика с плоскостью (Computing Scene). Иногда это весьма длительный и требующий значительных вычислительных мощностей процесс. Вся анимация при этом выполняется автоматически. Когда сцена просчитана, и все данные о деформации тряпочки занесены в указанный вами вначале файл, можно просмотреть полученную анимацию в одном из основных видов 3DSMAX и, если все в порядке, теперь уже отрендерить сцену. |
Рис. 15 |
Краткий перечень других модулей для 3DSMAX 2.0
и их возможностей:
1. Splash — создание всевозможных всплесков, волнений, воронок на водной поверхности;
2. Metaballs — представление трехмерной модели в виде набора различных по свойствам и силе взаимодействия шариков по всему объему объекта. Плавность линий и контуров при движении модели достигается построением общей для всех пограничных шариков пространственной касательной. Таким образом, модель как бы сглаживается за счет большого количества разнообразных шариков, равномерно распределенных по всему объему и заполняющих его;
3. Character Studio — универсальный модуль, предназначенный для анимации, в основном, двуногих персонажей (количество ног фиксировано; количество пальцев, наличие хвоста и рук, количество, размеры и форма хребетных костей регулируется).
Привязанность к двум ногам объясняется встроенной системой перемещения, разработанной специально для двуногих персонажей.
Она напоминает некую систему танцевальных па: достаточно расставить по сцене контрольные ступни-шаги каждой из ног (левая и правая), задать тип движения персонажа (шагом, бегом, ползком, вприпрыжку) и герой сам пропрыгает по заданным “следам” с учетом своего веса. Затем на скелет героя натягивается его внешняя оболочка — детализированная трехмерная модель, и анимация готова.
4. Bones — еще один модуль, предназначенный для анимации персонажей любой формы и любой сложности. В его основе лежит скелет из “костей” произвольной структуры, которые притягивают вершины объекта по всему объему с различной силой.
При расчете положения каждой вершины учитывается влияние всех “костей” хребта. |
,“Тряпочный” шарик падает на недеформируемую плоскость
В этом случае следует разместить шарик над плоскостью, затем проделать все то же самое, но только теперь в роли тряпочки будет выступать шарик (Make Fabric для него Yes).
-Флажок
В этом примере демонстрируется, как зафиксировать группу вершин объекта.
|
|
Здесь необходимо предварительно создать циллиндрическое древко флага и разместить вертикально плоскость — будущий флаг. Далее последовательность действий та же самая, но в Sub-Object теперь необходимо выбрать и назначить группу Vertex — вершин, а не граней, как раньше. Для этого вся крайняя левая вертикальная колонка вершин плоскости флага (смежный с древком край плоскости) выделяется и назначается в одну группу Make Group/Left Edge — для того, чтобы эта группа вершин оказалась “зафиксированной” по отношению к флагу: Group Not Fixed — Fix Group To Object с указанием цилиндра в качестве объекта привязки. Теперь, если анимировать древко (например, раскачивать его), то тряпочка-флаг будет следовать за ним, так как положение вершин левого края тряпочки зафиксировано на древке. Далее остается только задать ветер по различным координатным осям: Wind X, Wind Y, Wind Z и установить Gravity = 0, чтобы флажок свободно трепыхался на ветру. После того, как вы нажмете Start Calculation, флажок оживет. |
При анимации ClothReyes иногда может возникать ситуация, когда грани деформируемых объектов “залезают” друг на друга или внутрь плоскости. В этом случае следует просто увеличить число кадров сцены.
|