abr 30

Conheci, através do excelente blog do Erick Souza a ferramenta Papervision 3D e descobri como ela é genial. Trata-se de um software open-source que, junto ao Flash CS3, gera interatividade 3D do mais alto nível, tudo através de código Action Script. Dá uma olhada nestes sites pra você entender do que eu estou falando:

In an ABSOLUT World

Whitevoid

O site do Papervision 3D traz um monte de exemplos e também mostra todo o desenvolvimento da ferramenta, inclusive um Wiki para ajudar o pessoal a usá-la. Contudo, a explicação da instalação é meio confusa. Tive que quebrar a cabeça um pouquinho até conseguir. Segue abaixo o caminho das pedras:

1 - Faça o download e instale um cliente SVN. Este é um programinha pra baixar os diversos arquivos do software e mantê-los atualizados. Eles recomendam o Tortoise. Faça o download aqui.

2 - Crie um pasta onde você vai colocar os arquivos do Papervision3D, entre nesta pasta, clique com o botão direito e clique de novo em “SVN checkout”. No box que abriu, cole este endereço: http://papervision3d.googlecode.com/svn/trunk/

3 - Aguarde o Tortoise fazer o download dos arquivos. São muitos, inclusive com vários exemplos bacanas.

4 - Abra o Flash CS3, vá em Edit>Preferences>Actionscript e clique no botão “Actionscript 3.0 settings”.

5 - No box chamado “class path”, clique no sinal de “+” e depois no alvo para escolher o diretório.

6 - Vá no diretório que você criou para fazer o download do Papervision3D e escolha a pasta “as3\trunk\src”  (atualizado para a versão 2.0 Great White Final)

7 - Está pronto e instalado. Abra um dos exemplos (na pasta “\as3\trunk\examples” há alguns) e tente publicá-lo. Se der tudo certo, é porque a instalação está OK.

Abaixo, o primeiro resultado dos meus iniciais estudos com a ferramenta. Cabanudos 3D.

Adendo 02-07-2008: Já saiu segundo resultado: aqui e aqui.

Pablo Cabana

abr 30

Estava eu chegando do Rio, rumo a mais um dia de labuta na Cabana, quando a van vira na esquina da Praia das Flechas e a visão da Baía de Guanabara recebendo um enorme swell faz minha espinha gelar. Quem surfa entende. Itapuca quebrando clássico é como receber o telefonema daquela gostosona que você sempre paquerou: não importam seus compromissos, você TEM que comparecer. E foi nesse clima que eu saí correndo da van, peguei a prancha emprestada do primeiro camarada que encontrei (que foi o Henrique – o maldito caiu praticamente sozinho na madrugada anterior) e fui pra água. O trabalho que esperasse!

Remei pro pico, me posicionei apertado entre os infinitos surfistas presentes e senti bem de pertinho o que a imagem abaixo quer dizer: aquela tão propagada “paz de espírito†trazida pelo surf não se aplica a dias como esses.

Pai, afasta de mim este crowd

Era necessário gritar alto e raivosamente em cada onda e rezar pra que ninguém se jogasse na sua frente ou te empurrasse no meio do drop. Tava parecendo mais uma feira, onde quem falasse mais alto se dava melhor. Mas quando acontecia de sobrar aquela perfeita, era só alegria, e a sensação de cruzar a pedra do índio encaixando um cut-back na lata fazia esquecer todo o estresse: tanto o da água quanto todos os outros da vida. Nestes raros momentos, aquela esquecida paz de espírito retornava, porém logo era esquecida ao se voltar pro pico para esperar uma próxima onda.

Entre um estresse e outro, acabei ganhando de presente uma quilhada no meio das costas de um coroa que não parecia muito bem saber o que estava fazendo quando embicou o fun-board dele pra cima e, sem me ver, me acertou em cheio. O que fazer numa hora dessas?

Na madrugada seguinte, estive lá de novo para pegar o fim do swell. E, como era de se esperar, o crowd continuava. Resta-nos esperar pelo próximo e rezar pra conseguirmos pegá-lo no começo, antes que a notícia se espalhe.

Abaixo, meu camarada Guilherme enfrentando o crowd bravamente. Repare no destaque que eu fiz no maluco afundando na frente dele. Se der mole malandro, se arrasa.

Se der mole, se arrasa.

Um agradecimento ao “Tio” Augusto, pai do Guilherme e do Henrique, que fez estas excelentes fotos neste raro dia.

Pablo Cabana

abr 14

Barco de pesca comercial cerca um imenso cardume de peixes, era tanto peixe que a enbarcação não aguentou e virou com a força e o peso que os peixes impuseram. Um dia da çaça e outro do caçador.

Felipe Cabana

abr 10

Em tempos de epidemia da dengue não podemos vacilar. E para lembrar disso, venho postar aqui o vídeo para ação viral muito bem bolado pela a agência Escala. Criado para atender a Secretaria de Saúde do Rio Grande do Sul, o vídeo de campanha contra a dengue pega carona no escândalo envolvendo Daniela Cicarelli e seu namorado Renato Malzoni que, para quem não se lembra (acho difícil), foram flagrados em uma praia na costa da Espanha. Divirtam-se.

Cabanudo César.

abr 04

Baixe o arquivo fonte aqui.

Existem várias formas de alterar o cursor do mouse no Flash. A maioria delas usa “onEnterFrameâ€, o que significa que a cada frame o swf atualiza a posição do cursor. Daí já dá pra perceber a falha desse método porque se precisarmos usar um frame rate baixo, como 12, por exemplo, o cursor novo não fica totalmente fiel ao cursor normal. Pode-se argumentar que o uso do comando “updateAfterEvent†resolve isto, mas eu encarei um problema quando estava construindo o site da Brazucah. Ao utilizarmos gráficos complexos, que exigem grande processamento do CPU, a tendência é que o mouse fique tremido e pouco fiel. Saí estudando todas as possibilidades e finalmente encontrei a resposta, e ela se chama “setIntervalâ€. Com este comando, dizemos ao swf para executar uma tarefa de tempo em tempo, mas medindo este tempo em segundos, ao invés de utilizar os frames. O que eu fiz foi programar este tempo para 0.1 milesegundos (milesegundo é a medida de tempo utilizada pelo Flash, cada milesegundo é 1 segundo dividido por 1000) e mandar o swf atualizar a posição do cursor sempre que se completasse esse período. Ou seja, a todo instante.

Crie um novo arquivo no Flash, coloque o Movie Clip que você deseja que substitua o mouse no palco, clique nele e nomeie sua instância (no canto inferior direito, em baixo de “Movie Clipâ€) como “rato†(sem aspas).

Depois, no primeiro frame do filme principal, cole este código:

stop();
//De início, escondemos o mouse.
Mouse.hide();

//É preciso dar um nome para o “setInterval” e definí-lo como número
var Mudando:Number;

//Aqui você escolhe o período de tempo que “setInterval” executará
var tempo:Number = 0.1;

//Esta é a função executada a cada 0,1 milesegundo
function mudaMouse():Void {
//vc está dizendo para o seu movie clip acompanhar o x e o y do mouse
rato._x = _root._xmouse;
rato._y = _root._ymouse;

//Este comando auxilia na independência deste evente em relação ao que acontece no resto do seu filme
updateAfterEvent();

}
//Aqui está o setInterval. O “this” se refere a ele mesmo, “mudaMouse” é o nome da função a ser repetida e “tempo” é o período escolhido acima.
Mudando = setInterval(this, “mudaMouse”, tempo);

//Eu criei um outro Movie Clip chamado “imagem” e o coloquei como fundo do swf para brincarmos

_root.imagem.onPress = function() {
//ao clicar no fundo, o mouse muda de Cabana é Bacana para Bacana é Cabana
rato.gotoAndStop(2);
}

_root.imagem.onRelease = _root.imagem.onReleaseOutside = function() {
//ao soltar, dentro ou fora do MC “imagem” o mouse volta ao frame anterior
rato.gotoAndStop(1);

}
_root.imagem.onRollOut = function() {

/*mandamos o mouse ficar escondido de novo, pois se apertarmos o botão direito
o menu do Flash puxa o mouse normal novamente*/
Mouse.hide();
}
_root.imagem.onRollOver = function() {

/*mandamos o mouse ficar escondido de novo, pois se apertarmos o botão direito
o menu do Flash puxa o mouse normal novamente*/
Mouse.hide();
}

Fácil né? Se tiver dificuldade, deixa um comentário.

Pablo Cabana