Форумы на Наша-Life
Home user CP  
Календарь событий Найти других пользователей Часто задаваемые Вопросы Поиск  
Автор
Тема
Создать Новую Тему    Ответить
Stridemann
(Инженер-изобретатель)

Зарегистрирован: Jun 2009
Проживает: Украина/Киев/
Написал: 2304 сообщений

Оценка: 95 Votes 95 чел.

Developer 
Question 
Изменить материал с material_modify_control
Сообщение #977593
Здарова мужики. С этой траблой уже воюю 2 месяца.

==========================================================

Кароче есть энтитя material_modify_control и нужно с помощью ней управлять прозрачностью текстуры через Var'ы(переменные. походу шейдера). Текстура на моделе(но material_modify_control пашет и с func_brush. вальв так делали в еп2). Делается через проксы текстуры.(список всех прокси) Чтоб юзать material_modify_control к текстуре нужно знать переменную (Var).
К примеру чтоб управлять анимированой текстурой в вмт текстуры прописываем проксы:

"Proxies"
{
"MaterialModifyAnimated"
{
"animatedtexturevar" "$basetexture"
"animatedtextureframenumvar" "$frame"
"animatedtextureframerate" .1
}
}

В material_modify_control припаренчиваем энтитю к этой моделе и в Material to modify пишем название текстуры. Далее в Material variable to modify (materialVar) пишем $frame. (это переменная).
И в хаммере инпутами к этой энтите управляем анимацией. Инпут в формате:
<с какого фрейма> <по какой> <скорость> <повторение(1\0)>
К примеру >Material_modify_control>StartAnimSequence 1 4 1 1
Проигрывать с первого по 4-й фрейм со скоростью 1 кадр\сек с повторением.

============================================================

Теперь в чем трабла. Это всё управление анимацией. А нужно мне управлять прозрачностью ($alpha). Но я НЕ ЗНАЮ не переменных, не что писать в проксах. Нашел прокси которые изменяют прозрачностью с заданным интервалом, скоростью и т. д. Вот они:

"Proxies"
{
"Sine"
{
"resultVar" "$alpha"
"sineperiod" 8
"sinemin" 0
"sinemax" 1
}
}

Даже если в Material variable to modify (в энтите) прописать $alpha и инпутом SetMaterialVar (с разными параматрами) и управлять, то не работает.
Пробовал даже так:

"VertexLitGeneric"
{
"$baseTexture" "models\..."
"$offset" 1

"Proxies"
{
"Sine"
{
"resultVar" "$alpha"
timeoffset $offset
"sineperiod" 8
"sinemin" 0
"sinemax" 1
}
}
}

А $offset - declare custom var (объявление своей переменной..)

Предположительно для этой переменной инпут к энтите будет мaterial_modify_control>SetMaterialVar 1 (или 0 иль 0.1; 0.2... 1)

Помогла ещё статья-тутор http://www.nodraw.net/2010/01/dynam...ls-with-proxies

Не работает никак. Ребят, как же управлять прозрачностью? Помогите плиз .

Поправил Stridemann 20-07-2010 в 12:12

Old Post 20-07-2010 11:15
Stridemann отсутствует Посмотреть данные 'Stridemann' Отправить Приватное Сообщение для 'Stridemann' Найти другие сообщения 'Stridemann' Добавить Stridemann в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stridemann
(Инженер-изобретатель)

Зарегистрирован: Jun 2009
Проживает: Украина/Киев/
Написал: 2304 сообщений

Оценка: 95 Votes 95 чел.

Developer 
Сообщение #977616
Йомайо. Всё легче чем я думал. Нужно было только это вписать:

"Proxies"
{
"MaterialModify" {}
}
И всё. Капец.
Товарищ manJak помог. Респект!!!
Old Post 20-07-2010 13:54
Stridemann отсутствует Посмотреть данные 'Stridemann' Отправить Приватное Сообщение для 'Stridemann' Найти другие сообщения 'Stridemann' Добавить Stridemann в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
4IF
(Dance!)

Зарегистрирован: Mar 2007
Проживает: Россия/Москва
Написал: 1787 сообщений

Оценка: 46 Votes 46 чел.

Старожил 
Сообщение #977642
Ох ты, кажется что то интересное.
А что именно делает эта интитя? То же самое что вортигонты делали с Аликс (:З) в еп2? Можно узнать по подробнее?
Old Post 20-07-2010 18:44
4IF отсутствует Посмотреть данные '4IF' Отправить Приватное Сообщение для '4IF' Найти другие сообщения '4IF' Добавить 4IF в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
manJak
(маппер-теоретик)

Зарегистрирован: Feb 2006
Проживает: Mother Russia/Moscow
Написал: 2953 сообщений

Оценка: 66 Votes 66 чел.

Developer Старожил 
Сообщение #977643
Master 4if
material_modify_control позволяет менять любые параметры любого материала у энтити, к которой прикреплён) При условии, что в проксях этого материала есть MaterialModify или MaterialModifyAnimated.
Old Post 20-07-2010 18:54
manJak отсутствует Посмотреть данные 'manJak' Отправить Приватное Сообщение для 'manJak' Найти другие сообщения 'manJak' Добавить manJak в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
4IF
(Dance!)

Зарегистрирован: Mar 2007
Проживает: Россия/Москва
Написал: 1787 сообщений

Оценка: 46 Votes 46 чел.

Старожил 
Сообщение #977644
Тоесть скажем так что я могу с течением какого то времени поменять отражающие свойства той или иной текстуры прямо в игре?
Скажем например что я хочу сделать дождь и сделать постепенно намокающую текстуру?
Или же я согу сделать постепенно замораживающееся окно?
)
Old Post 20-07-2010 19:21
4IF отсутствует Посмотреть данные '4IF' Отправить Приватное Сообщение для '4IF' Найти другие сообщения '4IF' Добавить 4IF в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
lilo.panic
(Senior Member)

Зарегистрирован: Aug 2009
Проживает: Russian Federation/
Написал: 234 сообщений

Оценка: 18 Votes 18 чел.

Сообщение #977645
Или можно сделать бленд, например, с нормального металла на ржавчину, с нормальной органики на гнилую?

Если да, то была у меня давнииишняя идейка со старением материалов. Интересно было бы попробовать!

p.s. я-то думал, что это безнадежно, а оказывается шансы есть! =)
Old Post 20-07-2010 19:23
lilo.panic отсутствует Посмотреть данные 'lilo.panic' Отправить Приватное Сообщение для 'lilo.panic' Найти другие сообщения 'lilo.panic' Добавить lilo.panic в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
 
Stridemann
(Инженер-изобретатель)

Зарегистрирован: Jun 2009
Проживает: Украина/Киев/
Написал: 2304 сообщений

Оценка: 95 Votes 95 чел.

Developer 
Сообщение #977647
Master 4if
Да, но...
Ето делается разными способоми. То же окно. Делать анимацию замораживания, или же медленное появление льда...
Но всем этим управлять полюбе этой энтитей.
Old Post 20-07-2010 19:29
Stridemann отсутствует Посмотреть данные 'Stridemann' Отправить Приватное Сообщение для 'Stridemann' Найти другие сообщения 'Stridemann' Добавить Stridemann в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
4IF
(Dance!)

Зарегистрирован: Mar 2007
Проживает: Россия/Москва
Написал: 1787 сообщений

Оценка: 46 Votes 46 чел.

Старожил 
Сообщение #977649
блиииин, круто однако, сразу столько простора для геймплейных идей.
Ну например игрок включает какой нибудь гениратор и помещение начинает прогреваться, с помощью этой интити мы заставляем текстуры "намокнуть", а стекло разморозится. И вот нам открывается отличный вид...
Хм, а есть ли полное описание или тутор какой по этой интити, уж больно её поизучать хочется
Old Post 20-07-2010 19:45
4IF отсутствует Посмотреть данные '4IF' Отправить Приватное Сообщение для '4IF' Найти другие сообщения '4IF' Добавить 4IF в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stridemann
(Инженер-изобретатель)

Зарегистрирован: Jun 2009
Проживает: Украина/Киев/
Написал: 2304 сообщений

Оценка: 95 Votes 95 чел.

Developer 
Сообщение #977650
Припаренчиваем материал модифай к объекту, состоящему из 2-х или более брашей с разной тексой (выделить все браши и превратить в func_brush)(ВНИМАНИЕ! возможны вылеты и краши при использовании этой энтити к брашу. У самого было. Анимахой управлял), указываем текстуру материала одного из брашей, и в переменной указываем $alpha. (manJak, ГДЕ ВЗЯТЬ ПЕРЕМЕННЫЕ??? ЫЫыыы...)
И инпутом мaterial_modify_control>SetMaterialVar 1 (или 0 иль 0.1; 0.2... 1) управляем появлением.

manJak, будет ли так работать? Т. е. в один объект состоит из нескольких частей с разными материалами.

Вообще на моделе бы работало. 100% Одна модель- один объект состоящий из 1-й части и использующий несколько материалов.

manJak, или можно это сделать мение геморно? Чтоб текстура медленно менялась на другую.. Напиши плиз..

stridemann добавил 20-07-2010 в 20:00:25:
Туторы есть только 2. НА русском. И то одинаковые. Там сказано как работает каунтдаун (таймер) в конце ЕП2 (когда жмешь на кнопку). И всё. Ещё есть тут. Но вальв влоооом было написать тутор.) Поэтму там только короткое описание...
Old Post 20-07-2010 19:52
Stridemann отсутствует Посмотреть данные 'Stridemann' Отправить Приватное Сообщение для 'Stridemann' Найти другие сообщения 'Stridemann' Добавить Stridemann в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
manJak
(маппер-теоретик)

Зарегистрирован: Feb 2006
Проживает: Mother Russia/Moscow
Написал: 2953 сообщений

Оценка: 66 Votes 66 чел.

Developer Старожил 
Сообщение #977652
> можно сделать бленд, например, с нормального металла на ржавчину, с нормальной органики на гнилую?
При условии, конечно, что конкретный шейдер позволяет смешивать текстуры) Иначе - юзать анимированные тексы, а это нехилый расход памяти.
Ещё вариант - два слоя геометрии, второй с $decal чтобы не было z-файтинга. Меняя второму альфу можно блендить целые материалы (а не просто текстуры).

> ГДЕ ВЗЯТЬ ПЕРЕМЕННЫЕ???
src\materialsystem\stdshaders Ну там vertexlitgeneric_dx9.cpp и т.п.
А так же src\materialsystem\shaderlib\BaseShader.cpp (общие для всех шейдеров).

> будет ли так работать?
Не знаю, я же этой энтитью вообще никогда не пользовалься. =) Но думаю дух экспериментаторства в вас ещё не угас.

> можно это сделать мение геморно?
Ну можно две энтити с однаковыми моделями (или брашевой геометрией) совместить в одной точке, и опять же на одну из них натянуть материал с $decal и менять этой энтите альфу инпутом alpha)
Old Post 20-07-2010 20:29
manJak отсутствует Посмотреть данные 'manJak' Отправить Приватное Сообщение для 'manJak' Найти другие сообщения 'manJak' Добавить manJak в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stridemann
(Инженер-изобретатель)

Зарегистрирован: Jun 2009
Проживает: Украина/Киев/
Написал: 2304 сообщений

Оценка: 95 Votes 95 чел.

Developer 
Сообщение #977660
>>с $decal
чтобы не было z-файтинга.
>>на одну из них
натянуть материал с $decal

А можно подробнее про $decal. Чет я тут не понял. Вписать параметр $decal 1 в вмт изменяемого материала ? Не шарю. Шо-то я туплю...
Old Post 20-07-2010 21:31
Stridemann отсутствует Посмотреть данные 'Stridemann' Отправить Приватное Сообщение для 'Stridemann' Найти другие сообщения 'Stridemann' Добавить Stridemann в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
manJak
(маппер-теоретик)

Зарегистрирован: Feb 2006
Проживает: Mother Russia/Moscow
Написал: 2953 сообщений

Оценка: 66 Votes 66 чел.

Developer Старожил 
Сообщение #977711
> Вписать параметр $decal 1 в вмт изменяемого материала ?
Да)
Old Post 21-07-2010 08:29
manJak отсутствует Посмотреть данные 'manJak' Отправить Приватное Сообщение для 'manJak' Найти другие сообщения 'manJak' Добавить manJak в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stridemann
(Инженер-изобретатель)

Зарегистрирован: Jun 2009
Проживает: Украина/Киев/
Написал: 2304 сообщений

Оценка: 95 Votes 95 чел.

Developer 
Сообщение #977741
...чтобы если 2 фейса 2-х брашей на одном уровне не мигали и не глючили тестурой..
Всё ясно.. Спс ^_^
Old Post 21-07-2010 11:08
Stridemann отсутствует Посмотреть данные 'Stridemann' Отправить Приватное Сообщение для 'Stridemann' Найти другие сообщения 'Stridemann' Добавить Stridemann в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
off-log-Byte
(Junior Member)

Зарегистрирован: Jan 2010
Проживает: Россия/Магнитогорск
Написал: 396 сообщений

Оценка: 8 Votes 8 чел.

Сообщение #1075202
Для полноты темы тогда стоит положить это сюда.

Ну и от меня вопросец: Как проще и надёжнее останавливать анимацию по триггеру. Есть таймер, который считает с точностью до сотых долей секунды, вот как раз сотая доля это анимированая текстура, надо, чтобы засекать скорость прохождения как-то сказать этому чуду стоп

Цитата:
"UnlitGeneric"
{
"$basetexture" "signs/numb"
"$surfaceprop" "default"
"Proxies"
{
"MaterialModifyAnimated"
{
"animatedtexturevar" "$basetexture"
"animatedtextureframenumvar" "$frame"
"animatedtextureframerate" 100
}
}
}

в момент прохождения игроком триггера. Есть у кого мысли? А то он у меня пока просто возвращает текстуру на первый фрейм (то бишь, ноль).
Я знаю, что такое умножение! Это здорово – вроде как 14 умножить на 15, и получается 210, потому что это значит – 6 раз по 35 или 5 раз по 42.
Потому что это все равно что умножить 2 на 3, потом на 5 и на 7. Мне нравится цифра 210, потому что она сложена из четырех разных крепких чисел. © Моя заметка из Теста по Тьюрингу.
Old Post 09-08-2012 23:35
off-log-Byte отсутствует Посмотреть данные 'off-log-Byte' Отправить Приватное Сообщение для 'off-log-Byte' Найти другие сообщения 'off-log-Byte' Добавить off-log-Byte в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stridemann
(Инженер-изобретатель)

Зарегистрирован: Jun 2009
Проживает: Украина/Киев/
Написал: 2304 сообщений

Оценка: 95 Votes 95 чел.

Developer 
Сообщение #1075234
Ну сделай на каждый фрейм по триггеру (имя триггеров Tex_trig_01, Tex_trig_02 ...) Первый триггер активирует через 0,01 следующий триггер (или какая там у тебя скорость переключения). С каждого триггера на материал_модифай_контрол аутпут SetMaterialVar с цифрой фрейма.
Подаем один инпут на первый триггер- запускаем систему.. Чтобы остановить- инпут -> Tex_trig_* -> Disable (именно такой! Tex_trig_* , отключим сразу все триггеры)

Еще похожий вариант сделать всё маппингом) http://monolife.ucoz.ru/publ/cifrov...etchik/3-1-0-29

Можно сделать 2-мя ентитями (если кадров до 16-ти)
Ставим таймер, ставим logic_case, аутпут OnCase - SetMaterialVar с цифрой фрейма. Подаем инпут c таймера PickRandom. Для выключения - вырубаем таймер

Если более 16-ти фреймов - ставим logic_branch и еще один case. Аутпуты бранча:
OnTrue - case1 - PickRandom
OnFalse - case2 - PickRandom

Подаем инпут Test c таймера на бранч.

Добавляем аутпут в оба case с аутпута последнего слайда:
OnCaseN -> Branch -> Тоggle (А лучше с каждого case инпут SetValue (с первого case 0, со второго 1)

Поправил Stridemann 10-08-2012 в 13:40

Old Post 10-08-2012 13:35
Stridemann отсутствует Посмотреть данные 'Stridemann' Отправить Приватное Сообщение для 'Stridemann' Найти другие сообщения 'Stridemann' Добавить Stridemann в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Все время в GMT . Сейчас 17:19.
Создать Новую Тему    Ответить

Быстрый ответ
Ваше Имя:
Хотите Зарегистрироваться?
Ваш Пароль:
Забыли свой Пароль?
Вы можете оставлять свои комментарии анонимно, просто введя свои имя и оставив пустым поле пароля.
Ваш ответ:

[проверить размер]
[транслит в win] | [?]
[русская клавиатура]

Дополнительно: Подтверждение по E-Mail


Быстрый переход:
 
Оцените эту Тему:
 

Правила форума:
Создание Тем не разрешено
Создание Сообщений разрешено
Создавать Вложения не разрешено
Редактирование Сообщений не разрешено
Коды HTML запрещены
Коды форума разрешены
Смайлики разрешены
Коды [IMG] запрещены