criar Botão de ON/OFF de ciclo de roda girando

Por: Fabián  

Em: 28/02/2007 03:05

Olá Fabian, tudo bem? Não tenho certeza se o Shockwave é mais leve que o swf. Somente testando para ver isso, porque nunca trabalhei com o Shockwave, somente com o Flash. O processo da roda não é muito complicado, lá vai um passo a passo: - Para teste, crie um objeto qualquer. - Acrescente o modificador Attribute Holder e crie um parâmetro do Tipo Boolean para ele. - Agora vá no painel Motion e selecione no quadro Assign Controller o eixo de rotação desejado para a animação. - Clique no botão Assign Controller acima (botão com um símbolo de interrogação). - Na tela que aparece, escolha Float Expression e dê Ok. - Aparece a tela para criar a expressão. - No lado esquerdo, no campo Name, digite o nome para uma variável, por exemplo: LIGA e clique no botão CREATE. - Agora clique no botão Assign To Controller para associar esta variável ao parâmetro criado no Attribute Holder. - Na tela que aparece, localize o parâmetro criado no Attribute Holder e clique no botão OK. - Do lado esquerdo da tela, inclua a seguinte expressão: if (liga, degToRad(S)*200, 0) - Clique no botão Close. - Agora grave a animação através do Parâmetro criado no Attribute Holder. Explicação da Expressão: O Comando if permite verificar se determinado valor é verdadeiro ou não e realiza alguma operação caso ele seja verdadeiro e realiza outra operação caso o valor ser falso. Nesse caso, se o valor da variável Liga for verdadeiro, ou seja, a caixa do parâmetro do Attribute Holder estiver marcada, ele irá executar o comando: degToRad(S)*200 que rotaciona o objeto em determinado ângulo. Esse ângulo é obtido através da Constante S (relacionada ao momento da animação em segundos). A multiplicação pelo 200 é para controlar a velocidade da rotação, ou seja, caso o valor seja menor, a rotação será mais lenta e se o valor for maior, a rotação será mais rápida. Agora, se o valor da variável Liga for falso, ou seja, a caixa do parâmetro do Attribute Holder estiver desmarcada, ele irá zerar a rotação, de forma que seu objeto fique sempre parado. Para maiores informações sobre como trabalhar com Expressões e Wire Parameters, dá uma olhada nos links abaixo: 3ds max avançado - Manipulators (Rigging) http://www.tresd1.com.br/conteudotutoriais.php?t=15251 Expressions, Wire e Reaction Manager http://www.tresd1.com.br/artigos.php?t=15385 Usando Custom Attributes no MAX http://www.tresd1.com.br/viewtopic.php?t=16625 Criando um Rig para Dedos com Attribute Holder e Wire Parameters http://www.tresd1.com.br/viewtopic.php?t=16624 3ds max avançados - Bones 3 - Expression Controller (Rig) http://www.tresd1.com.br/conteudotutoriais.php?t=18500
Sergio Feitosa
BELEZA Feitosa!! Vou agora mesmo tentar isso! depois digo se funcionou..haa...vc sabe como fazer um personagem vir caminhando e logo apos ele subir no banco de uma moto a moto passa a controlar ele, ou seja ele fica linkdao ao banco da moto..?
Olá Fabian, tudo bem? Eu vi seu outro tópico com esta dúvida e acabei de respondê-lo...
Sergio Feitosa
Oi Fabian, tudo bem? Apesar das dúvidas serem muito interessantes e ser gostoso pensar soluções para essas questões, não é assim que faz animação, o dia que for tudo automático assim será uma maravilha, mas por enquanto não é. Se tem uma metralhadora que fica sempre girando, vai aplicar um Out Of Ranges nela para ficar sempre girando e boa, na hora que ela não deve mais girar, vai deletar o Out Of Ranges. Se um personagem vai subir num veículo, vai animar ele na boa até o ponto que ele sobre, depois é outra animação onde ele já vai esta lincado no veículo. Porque não é tudo de controle remoto em 3D, e mesmo que fosse, profissionalmente renderiza animação com tudo separado em elementos para compor depois, Então, é normal ter a animação até o ponto que o cara sobe na moto e num outro arquivo, numa outra animação, ter ele saindo com a moto, as configurações serão diferentes em cada arquivo mas vão se juntar perfeitamente na composição. Animação é feita com Key Frames, "na mão" mesmo, em pedaços, não é tudo uma coisa só como na vida real, que cada ator faz as coisas sozinhos e você só precisa se preocupar com o enquadramento da câmera. Se quer animar um carro, pode fazer a roda acompanhar o movimento dele girando sozinha, mas não vai ligar o carro e ele sair sozinho, até poderia fazer isso com o Reactor e o Motor, mas não vale a pena, não tem controle sobre nada e o que importa é ter controle sobre tudo, por isso que as coisas são renderizadas separadas em animação, para ter total controle na composição. Mesmo que tivesse como fazer um troço rodando com liga e desliga e mesmo que parece na mesma posição que estava girando e tudo mais, não serve para animar, porque como você vai ligar e desligar esse recurso no meio do Render? Mesmo no caso do teste que o Feitosa fez e ficou muito bom, como vai desligar a rotação no meio do Render, porque se não tem Keys, ou vai girar para sempre ou vai ficar parado para sempre, e se for criar Keys, vai ficar feio na animação, porque não vai ter a desaceleração da rotação até parar no lugar certo, então, animação é na mão com Key Frames mesmo, assim faz o que quiser, mas tem um certo trabalho, é claro. É por isso que não é qualquer pessoa que anima bem, porque ainda depende muito da habilidade da pessoa, as coisas não são automáticas assim ainda e eu espero que demore muito para ser, porque ai perdeu a graça. Abraços
Olá André, tudo bem? Fiquei muito curioso em criar uma forma de fazer isso. Fiz mais alguns testes e consegui até mesmo fazer com que a roda saísse de uma posição estática e adquirisse velocidade através de uma aceleração, somente adicionando mais um parâmetro no Attribute Holder e substituindo o valor 200 na expressão. Depois é só animar a troca de valores. Mas na hora de freiar a coisa não funcionou muito bem, aí tería que escrever outra expresão e por aí vai... As vezes é legal pensar em soluções assim, porque mesmo que não seja a melhor situação para determinada situação, acaba-se aprendendo algo novo para utilizar em futuras situações.
Sergio Feitosa
Pessoal obrigado pelas dicas e soluções, em especial a Feitosa que achou soluções bem interessantes, bom para começar a treinar me incentivou a estudar um pouco de maxscripts.. André, claro concordo plenamente com tudo que vc disse, talvez eu não haja me colocado bem, não quero tudo automático e até em alguns casos como vc realmente mencionou não funcionaria. Como estou projetando um robo onde existem engrenagens que reagem a outros movimentos e outros objetos que sempre irão executar uma certa "rotação continua ou qualquer outro movimento, pensei em ter uma expressão que facilita-se um pouco, visto que ainda assim teria muita coisa complexa p/ animar fora o robo..ando experimentando e procurando entender melhor o script achei muito útil e espero poder um dia chegar perto do nível técnico de vcs...curto muito animação e modelagem já a 8 anos..mas só este ano estou conseguindo criar realmente p/ valer um personagem funcional..acho..rsrs, mas só depois de haver feito curso na Cadritech e depois fiquei mais 3 anos "penando" e tentando tbm estudar "RIG" - do PAul Neale.."custon attributes", "V-ray" "render",..é muita informação. Bem, de qualquer forma, os estudos de Feitosa vem contribuir para algumas ideias que surgiram e espero que ajudem outros profissionais em suas pesquisas 3D.
Oi gente, tudo bem? Feitosa> Realmente é muito legal pensar em resolver esse tipo de situação, é o que eu mais gosto em animação, mas as vezes não vale a pena perder tempo desenvolvendo automações, dependendo da produção é melhor animar normalmente, que é rápido e fácil, só será mais trabalhoso. Foi isso que eu quis dizer para o Fabian, mas também não tinha entendido o sentido do que ele queria fazer pelos exemplos que havia dado até agora, com essa última postagem dele, descrevendo a função dessa expressão, ai sim eu concordo plenamente. O lance que eu discordei e fiz esse discurso era sobre ligar a metralhadora sozinha ou o carro, nestes casos não vale a pena. Eu já estava pensando que ele estava confundindo aplicação interativa 3D com animação 3D em vídeo. Mas agora entendi a função e seria muito interessante usar uma expressão bem aprimorada para facilitar a animação, porque ele moveria um membro do robô e as engrenagens reagiriam a este movimento. No caso de ligar a metralhadora, não teria uma ação animada pela pessoa para outros objetos reagirem a essa animação, entende? Era essa a diferença que eu queria deixar bem clara para o Fabian. Fabian> Agora que você explicou melhor a função que teria essa expressão, eu concordo plenamente que a melhor opção é usar uma boa expressão. O problema foi nos primeiros exemplos que postou, aqueles casos são diferentes deste, pois no caso de uma metralhadora que ligaria e ficaria rodando sozinha ou de um carro que também ligaria e funcionaria sozinho, não tem uma interação sua para haver uma reação, como expliquei na resposta para o Feitosa. Você simplesmente ligaria e o troço ficaria funcionando, neste caso é melhor animar normalmente e fazer um Out-Of-Ranges, como eu disse na outra mensagem. Eu achei que você estava confundindo aplicação interativa 3D com animação 3D renderizada em vídeo, mas agora entendo a função e concordo com você. Porque neste caso do robô, você vai mover um membro dele e as engrenagens vão reagir a essa animação que você fez, então, repare que sempre terá uma ação sua e depois uma reação de outros objetos. Quando acontece isso, então é o caso ideal para usar expressão. Este caso é tão simples que fica muito mais fácil usar o Reaction Manager do que escrever uma expressão complexa, porque no Reaction Manager você faz isso de olho fechado e pode controlar a aceleração e desaceleração facilmente, usando um simples gráfico. Dá uma lida no artigo "Expressions, Wire e Reaction Manager", ele é a evolução do Expression, permite fazer muita coisa legal sem escrever uma linha, enquanto que antes teria que manjar muito de expressão para poder fazer. Abraços

Faça o login para poder comentar

Informações da Comunidade

Total de mensagens publicadas pelos membros da comunidade: 717377.

Total de membros registrados: 143159

Últimos membros registrados: OricleHearingAid435, Micheander, Niotrox7 , Diegovechin, MedicGLPKapseln466, MedicGLPCapsules45, Marimgons, breezoes.

Usuário(s) on-line na última hora: 716

Legenda: Administrador, Especial, Moderador, Parceiro .

3D1 © Três D1 © 1999-2026. Todos direitos reservados.