Como fazer com que um fader na Janela Personalizada chame cenas

Discussões sobre o programa Lumikit SHOW.
Avatar do usuário
Lumikit-Dimitri
Mensagens: 21
Registrado em: 22 Jan 2025, 16:51

Olá pessoal, tudo bem?
Aqui é o Dimitri do Suporte da Lumikit.

Recentemente recebemos uma dúvida sobre se daria para fazer uma coisa no Lumikit SHOW.
É possível chamar cenas por um fader da Janela Personalizada?

A resposta é sim! É mais complexo de fazer, pois é necessário fazer um script para isso, mas é possível sim.

Nesta publicação eu vou mostrar pra vocês como chamar/trocar cenas por fader em uma Janela Personalizada no Lumikit SHOW.


Para começar, nós vamos precisar ter algumas cenas, uma Janela Personalizada, e um fader nesta Janela Personalizada.

Vou usar o arquivo template3.show que já vem ao instalar o programa.

Como este show não tem uma Janela Personalizada criada, vou criar a minha, clicando no botão Janelas > Configuração das janelas personalizadas ....
{4711B149-11E4-4F8C-BAD3-5A3C7B22C026}.png

E então habilitando a primeira, e dando um nome pra ela.
{1FF12EFB-87CD-435B-9D03-C7E4BE25E97A}.png

Então vou ativar o Modo Edição desta Janela Personalizada clicando no botão Edit para adicionar o nosso fader.
Com o botão direito do mouse, adicionamos o fader.
{9BC20ED5-67CC-4B25-BADA-B19777B6A627}.png

Então clicamos com o botão direto no fader, e selecionamos a opção Editar...
{E296AECF-E714-4B9C-983D-82756D8C2C7B}.png

Na janela da função do botão que vai abrir, dê um nome descritivo para o fader (por exemplo "Fader Cena") e selecione a função Script.
Então entre na aba Código do script e clique no botão Novo.... Dê um nome que descreva o que este script faz. Aqui vou dar o nome de "FaderTrocaCena".
{AF14C321-65AA-44DF-9DC8-D0B8A1336E5F}.png

Copie o código abaixo, e cole ali na caixa de texto do script (ele também está disponível em arquivo .lumiscript, confira nos anexos da publicação):

Código: Selecionar todos

// Author: Lumikit
// Date:   08/01/2025
// Script: Fader chama cenas

const
  UI_PAGE_1 = 1;
  UI_SCENE_1 = 2;

  UI_PAGE_2 = 3;
  UI_SCENE_2 = 4;

  UI_PAGE_3 = 5;
  UI_SCENE_3 = 6;

  UI_PAGE_4 = 7;
  UI_SCENE_4 = 8;


var
  LastValue: integer;
  CenaAtual: integer;


procedure OnRegister;
begin
  // cria a caixa de texto para informar qual pagina/cena sera chamada,
  // quando o valor do fader estiver entre 0% e 25%
  RegisterUIValue(UI_PAGE_1, '0-25 Pagina', 1, 1, 100);
  RegisterUIValue(UI_SCENE_1, '0-25 Cena', 1, 1, 16);

  // ... quando o valor do fader estiver entre 26% e 50%
  RegisterUIValue(UI_PAGE_2, '26-50 Pagina', 1, 1, 100);
  RegisterUIValue(UI_SCENE_2, '26-50 Cena', 1, 1, 16);

  // ... quando o valor do fader estiver entre 51% e 75%
  RegisterUIValue(UI_PAGE_3, '51-75 Pagina', 1, 1, 100);
  RegisterUIValue(UI_SCENE_3, '51-75 Cena', 1, 1, 16);

  // ... quando o valor do fader estiver entre 76% e 100%
  RegisterUIValue(UI_PAGE_4, '76-100 Pagina', 1, 1, 100);
  RegisterUIValue(UI_SCENE_4, '76-100 Cena', 1, 1, 16);
end;


procedure OnStart;
begin
    CenaAtual := 0;
end;


procedure OnExecute;
var
  Dimmer100: integer;
begin
  // pegamos o valor do fader, e convertemos de 0-255 para 0-100
  Dimmer100 := Trunc(GetDimmer / 2.55);

  // se o valor mudou, vamos fazer alguma coisa
  if (LastValue <> Dimmer100) then
    begin
      LastValue := Dimmer100;

      // se o fader estiver entre 0 e 25 (e se a cena que queremos, nao esta selecionada)
      if ((LastValue >= 0) and (LastValue <= 25) and (CenaAtual <> 1)) then
        begin
          CenaAtual := 1;
          DoSceneChange(GetUIValue(UI_PAGE_1) - 1, GetUIValue(UI_SCENE_1) - 1);
        end
      else
        begin
          // se o fader estiver entre 26 e 50 ...
          if ((LastValue >= 26) and (LastValue <= 50) and (CenaAtual <> 2)) then
            begin
              CenaAtual := 2;
              DoSceneChange(GetUIValue(UI_PAGE_1) - 1, GetUIValue(UI_SCENE_2) - 1);
            end
          else
            begin
              // se o fader estiver entre 51 e 75 ...
              if ((LastValue >= 51) and (LastValue <= 75) and (CenaAtual <> 3)) then
                begin
                  CenaAtual := 3;
                  DoSceneChange(GetUIValue(UI_PAGE_1) - 1, GetUIValue(UI_SCENE_3) - 1);
                end
              else
                begin
                  // se o fader estiver entre 76 e 100 ...
                  if ((LastValue >= 76) and (LastValue <= 100) and (CenaAtual <> 4)) then
                    begin
                      CenaAtual := 4;
                      DoSceneChange(GetUIValue(UI_PAGE_1) - 1, GetUIValue(UI_SCENE_4) - 1);
                    end
                end
            end
        end
    end;
end;


procedure OnTerminate;
begin
  DoTerminate;
end;
Então clique no botão Compilar.
{82EFD19E-9D77-4286-8E81-CE1F702A249C}.png

Se você copiou errado, aparecerão mensagens de erro. Se este for o caso, confira o passo a passo novamente e refaça o processo corretamente.

Seguindo, entre na aba Parâmetros do script.

Na janela, aparecerão 8 campos.
O script que fizemos permite que o fader chame até 4 cenas.
Os dois primeiros campos (os "0-25") indicam qual seria a primeira cena a ser chamada; para isso precisamos informar qual a página e qual a cena. Isso se repete para as outras 3 cenas.
image.png

No meu caso aqui, informei que quando o fader estiver entre os valores 0 até 25, chame a cena 1 da página 7; quando estiver entre 26 até 50 chame a cena 2 da página 7; quando estiver entre 51 até 75 chame a cena 3 da página 7; e quando estiver entre 75 até 100 chame a cena 4 da página 7.


E é isso! A programação/configuração está pronta.
Ao testarmos, veremos que ao mudar o valor do fader, as cenas vão sendo chamadas conforme nós informamos ali nos parâmetros do script.






tags: Lumikit SHOW, Janela Personalizada, script
Anexos
FaderTrocaCena.lumiscript
Responder