Render.ru

Привязяать Dummy к прозрачности материала.

Рейтинг
51
#1
Нужен совет. Я приведу упрощенный пример так как требуется именно этот момент для использования в более сложной сцене.
Вот предположим у меня есть сфера, а перед сферой объект, например Dummy небольшого размера, привязанный к ней. К этому Dummy подгружается анимация и он начинает перемещаться. Диапазон перемещения небольшой.

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

Вопрос - как привязать перемещение Dummy к каналу прозрачности какого либо материала. Я конкретизирую материал. Пусть это будет материал Blend из двух материалов и к параметру смешивания (Mix Amount) надо задать значение перемещения Dummy. Причем для этого достаточно одной оси перемещения например Х(local).

Пусть начальное значение положения Dummy будет = 0
если положение Dummy > 0, то значение в материале = 0
если положение Dummy < 0, то значение в материале = "позиция локальной оси Х объекта Dummy" * "переменная - множитель установленная например слайдером или просто значением"

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

Думаю, что мне было бы удобнее в работе использовать Script Сontroller или Expression Сontroller.
Я совсем недвно начал ихучать MaxScript и пока не въехал ни в синтаксис ни в команды, поэтому мне сложно выразить свою мысль синтаксически. Требуется помошчь...
Если у меня все получится,(а так или иначе все равно все получится), то я перстану шифроваться и поделюсь задумкой (идейка-то интересная).

Как задачка? )
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#2
Много текста, не понятно в чем конкретно проблема ?
если проблемы с cинтаксисом включи макрорекордер
и прежде чем писать скритконтроллер отлаживай код стационарно
 
Рейтинг
51
#3
Sorry, я вопервых напутал с больше меньше в своем вопросе (тупею за компом). Сейчас попробую выразиться по проще.
Значит вот, есть такой алгоритм:
_____________________________________________________________
переменная multipiller = значение слайдера.
-- присваиваем значение слайдера в сцене, переменной "multipiller"

переменная opacity = параметр "mix amount"
-- присваиваем значение параметра "mix amount" в материале, переменной "mix amount"

переменная pos = позиция Dummy по локальной оси X
-- присваиваем значение позиции Dummy по оси X, переменной "pos"


переменная opacity = переменная pos * переменная multipiller
-- на случай если значение переменной pos будет слишком большим или маленьким откорректируем его переменной multipiller

если переменная opacity < 0 то переменная opacity = 0
-- нужно чтобы значение небыло меньше нуля

если переменная opacity > 100 то переменная opacity = 100
-- нужно чтобы значение небыло больше 100
_____________________________________________________________

Вот и все, помоему просто. Вот это надо написать на maxscript и сказть как это все назначить к материалу и слайдеру.

вместо:
переменная multipiller = значение слайдера.

можно сделать так:
переменная multipiller = просто конкретное значение.

А с синтаксисом нет никаких проблем - я его не знаю.
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#4
1 Материал бленд будет виден только на рендере, во вьюпорте земетен не будет.
По этому возми карту Mix на дифуз стандартного материала

2 такой Script Controller назначается на Position_Y Dummy01:
Код:
l = $Dummy01.pos.x - $Sphere01.pos.x
l = if l < 0 then 0 else l
l = if l > 100 then 100 else l
$Sphere01.material[1][4].mixAmount = l
0
 

pcmist

Пользователь сайта
Рейтинг
2
#5
я бы сделал через wire parameters и, скорее, связал бы не с dummy, а со slider-ом.
 
Рейтинг
51
#6
Гениально! Этот скрипт работает. По этой теме у меня будет только один персональный вопрос к Денису Савину.
Всем спасибо.
 
Сверху