Custom Attributes + Path Constraint

Por: alysson  

Em: 05/01/2008 17:44

Boa tarde pessoal, Tive estudando a fundo sobre Setagem de Attribute Holder + Wire Parameters, e já deu pra entender bastante coisa, pelo menos o pontapé inicial para criar rollouts com groups, spinners, sliders, reset all e key all. fiz um setup para abrir uma porta envidraçada, onde o trilho é curvo, e possui vários painéis, de modo que eles giram livremente a 360º em torno de um eixo (Rotação em Z) e caminham para o final do trilho na abertura do vao da porta, de modo que todos painéis ficam colados um no outro, como se fosse uma porta camarão. Antes de colocar minha dúvida, gostaria de colocar o script depois de tudo funcionando, como agradecimento a matéria desse assunto da 3d1, e também a um videotuto do HENRIQUE MELO, mais especificamente o Training_RiggingBones_04_WireParametersLeg: New = attributes pvJantar_ROTAÇÃO_Z ( parameters parans rollout:ContR ( Rot_z1 type:#float ui:(Rot_z1SP,Rot_z1SL) Rot_z2 type:#float ui:(Rot_z2SP,Rot_z2SL) Rot_z3 type:#float ui:(Rot_z3SP,Rot_z3SL) Rot_z4 type:#float ui:(Rot_z4SP,Rot_z4SL) Rot_z5 type:#float ui:(Rot_z5SP,Rot_z5SL) Rot_z6 type:#float ui:(Rot_z6SP,Rot_z6SL) Rot_z7 type:#float ui:(Rot_z7SP,Rot_z7SL) Rot_z8 type:#float ui:(Rot_z8SP,Rot_z8SL) ) rollout ContR "PV Jantar - ROTAÇÃO Z" ( group "ROTAÇÃO Z" ( spinner Rot_z1SP "Porta Jantar 1" range:[0,100,0] slider Rot_z1SL "" range:[0,100,0] spinner Rot_z2SP "Porta Jantar 2" range:[0,100,0] slider Rot_z2SL "" range:[0,100,0] spinner Rot_z3SP "Porta Jantar 3" range:[0,100,0] slider Rot_z3SL "" range:[0,100,0] spinner Rot_z4SP "Porta Jantar 4" range:[0,100,0] slider Rot_z4SL "" range:[0,100,0] spinner Rot_z5SP "Porta Jantar 5" range:[0,100,0] slider Rot_z5SL "" range:[0,100,0] spinner Rot_z6SP "Porta Jantar 6" range:[0,100,0] slider Rot_z6SL "" range:[0,100,0] spinner Rot_z7SP "Porta Jantar 7" range:[0,100,0] slider Rot_z7SL "" range:[0,100,0] spinner Rot_z8SP "Porta Jantar 8" range:[0,100,0] slider Rot_z8SL "" range:[0,100,0] ) group "Maximizar chaves" ( button keyall "Key All" ) on keyall pressed do ( Rot_z1=100 Rot_z2=100 Rot_z3=100 Rot_z4=100 Rot_z5=100 Rot_z6=100 Rot_z7=100 Rot_z8=100 ) group "Resetar chaves" ( button resetall "Reset All" ) on resetall pressed do ( Rot_z1=0 Rot_z2=0 Rot_z3=0 Rot_z4=0 Rot_z5=0 Rot_z6=0 Rot_z7=0 Rot_z8=0 ) ) ) custattributes.add $.modifiers [1] new New = attributes pvJantar_CORRER ( parameters parans rollout:ContR ( correrT1 type:#float ui:(correrT1SP,correrT1SL) correrT2 type:#float ui:(correrT2SP,correrT2SL) correrT3 type:#float ui:(correrT3SP,correrT3SL) correrT4 type:#float ui:(correrT4SP,correrT4SL) correrT5 type:#float ui:(correrT5SP,correrT5SL) correrT6 type:#float ui:(correrT6SP,correrT6SL) correrT7 type:#float ui:(correrT7SP,correrT7SL) correrT8 type:#float ui:(correrT8SP,correrT8SL) ) rollout ContR "PV Jantar - CORRER" ( group "CORRER NO TRILHO" ( spinner correrT1SP "Porta Jantar 1" range:[0,100,0] slider correrT1SL "" range:[0,100,0] spinner correrT2SP "Porta Jantar 2" range:[0,100,0] slider correrT2SL "" range:[0,100,0] spinner correrT3SP "Porta Jantar 3" range:[0,100,0] slider correrT3SL "" range:[0,100,0] spinner correrT4SP "Porta Jantar 4" range:[0,100,0] slider correrT4SL "" range:[0,100,0] spinner correrT5SP "Porta Jantar 5" range:[0,100,0] slider correrT5SL "" range:[0,100,0] spinner correrT6SP "Porta Jantar 6" range:[0,100,0] slider correrT6SL "" range:[0,100,0] spinner correrT7SP "Porta Jantar 7" range:[0,100,0] slider correrT7SL "" range:[0,100,0] spinner correrT8SP "Porta Jantar 8" range:[0,100,0] slider correrT8SL "" range:[0,100,0] ) group "Maximizar chaves" ( button keyall "Key All" ) on keyall pressed do ( correrT1=100 correrT2=100 correrT3=100 correrT4=100 correrT5=100 correrT6=100 correrT7=100 correrT8=100 ) group "Resetar chaves" ( button resetall "Reset All" ) on resetall pressed do ( correrT1=0 correrT2=0 correrT3=0 correrT4=0 correrT5=0 correrT6=0 correrT7=0 correrT8=0 ) ) ) custattributes.add $.modifiers [1] new ufa, esse negócio não é fácil...eheh...quebrei a cabeça até pra fazer um negócio tao simples de abrir/correr folhas de porta...eheheh Como já mencionei, funcionou perfeitamente após o wire parameters, linkando cada peça a seu slider dentro do att holder. Somente apareceu um problema (que pode ser a dúvida de alguém, nao sei se isso vai ajudar): >>>>as primeiras portas tiveram seu percurso no slider do Att perfeitamente saindo do ponto zero e chegando ao ponto final (que é 100 ou 100% na minha consideração). Mas as portas que faziam um percurso tipo do ponto 90% do path constraint até o 100%, não são controladas perfeitamente no slider dentro do Att. A MINHA PERGUNTA É: existe algum modo diferente de falar para o Attribute holder considerar esse percurso de 90 a 100% como se fosse 0 a 100% no slider, ou seja ponto 0 do slider = 90% e ponto final do slider = 100% :?: :?: Tentei utilizar o Smoothing Buffer, dentro do Float Limit Controller, e zerar o Lower Limit, ficando da seguinte forma >>> UPPER E LOWER LIMIT enable, UPPER LIMIT=100 (representando o 100% no path contraint), LOWER LIMIT=90 (representando o 90% no path contraint), Smoothin Buffer dos dois no máximo permitido. O problema mesmo que acontece, é que no início, ele sempre desconsidera o slider abaixo de 90... como se o slider fosse o path.... no final até q ficou fácil, pois bastou acrescentar a expressão DegToRad correrT4/1.75 por exemplo...aí ele nao fica parando no ponto final antes do slider acabar (slider em 95,4 por exemplo). Bom se eu consegui ajudar alguém já ta bom, o sistema ta funcionando beleza, eu só queria saber como ter controle perfeito para animações em path desse tipo...é um caso muito particular, acredito que não é uma coisa q se faz toda hora.... Abraço e aguardo a participação de alguém... :-P
eeheh..o negócio é mais complexo do q pensava...ainda aguardando qq consideração.... abs :lol:
Oi anymakiaco, tudo bem? Você pode fazer isso de modo muito mais simples usando o Raction Manager com o Custom Attributes, não há necessidade de escrever um Script. Com o Reaction Manager tem certos inconvenientes, como importar em outro arquivo que tenha Reaction Manager também, mas você pode fazer isso simplesmente movendo os objeto o quanto desejar na própria Viewport, então, mesmo que tenha que importar, acaba valendo a pena fazer de novo, porque é rápido e fácil. Dá uma olhada nesta matéria que eu explico como usar o Reaction Manager e outros recursos que também servem para isso, como o Wire Parameters e as Expressions. O link é este: http://www.tresd1.com.br/artigos.php?t=15385 Abraços
ae André...sou meio turista, mas sempre apareço... o ruim do reaction manager é o seguinte.... sempre que há importações ou apenas uma troca simples de preset de render, ou ainda configurações diversas de objetos, eu não consegui fazer com q o reaction mantesse as informações. Não sei se é uma limitação do sistema, ou se é uma falta de apuramento nos meus estudos do reaction...aqueles tutoriais que vc demonstrou no site eu fiz todos....todos deram certo....em um caso isolado até q acontece bem, mas em um caso mais complexo, como q eu faria....por exemplo....eu to fazendo setups para animação, onde até já imaginei montar um painel de controle central tipo assim: Quadro portas / quadro janelas / Quadro veículos / Quadro Pessoas / Quadro Luz natural / Quadro Luz artificial ainda quero montar um sistema completo assim para não ter q ficar fazendo um monte de arquivos separados por ou ainda ficar configurando tudo de novo em cada caso.... Quanto ao script achei hiper fácil....muito mais funcional que o reaction na minha opinião...muito mais controle, mais precisão e mais liberdade.... pois em cada rig, fiz um setup de várias portas por exemplo....entao tenho um painel em spline escrito RIG FULANO, e assim por diante.... o script me deu essa possibilidade que o reaction nao me deu... o que vocês sugerem a respeito? por enquanto estou estudando scripts...eheheh...... ah....alguém sabe onde posse aprender a criar interfaces....tipo um tutorial de rig de carro que foi mostrado aqui (muuuuuuuuuito caprichado) Abraços
O Reaction Manager tem este problema mesmo, ele funciona bem no arquivo original que foi criado, se tiver que importar o objeto rigado para outro arquivo vai dar problema. Mas rig é difícil mesmo e envolvendo script mais ainda, eu não entendo nada de script

Faça o login para poder comentar

Informações da Comunidade

Total de mensagens publicadas pelos membros da comunidade: 717436.

Total de membros registrados: 143179

Últimos membros registrados: LifeGauge354, LifeGauge435, elenahardiya, LifeGaugeBreeze56685, LifeGaugeBreeze3545, OsanixCapsules345, Kennetoot, BillcKittrick.

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

Legenda: Administrador, Especial, Moderador, Parceiro .

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