→ Модостроение → Модостроение
ThirteenDogs 5 ноя 2014
[ЗП] Анимированая текстура на HUD
К примеру создали мы HUD маски для шлемов и теперь хочется эффект дыхания в шлеме.
Пример кода:
Файл: bind_stalker.script
Функция: actor_binder:update(delta)
Писать не буду как создается анимация света, так как есть видео от Непряхина. Будем использовать готовую анимацию det_on_off.
Файл: ui_custom_msgs.xml
дышит.
light_anim="det_on_off" - Имя анимации из файла lanims.xr. Цвет в анимации должен быть от черного к белому, или наоборот "не имеет значения".
la_alpha="1" - Разрешаем альфу в текстуре. 1 - включена \ 0 - выключена.
la_cyclic="1" - Зацикливание анимации. 1 - включен \ 0 - выключен.
Пример кода:
Файл: bind_stalker.script
Функция: actor_binder:update(delta)
local slot_12 = db.actor:item_in_slot(12)
if slot_12 and
slot_12:section() == "helm_battle" then
local cs = get_hud():GetCustomStatic('hud_scientific')
if cs == nil then
get_hud():AddCustomStatic('hud_scientific', true)
end
else
local cs = get_hud():GetCustomStatic('hud_scientific')
if cs ~= nil then
get_hud():RemoveCustomStatic('hud_scientific', false)
end
end
Файл: ui_custom_msgs.xml<hud_scientific x="0" y="0" width="1024" height="768" stretch="1">
<texture>текстура</texture>
</hud_scientific>
Но эффект хочется без лишнего "заимствованного" кода. К счастью текстуру на худе можно анимировать при помощи анимации света. Файл: ui_custom_msgs.xml
<hud_scientific x="0" y="0" width="1024" height="768" stretch="1" light_anim="det_on_off" la_alpha="1" la_cyclic="1">
<texture>текстура</texture>
</hud_scientific>
Все, текстура на маске light_anim="det_on_off" - Имя анимации из файла lanims.xr. Цвет в анимации должен быть от черного к белому, или наоборот "не имеет значения".
la_alpha="1" - Разрешаем альфу в текстуре. 1 - включена \ 0 - выключена.
la_cyclic="1" - Зацикливание анимации. 1 - включен \ 0 - выключен.
0 3 1
Для добавления комментариев необходимо авторизоваться
Братва
Здесь все по понятиям: отчаянные перестрелки...