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