Render.ru

ветер в паинт эффекте

Рейтинг
29
#1
Когда осел и шрэк пришли в жилище по холму- видели как там травка и цветочки

колыхались? Можноли какнить настроить травку из паинтэффекта чтобы

персонаж ее колыхал ?Мож както ветер можно от обьекта задать или еще

что?Подскажите.
 
#2
Паинт Эффектс никак не взаимодействует с объектами, это ж пост продакшн...
 
#3
Если постараться, то всё же можно. Сразу скажу: у меня нет готового отработанного решения, для этого требуется больше времени и больше навыков написания скриптов на MELе нежели есть у меня.
Коротко идея состоит в следущем: Траву можно получить располагая на NURBS поверхности кучу коротких штрихов (strokes) (например с помощью Auto Paint Random). С каждым штрихом будет связана своя уникальная кисть. У каждой кисти есть нужный нам в данном случае атрибут uniformForce , определяющий направление и величину внешней силы, действующей на траву наряду с turbulence forcee, имитирующей колыхание травы от ветра. По умолчанию uniformForceX=uniformForceY=uniformForceZ=0; Предположим , что с ногой персонажа, идущего по траве, связан локатор с именем Locator. Тогда можно определить составляющие uniformForce как функции расстояния между Locator и центром штриха (Stroke) , с которым связана данная кисть. При этом подразумевается, что таких штрихов много и все они достаточно короткие.

Итак, для одного штриха это будет выглядеть следующим образом.

Имя штриха - Stroke
Имя связанной с ним кисти - GrassBrush
Имя объекта, символизирующего ступню персонажа - Locator

Добавляем для GrassBrush два векторных атрибута ExtForcePos и ParentStrokePos.

Связываем в Connection Editor
Locator.center => GrassBrush.ExtForcePos
Stroke.center => ParentStrokePos

Далее открываем в AttributeEditor нашу кисть Brush и для её аттрибутов
UniformForceX, UniformForceY, UniformForceZ пишем следущее выражение:

float $ExtForceMag = .5;
float $ExtForceMaxDist = 1;
float $DistX = parentStrokePosX - ExtForcePosX;
float $DistY = parentStrokePosY - ExtForcePosY;
float $DistZ = parentStrokePosZ - ExtForcePosZ;

if ($DistX > $ExtForceMaxDist) uniformForceX = 0;
else uniformForceX = $ExtForceMag * (1-linstep(0,$ExtForceMaxDist,(parentStrokePosX - ExtForcePosX)));

if ($DistY > $ExtForceMaxDist) GrassBrush.uniformForceY = 0;
else uniformForceY = $ExtForceMag * (1-linstep(0,$ExtForceMaxDist,(parentStrokePosY - ExtForcePosY)));

if ($DistZ > $ExtForceMaxDist) GrassBrush.uniformForceZ = 0;
else uniformForceZ = $ExtForceMag * (1-linstep(0,$ExtForceMaxDist,(parentStrokePosZ - ExtForcePosZ)));


Анимируем положение Locator . Проигрываем анимацию и видим, что трава наряду с колыханием от "ветра" ещё и отклоняется при приближении к ней локатора на расстояние менее единицы.

А теперь осталось самое интересное : написать скрипт, который будет делать всё описанное выше для кучи strokes более элегантно. Каюсь, не столь силён в программировании на MELе. Поэтому оставляю сию задачу для более крутых (если кто всё же что-нибудь напишет на основе этой идеи, не забудьте поделиться скриптиком со мной) Я лишь хотел показать, что это такой эффект в принципе возможн.
 
#4
Выражение, приведённое в моём предыдущем посте, естествнно можно сделать короче, если заменить внутри linstep разницу координат ParentStroke и ExtForce
на уже посчитанную в начале выражения переменную $Dist (для X,Y и Z соответственно). Забыл поправить.
 
#6
Da vy chto, rebiata, s uma soshli?

Tam je est' Behavior/Turbulence/Grass Wind specialno dlia etih tselei. Vot daje tutorial na AliasWavefront: How to Create a Tree.

http://www.aliaswavefront.com/en/Tmpl/Maya/html/index.jhtml?page=/en/Community/Learn/how_tos/paint_fx_fur/paint_fx_fur_m.html#
 
#7
Для tundra : Прочитайте пожалуйста повнимательнее вопрос автора.
Речь идёт о взаимодействии травы PaintEffects с объектами в сцене.
Grass Wind влияет сразу на всю траву, созданную с помощью кисти с эти атрибутом. Вопрос был о том как заставить колыхаться траву именно в том месте, где по ней идёт персонаж.
А вот вам цитата из того места, куда я лезу первым делом в подобных
случаях :) :
"Grass Wind
Turbulence is applied as a world space force. The force applied to the tips of the tubes is delayed from that applied at the roots, resulting in motion similar to grass blowing in the wind."
Так что не спешите с выводами. :)
 
#8
A sozdat' "otdelnuiu" travu vokrug puti personaja i skompositit' ee? Ili sdelat' neskolko raznih Trax clips ( raznaia reaksia travy) i rasstavit' ih po puti?
How about some cheap trix ;-)
 
#9
У людей , занятых в этой индустрии, существует поговорка:
"It is good if it looks good". Что в моём вольном переводе выглядит как:
"Если это выглядит так, как нужно, значит это - то что нужно."
Любой способ приветствуется.
 
Сверху