Archive for the ‘Action Script’ Category

h1

M2 – Confronto (Confrontation)

11 de dezembro de 2008

É isso aê gente…. hoje oficialmente comecei a produção do episódio 3 que levará o subtítulo ” Confronto”.

Desta vez Strider Hiryu e Chun-Li formarão dupla para encarar novos adversários na The Living Forrest, isso mesmo gente uma luta entre duplas…. mas ainda não revelarei quem serão os adversários para não estragar a surpresa. HAHAHAHAHAhahahahahha…… Mediante o desinvolvimento do 3 episodio, colocarei aqui o material  editado para que todos possam acompanhar o andamento até a finalização.

Posso adiantar para vocês que toda a trilha sonora que será usada nessa animação,  já está pronta desde a fase de seleção de músicas para o episódio M2 – Sobrevivendo.

Deal in Blood – Yoshihiro Ike – Ergo Proxy OST
Bregna 2415 – Graeme Revell – Aeon Flux OST  (novamente na parada)
(Ed. trance desconhecida) – Emma Chapplin
Run For a Fall – Epica – The Phanton Agony
Dryka – Robert L. Bennet, Jr & R. Dario – Ultraviolet  OST – Ars Arcana
To Victory – Tyler Bates – 300 OST

Posso adiantar também que como já dito no tópico anterior, eu estava trabalhando na versão 2.0 do meu ASSM (Action Script Scenario Mananger), tentando otimiza-lo, entretanto percebi que ao diminuir o número de variáveis e de linhas de instrução, o aumento do uso do processador é inevitável pois ele tem que realizar mais cálculos de números irracionais no mesmo espaço de tempo.
Então só fiz algumas modificações na legibilidade do código, transformei todas as variáveis em globais para que o código seja reaproveitado inúmeras vezes sem precisar criar outras variáveis e alterei as condições ( if ) para que elas sejam compatíveis com um MC que simula a lente da câmera.

Então como ficaria o procedimento para o uso deste meu código:

 – Crie um novo MC com o nome de ASSM e faça um retângulo na medida exata do seu palco com a ferramenta retangle tool 
 – Alinhe-a ao centro deste MC
 – Crie uma nova layer e nesta coloque a declaração das variáveis.

_global.ASSM_X =_root.ASSM._x
_global.plano1_X = _root.plano1._x
_global.plano2_X = _root.plano2._x
_global.plano3_X = _root.plano3._x

_global.ASSM_Y =_root.ASSM._y
_global.plano1_Y = _root.plano1._y
_global.plano2_Y = _root.plano2._y
_global.plano3_Y = _root.plano3._y

– Crie un novo Keyframe no frame 2 e coloque o ASSM

_global.ASSM_X2 =_root.ASSM._x

 if (_global.ASSM_X > ASSM_X2){
  _global.ASSM_valor = (_global.ASSM_X – _global.ASSM_X2)
  
  _global.plano1_X2 = (_global.ASSM_valor)
  _global.plano2_X2 = (_global.ASSM_valor / 1.25)
   _global.plano3_X2 = (_global.ASSM_valor / 4)

  _root.plano1._x = (_global.plano1_X + _global.plano1_X2)
  _root.plano2._x = (_global.plano2_X + _global.plano2_X2)
  _root.plano3._x = (_global.plano3_X + _global.plano3_X2)
  
  _global.ASSM_X = _root.ASSM._x
  _global.plano1_X = (_global.plano1_X + _global.plano1_X2)
  _global.plano2_X = (_global.plano2_X + _global.plano2_X2)
  _global.plano3_X = (_global.plano3_X + _global.plano3_X2)
 }

 if (_global.ASSM_X < _global.ASSM_X2){
  _global.ASSM_valor = (_global.ASSM_X2 – _global.ASSM_X)
  
  _global.plano1_X2 = (_global.ASSM_valor)
  _global.plano2_X2 = (_global.ASSM_valor / 1.25)
  _global.plano3_X2 = (_global.ASSM_valor / 4)

  _root.plano0._x = (_global.plano0_X – _global.plano0_X2)
  _root.plano1._x = (_global.plano1_X – _global.plano1_X2)
  _root.plano2._x = (_global.plano2_X – _global.plano2_X2)+0.05
  _root.plano3._x = (_global.plano3_X – _global.plano3_X2)

  _global.ASSM_X =_root.ASSM._x
  _global.plano1_X = (_global.plano1_X – _global.plano1_X2)
  _global.plano2_X = (_global.plano2_X – _global.plano2_X2)
  _global.plano3_X = (_global.plano3_X – _global.plano3_X2)
 }

_global.ASSM_Y2 =_root.ASSM._y

  if (_global.ASSM_Y > ASSM_Y2){
  _global.ASSM_valor = (_global.ASSM_Y – _global.ASSM_Y2)
  
  _global.plano1_Y2 = (_global.ASSM_valor)
  _global.plano2_Y2 = (_global.ASSM_valor / 1.25)
   _global.plano3_Y2 = (_global.ASSM_valor / 4)
  
  _root.plano1._y = (_global.plano1_Y + _global.plano1_Y2)
  _root.plano2._y = (_global.plano2_Y + _global.plano2_Y2)
  _root.plano3._y = (_global.plano3_Y + _global.plano3_Y2)
  
  _global.ASSM_Y = _root.ASSM._y
  _global.plano1_Y = (_global.plano1_Y + _global.plano1_Y2)
  _global.plano2_Y = (_global.plano2_Y + _global.plano2_Y2)
  _global.plano3_Y = (_global.plano3_Y + _global.plano3_Y2)
 }

 if (_global.ASSM_Y < _global.ASSM_Y2){
  _global.ASSM_valor = (_global.ASSM_Y2 – _global.ASSM_Y)
  
  _global.plano1_Y2 = (_global.ASSM_valor)
  _global.plano2_Y2 = (_global.ASSM_valor / 1.25)
  _global.plano3_Y2 = (_global.ASSM_valor / 4)

  _root.plano1._y = (_global.plano1_Y – _global.plano1_Y2)
  _root.plano2._y = (_global.plano2_Y – _global.plano2_Y2)+0.05
  _root.plano3._y = (_global.plano3_Y – _global.plano3_Y2)

  _global.ASSM_Y =_root.ASSM._y
  _global.plano1_Y = (_global.plano1_Y – _global.plano1_Y2)
  _global.plano2_Y = (_global.plano2_Y – _global.plano2_Y2)
  _global.plano3_Y = (_global.plano3_Y – _global.plano3_Y2)
 }

– Crie un novo Keyframe no frame 3 e coloque a instrução

gotoAndPlay(2);

 – Para ver o ASSM funcionando basta colocar seu cenario com até três planos em forma de  MCs respectivamente nomeados  como plano1 (cenário onde os protagonistas estão), plano2 (plano de fundo) e plano3 (plano do horizonte ou parede).
 – Agora crie uma camada específicamete para o ASSM e coloque-o nesta.
 – faça os movimentos da câmera de um local para o outro atravéz de keyframes e interpolações de movimento (Motion Tween)
 – Pressione Crtl + Enter
e veja o resultado.
 – Você pode alterar a velocidade em que os planos se movem mudando os valores destes parâmetros:  
  _global.plano2_X2 = (_global.ASSM_valor /
1.25 )
  _global.plano3_X2 = (_global.ASSM_valor /
4 )

 _global.plano2_Y2 = (_global.ASSM_valor / 1.25 )
 _global.plano3_Y2 = (_global.ASSM_valor /
4 )

– Você também pode aumentar o número de planos que se movem copiando e colando mais linhas de código, mudando somente a nomenclatura de plano3 para plano4, plano5, plano6 … em cada linha acrescentada.

Bom por hoje é isso… se alguém quizer modificar meu AS para aperfeiçoa-lo ou souber de algum código que faça o mesmo ou melhor sinta-se livre para modifica-lo ou notificar-me…

Um abraço a todos

h1

Como Criar Textos Dinâmicos Simples no Flash

11 de junho de 2008

Visitors from other countries will be able to use translators on-line more efficiently now. I suggest http://babelfish.yahoo.com/  these articles are written in Portuguese but they could be converted to English with few errors. “the texts in italic and quotations marks are specific terms in Portuguese, do not consider” .

Este processo é muito útil para quem deseja que seu arquivo flash contenha legendas preenchidas por Action Script.

Primeiro passo

Selecione o botão texto na ( Tool Box ) “barra de ferramentas” e clique no ( Stage ) palco”  para criar uma ( Text Box ).

Segundo passo

Essa parte é composta de 3 itens. observe a figura abaixo.

1 – Com a ( Text Box ) “caixa de texto” selecionada marque a opção ( Dynamic Text ).
2 – Dê um nome para a variável ( Var ) que armazenará o texto a ser exposto, escreva txt.
3 – É importante que você diga ao Flash que os caracteres que você vai usar no texto devem ir junto com o arquivo publicado, pois caso a pessoa que vá acessar seu projeto não possua a fonte que você usou, o  Flash Player usará a fonte padrão do windows para exibir o texto.  Isso pode arruinar o projeto.

Clique no botão ( Embed ) , aparecerá essa caixa ao lado. As 4 opções que estão marcadas são os caracteres mais comuns usados na nossa escrita cotidiana.

 
É importante não selecionar a opção ( All ) se o seu projeto for destinado a web, pois cada ( Glyph ) ocupa espaço dentro do seu arquivo e dependendo de quais tipografias e quantos diferentes você usou durante o projeto, seu arquivo pode ter alguns Megabytes somente em fontes. 

Caso você queira usar símbolos especiais como ½, ╗, ┬, º, Ø, ñ, é, ã e muitos outros, use o espaço abaixo destinado ( Include these characters: ).

Terceiro passo

Por último devemos agora colocar o código Action Script que fará o texto desejado ser exibido:

h1

Projeto M2 – Eps. 2 – Survivor

24 de março de 2008

Hehehehe e chega mais um dia de atualização.

Novidades:

A trilha sonora já estava praticamente selecionada desde a primeira animação, só tive que procurar a música para os créditos, mas ainda falta uma para o menu.  Abaixo elas seguem na ordem em que aparecerão.

MENU – ???????
Linkin Park – Breaking The Habit
Ghost in the Shell – SAC – Run Rabbit Junk
StaticX – Kill your Idols
Damageplan – Save Me

Os sprites do Strider Hiryu que faltavam já foram completados. Com isso terminei os personagens.

Sobre os cenários; The Street está pronta e The Subway terminei este sábado a reedição. Agora só falta The River para concluir os cenários.

Talvez eu não mexa nos efeitos visuais, pois estou com muita ansiedade de começar a animação… vou analizar melhor sobre a necessidade desta inovação….

Agora estou desenvolvendo um código AS para gerenciar o movimento do cenário, pois no primeiro eps fiz tudo a mão e não tô a fim de fazer isso de novo, é muito sofrido ter que ficar anotando dezenas de coordenadas…. vou jogar para o processador esse trabalho….. Huahuahauhauha…

Muitas pessoas me perguntam sobre como fiz as legendas. Abaixo estarei deixando meu código para utilização livre de quem o achar interessante… Lembro a todos que em programação há diversas maneiras de se obter um mesmo resultado, o que estou deixando abaixo é simplesmente a solução que eu encontrei, havendo assim como esta, muitas outras formas de ser realizado o mesmo objetivo.

***** No frame para seleção de idioma eu criei dois botões e atravéz de AS na timeline atribuo um valor para uma variável que servirá para comparação. *****

menu0.png

1-    var langua:Number = null 
2-
3-    brasil.onRelease = function(){
4-    langua = 2
5-    play();
6-    }
7-   
8-    usa.onRelease = function(){
9-    langua = 1
10-  play();
11-   }
12-
13-   stop();

* 1- (Cria a variável “langua” que servirá para definir a língua em que o expectador assistirá a animação.)* 

*3-/10-(“brasil” e “usa” são os nomes dos botões, “onRelease” é a função do mouse, “function” declara a função que será executada, “langua =” atribui um valor a variável para ser verificado posteriormente,“play” simplesmente porque o quadro onde os botões estão, está com a ação “stop”)*

__________________________________________________________________________

No frame em que deve ser exibida a legenda:

menu1.png

1-    if (langua == 1) {
2-    help = “To return to this Menu during the movie, press ‘Esc'”
3-    }
4-    if (langua == 2) {
5-    help = “Para retornar ao Menu durante o filme, pressione ‘Esc'”
6-    }

* A Condição para execução da língua é o comando “if (langua == ?)”. Ou seja, quando o expectador clicar em um dos botões a variável “langua” receberá um valor e esse valor será verificado. Dependendo do valor que “langua” contiver uma menssagem será exibida. “help” é a variável que contém a menssagem a ser exibida.*

* Para que a menssagem seja realmente exibida é necessário criar no palco uma *textbox* e defini-la como *Dynamic text* associando a variável “help” *

menu.png

* Todos os comandos e objetos estão no palco principal. A versão que uso do Flash é CS3, entretanto o Script é 2.0 *

* A condição “if” deve aparecer preferencialmente no mesmo frame que a *textbox* mas não necessariamente na mesma camada. aconselho a trabalhar com camadas individuais (layers) para cada objeto que ficar no palco, pois o flash faz mó lambança se o projeto ficar um pouquinho maior; tipo o meu. hehehehe.*

 Bom, é isso aê gente… até o próximo fim de semana…