Mataleone.com








    Tutorial 9: Usando Sprites, Brilho (Glow) e Rendering Properties

O env_sprite e o env_glow são entidades muito semelhantes. Ambas servem para que um sprite específico seja usado. A principal diferença entre as duas entidades é que o env_glow serve para fazer sprites permanentes, como por exemplo efeitos de brilho das lâmpadas, enquanto o env_sprite pode ser ativado ou desativado, fazendo com que seja possível o uso de outros efeitos nos mapas que não sejam permanentes (como os efeitos utilizados no Half-Life - Single Player, para simular o teleporte de monstros).

Os sprites do Half-Life sao figuras 2D estaticas ou animadas, e sao desenhados da mesma maneira nao importando sua posicao relativa ao jogador, ou seja, ele tem a mesma aparencia se visto de lado, de cima, de baixo, etc. Por causa disso, ele deve ser bem posicionado, senao ficara esquisito se visto de um angulo que nao foi previsto. Por exemplo, um sprite de fogo fica muito bom para ser visto de frente, mas se visto de cima, a chama parece estar na vertical.

Um Sprite de fogo visto de frente e de cima:

Aqui esta uma listagem completa dos sprites disponiveis no Half-Life. Voce pode tambem retira-los do arquivo PAK0.PAK usando o PakScape ou o PakExplorer e usar o SprView para visualiza-los, ou algum outro programa da secao ferramentas para visualizar/criar sprites

 

env_sprite

Com o env_sprite é possível utilizar sprites estaticos ou animados, e possui as seguintes propriedades:

  • Name : Nome da entidade, para poder ser ligada/desligada
  • Sprite Name : Aqui deve-se definir qual sprite será utilizada. Um exemplo seria sprites/fire.spr. Lembre-se de sempre usar a barra "/" ao invés da "\"
  • Framerate : É a quantidade de quadros por segundo que serão mostrados. Serve para aumentar ou diminuir a velocidade da animação (caso queira uma animação mas rápida, o valor deve ser aumentado, e vice-versa) O Framerate padrao é 10.
  • Scale : É a "escala" do sprite. Mudando o valor aqui definido o tamanho do sprite será mudado. Assim, se o valor for 1, o sprite estará em sua escala original, se for 2 o sprite tera o dobro do tamanho, 0.5 tara metade do tamanho, etc...
  • Rendering Properties (Render FX, Render Mode, FX Amount e FX Color): Explicação abaixo
  • FLAGS: O env_sprite tem os os seguintes flags:
  • Start On: Se o env_sprite tiver um nome, ele comeca desligado e precisa ser ativado para aparecer. Este flag faz com que um env_sprite com nome comece ligado.
  • Play once: Faz com que a animação do sprite seja executada apenas uma vez, depois o sprite some.
  •  

    env_glow

    O env_glow é muito semelhante ao env_sprite, mas mostra apenas com sprites estaticos. O unico caso em que é preferivel usa-lo ao inves do env_sprite, é para fazer brilho em volta de luzes (como o proprio nome ja diz, glow=brilho), usando os sprites sprites/glow01.spr (default), sprites/glow02.spr, sprites/glow03.spr ou sprites/glow04.spr. Lembre-se de usar sempre o Render Mode Glow ou Additive!

    Em env_glow junto a uma luz:

    Como o env_glow mostra apenas sprites estaticos, se você usar um sprite animado num env_glow, como por exemplo o sprite fire.spr, o que vai acontecer é que o env_glow só utilizará o primeiro quadro da animação do sprite. Nesse caso (fire.spr), o fogo ficará "imóvel", sem animação alguma. Se usar o env_sprite, o fogo ficaria animado.

    O env_glow faz com que o sprite seja permanente, e sendo assim não pode ser ativado ou desativado. Deste modo, definir um nome (Name - Targetname) para ele é quase inútil, a não ser que se queira que o env_glow em determinado momento desapareça de vez. Para isso, deve-se usar alguma entidade que possua a propriedade killtarget, e nesse campo deve-se colocar o nome definido no Name do env_glow. Assim, quando a entidade usada for ativada, seu killtarget ativará o env_glow, fazendo com que ele desapareça do mapa (killtarget serve para "eliminar" uma entidade do jogo. Assim, o env_glow irá sumir). Mesmo assim, acho isso tudo desnecessário, afinal pode-se simplesmente usar um env_sprite (ao invés do eng_glow) e desativá-lo, ao invés de usar o killtarget para eliminar o env_glow.

    As propriedades do env_glow sao as mesmas do env_sprite, portanto não serão re-explicadas. A unica diferenca é que ele nao tem Framerate (afinal, é estatico), Scale nem flags.

     

    Rendering Properties

    Abaixo segue uma explicação dos Rendering Properties (propriedades da visualização do sprite). Lembrando que os Rendering Properties são disponíveis para a grande maioria das entidades, não somente env_sprite e env_glow, e por isso irei falar das propriedades de objeto, e não especificamente para sprites (a não ser nos modos Glow e Additive, quase que exclusivos para sprites).

  • Render FX : Controla o comportamento visual do objeto, se ele é normal, se pisca, pulsa, etc.
  • Render Mode : Controla como o objeto será visualizado. Existem 6 modos:
  • Normal (0): Esse é o Rendering Mode padrão. Não causa nenhuma modificação na aparência do objeto.
  • Color (1): Faz com que a aparência da textura do objeto seja substituída pela cor que deverá ser especificada em FX Color. Essa opção não é aplicável às model-based point entities (seriam as entidades baseadas em models, como monstros, por exemplo. Não é aplicável a sprites tambem...).
  • Texture (2): Serve apenas para que o nível de transparência de um objeto possa ser modificado (o nível de transparência será definido pelo FX Amount, quanto menor, mais transparente). O nível de transparência também pode ser modificado se as outras opções do Render Mode forem usadas, e não só o modo Texture.
  • Glow (3): Serve para dar os efeitos de brilho de luz ao redor das luzes. Assim, ao se fazer uma luz qualquer (light), pode-se utilizá-la em conjunto com o env_glow para dar o efeito de brilho ao redor da lâmpada. Ao usar o modo Glow, deve-se usar um certo nível de transparência para que o sprite pareça um efeito de luz, variando o valor do FX Amount.
  • Solid (4): Serve para brushes com texturas vazadas (aquelas que comecam com "{" e tem partes azuis), como grades e portões. Para fazer as partes azuis serem transparentes, e assim dar o efeito de uma grade ou algo do tipo, deve-se usar esse Render Mode (Solid), e usar o valor 255 em FX Amount.
  • Additive (5): Efeito semelhante ao produzido com Render Mode Texture, com a diferença que o modo Additive faz com que, já que vemos o objeto como resultado de uma sucessiva camada de quadros (modo Texture), esses quadros são "adicionados" conjuntamente, dando um efeito mas opaco e de maior brilho. Para fazer os efeitos de teleporte de monstros (Half-Life Single Player), foram utilizados env_sprites com esse Render Mode.
  • Para utilizar com sprites (env_sprite e env_glow), os Render Modes que devem ser usados são Glow ou Additive, para que a parte preta ao redor das sprites desapareça e para causar os efeitos ideais dos sprites, mas há exceções, como por exemplo sprites que sejam árvores ou arbustos, e então deve-se usar Render Mode Solid e FX Amount 255, como as texturas de grades, para que a parte azul desapareça e o resto do sprite seja visível como objeto sólido.
  • FX Amount: Serve para modificar o nível de transparência de um objeto. 0 (zero) faz com que o objeto fique totalmente transparente, e 255 totalmente sólido, mas pode-se uasr variações entre 0 e 255. Um valor 153, por exemplo (60% de 255) faz com que o objeto apareça com 40% de transparência (ou 60% de "solidez"). Para grades, deve-se uasr sempre o valor 255 (em conjunto com Render Mode Solid) para deixar as partes azuis transparentes.
  • FX Color (R G B): Funciona apenas com os "Render Modes" que usem o FX Color (Render Mode-Color e Render Mode-Glow). Serve para definir a cor do objeto, em RGB (Red Green Blue - Vermelho Verde Azul). Para usar um valor em RGB, deve-se entender que cada cor varia do 0 (preto, sem cor) ao 255 (cor pura). Portanto, se quiser um vermelho puro, deve-se usar o seguinte valor: "255 0 0".
  •  

    Outras Referencias p>Aqui esta um mapa de exemplo.

    Aqui esta uma lista de sprites disponiveis no Half-Life.

    Voce ainda pode criar seus proprios sprites.

     

    por - DARKEagle e Mataleone -

    Copyright � 2001-2021 by Studio Avante