В предыдущих сериях
Кароче, то, что в хаммере написано, что точность до 0,01 это не правда)) Это просто такая условность, чтобы выставлять пошагово что и за чем идёт. В реальности получается не 0,01, а 0,03333 примерно
Я это доказал опытным путём на сотне другой тестов, тщательно всё проверяя да хотя бы через тот же host_timescale. Именно по этому ТЫ САМ мне говорил, что только анимированной текстуркой это делается
Я думал ты мне напишешь, что-то такое...
[Предполагаемый_твой_совет_мне]
Измени свой шейдер с таково
Цитата:"UnlitGeneric"
{
"$basetexture" "signs/numb"
"$surfaceprop" "default"
"Proxies"
{
"MaterialModifyAnimated"
{
"animatedtexturevar" "$basetexture"
"animatedtextureframenumvar" "$frame"
"animatedtextureframerate" 100
}
}
}
на такой...
Цитата:"UnlitGeneric"
{
"$basetexture" "signs/numb"
"$surfaceprop" "default"
"$framerateoftimer" "0"
"Proxies"
{
"MaterialModifyAnimated"
{
"animatedtexturevar" "$basetexture"
"animatedtextureframenumvar" "$frame"
"animatedtextureframerate" "$framerateoftimer"
}
}
}
Создай ещё один material_modify_control с параметром не $frame, а $framerateoftimer и чутка измени триггеры. В триггере сброса таймера обращаешься к первому mmc, который изменяет само значение кадра на нуль. OnTrigger - mmc_numbmilsec - SetMaterialVar - 0. В триггере остановки таймера делай так OnTrigger - mmc_numbmilsec_framerate - SetMaterialVar - 0, а в триггере запуска таймера делай так OnTrigger - mmc_numbmilsec_framerate - SetMaterialVar - 100 и будет тебе счастье
[/Предполагаемый_твой_совет_мне]
Но ты такого не написал, да и то что выше я описал не работает. Может я что-то делаю не так? Или фреймрейт менять не дано? Хотя
тут сказано...
Цитата:animatedtextureframerate
Framerate in frames per second. Fixed; cannot be changed once set.
Или я не так понял смысл или криво перевёл, объясните исправлено, то что нельзя было менять фреймрейт или не исправлено?
off-log-Byte добавил 10-08-2012 в 23:19:11:
А даже, если и нельзя менять фреймрейт как тогда быть? Уж не мапингом же решать
Триггер должен моментально изменять какой-нибудь параметр в материале как-то типа такого...
Цитата:"UnlitGeneric"
{
"$basetexture" "signs/numb"
"$surfaceprop" "default"
"$ifstop" "1"
"Proxies"
if ($ifstop)
{
"MaterialModifyAnimated"
{
"animatedtexturevar" "$basetexture"
"animatedtextureframenumvar" "$frame"
"animatedtextureframerate" "0"
}
else
{
"MaterialModifyAnimated"
{
"animatedtexturevar" "$basetexture"
"animatedtextureframenumvar" "$frame"
"animatedtextureframerate" "100"
}
}
}
Ну или каким-то чудом нужно будет передавать в момент соприкосновения с триггером значения кадра анимированного материала в другой материал без анимации и просто отключать браш с анимацией и включать на его месте браш без анимации. Но это вообще мне не понятно реально ли это хотя бы теоретически.
off-log-Byte добавил 10-08-2012 в 23:33:29:
Стоп! Менять фреймрейт можно, ведь StartAnimSequence позволяет его менять же. Значит я наверное не так меняю его через прокси и material_modify_control. Может кто-нибудь тогда подскажет где у меня ошибка?
off-log-Byte добавил 10-08-2012 в 23:43:18:
а может вы просто скажете как пользоваться StartAnimSequence без задания первых значений? То бишь, StartAnimSequence <START_FRAME END_FRAME FRAMERATE LOOP> - указать анимационную последовательность для материала; START_FRAME – начальный кадр, END_FRAME – конечный кадр, FRAMERATE – частота кадров, LOOP – (0 или 1) повторяемость кадров; я имею в виду, быть может ей есть какая-нибудь альтернатива, чтобы не приходилось менять кадр на котором мы сейчас находимся? просто если не удастся заморозить и разморозить по триггеру фреймрейт, то не делать же мне динамическую модель и менять скорость через SetPlaybackRate какой-нибудь
off-log-Byte добавил 11-08-2012 в 00:18:47:
Всё после всех глупых и ещё более глупых попыток, таких как "OnTrigger - mmc_numbmilsec - StartAnimSequence - $frame $frame 0 0" у меня кончились идеи
Может кто знает как обратится к кадру, который сейчас используется текстурой? Ну типа... ну есть же к хаммере такие фитчи как !self, !activator и им подобные. Хотелось бы получить какой-нибудь !currentframe. Видать у меня уже крышак едет от этого всего.
off-log-Byte добавил 11-08-2012 в 00:22:44:
Или скажем, подскажите как получить из шейдера какое-нибудь значение. У меня же там $frame меняется. Вот каким-нибудь чудом можно ли записать это значение в какую-нибудь энтитю? Если да и из неё можно будет передать в какой-нибудь math_counter, то проблема решена. о_О
Я знаю, что такое умножение! Это здорово – вроде как 14 умножить на 15, и получается 210, потому что это значит – 6 раз по 35 или 5 раз по 42.
Потому что это все равно что умножить 2 на 3, потом на 5 и на 7. Мне нравится цифра 210, потому что она сложена из четырех разных крепких чисел. © Моя заметка из Теста по Тьюрингу.