Duplicação de bones, rig e skin.

Por: Estrazulas  

Em: 05/04/2007 12:49

eu q agradeço por td q vc ofereceu de conhecimento para nós....eu considero o conhecimento como uma das maiores riquezas do mundo...e do mesmo jeito q sempre obtive resposta qdo precisei de ajuda quero compartilhar isso com todos....se todos pensarem assim com certeza teremos mtos grandes profissionais, além de pessoas humildes nesse mundo... deixa eu lhe fazer uma pergunta meio besta....daria para gerar os pametros como o fábio fez apenas com Expression??? ou pelo menos a lógica do botão reset e usar spinner e slider em um mesmo parametro???...eu acredito q nao, mas como vc tem mania de surpreender a gente eu nem duvido de mais nada.... daqui a pouco chega vc dizendo: "Olha gente, eu fiz um sistema operacional apenas usando o max!!!"....uahauhuahauhuah
Abração Té+
Oi Leandro, tudo bem? Obrigado cara, eu fico lisongeado com suas palavras, é um prazer ter você aqui ajudando também. Sobre o tutorial do Fábio, eu não tive tempo de ler ainda, então, não vi como ele fez detalhadamente, só vi que ele usou Scripts. Mas dá para fazer dois recursos controlar a mesma coisa, teria que usar dois Expressions no mesmo objeto, mas não sei se daria para fazer o Reset, tenho que ver o que ele reseta. Dependendo o que for, daria para fazer, pois poderia definir o valor zero ou o valor padrão do parâmetro resetado e chamar esse valor pelo Expression sempre que quiser. Não lembro se tem botão no Parameter Editor para adicionar no Attribute Holder, mas tem Check Box, então, poderia usar uma Check Box que quando clicada, resetava os parâmetros. Eu acho que o Feitosa é mais indicado para testar isso, ele conhece muito bem de programação e de MaxScript. Abraços
na teoria da para fazer sim q eu ja testei....foi com check box mesmo.... na prática é q a coisa toma outro rumo.... qdo eu crio o reset ele passa a controlar o parâmtro anterior e ai não sai mais de zero....eu tentei lógicas diferentes, mas o resultado é sempre o mesmo....só vi uma luz no max script mesmo....
Abração Té+
Olá LeandroM, tudo bem? Sobre a sua opinião sobre o Reaction Manager, eu concordo plenamente. Assim que o recurso foi lançado no MAX, eu testei e não gostei nada dele, mesmo sabendo que facilita em várias situações. Ainda prefiro trabalhar diretamente com Wire Parameters e Expressions. Sobre a questão das Expressions. Você pode associar os dois Parâmetros do Attribute Holder com Wire Paramenters sem problema, como o André disse e ainda associar um deles a algum efeito em outro objeto. Dessa forma na medida em que você alterar o Spinner ou o Slider, ambos serão atualizados e ainda será realizado o efeito no outro objeto associado. Sobre o botão reset, estou fazendo alguns testes aqui e assim que eu terminar, estarei postando.
Sergio Feitosa
Olá Olá LeandroM, tudo bem? Fiz um teste agora para resetar valores e funcionou muito bem, porém é de uma forma que eu acho sujo, ou seja, forçaremos o MAX a aceitar o que nós queremos. O processo é o seguinte: - No Attribute Holder, nós teremos vários Custom Parameters, e entre eles (de preferência o último) o parâmetro que será usado para resetar. Esse parâmetro será do tipo Boolean (UI Type = Check Button) que será um botão. - Agora devemos associar cada Custom Parameter ao Botão criado. - Quando associamos dois parâmetros com Wire Parameters, será apresentado a tela de Parameters Wire Dialog. - Essa tela é dividida em duas partes (em cima a indicação das propriedades que serão ligadas e na parte debaixo a expressão que ditará o comportamento dos valores dos parâmetros. - Primeiro passo: na parte de cima, para esse recurso funcionar, deveremos habilitar o primeiro botão, indicando que a alteração poderá ser realizada em ambos os lados, onde o lado oposto será afetado também. Pode parecer estranho, mas esse recurso habilitado será necessário. - Segundo passo: no lado do parâmetro (que não é o botão), deveremos incluir a seguinte expressão: if (NomeBotao,0,NomeParametro) - Terceiro passo: no lado do parâmetro do botão, deveremos incluir a seguinte expressão: if (NomeParametro=0,NomeBotao,NomeBotao) - É só testar que irá funcionar. O Max irá acusar erro, porque os tipos de informações são diferentes, mas pode apertar em OK e testar que irá funcionar. Explicação das expressões: if (NomeBotao,0,NomeParametro) A função if possui três argumentos, são eles nesta expressão: NomeBotao, 0 e NomeParametro. O if verifica se o primeiro argumento é verdadeido (normalmente com comparações). Nesse caso, o parâmetro NomeBotao é do tipo Boolean, ou seja, já retorna automaticamente o valor de uma comparação (verdadeiro ou falso). Se o valor de NomeBotão for verdadeiro, ou seja, o botão foi pressionado, então o segundo argumento será utilizado como valor do parâmetro, dessa forma o valor 0 será armazenado em NomeParametro (criando o efeito de reset). E se NomeBotao for falso, ou seja, está em seu estado normal (desativado), então o valor atual de NomeParametro será mantido. Se o seu valor inicial for diferente de 0, basta colocar este valor no lugar do 0. if (NomeParametro=0,NomeBotao,NomeBotao) Esta função é o segredo do funcionamento. Se o NomeParametro for 0, significa que o botão continuará desativado, já que ele se encontra na posição de reset. E se o NomeParametro for diferente de 0, o botão também irá continuar no mesmo estado desativado, ou seja, não irá influenciar na alteração dos valores do NomeParametro. A lógica é um pouco complicada, mas consiste em permitir que o botão nunca fique no estado ativado, ou seja, ela entrará no estado ativado apenas para resetar os valores e logo em seguida ele será desativado, por já ter cumprido o seu papel. Se alguém não entender estas expressões, poderei fazer explicações de forma diferente e mais detalhada.
Sergio Feitosa
olá olá grande sergio....ehhehehe relamente não havia dado certo comigo pq eu usei a lógica de uma outra forma q é mais usada em programação geral mesmo... eu não estou com o max instalado onde estou agora, mas lembro q fiz algo parecido com isso: if NomeBotao.press = true; then NomeParametro=0; else NomeParametro end if não foi totalmente assim, mas segui uma lógica parecida....não sabia q podia usar constantes em uma mesma linha ente parenteses e separadas por "," eu tentei varias tipos de expressões e algumas nem acusavam erro, mas tb não funcionavam como eu queria.... achei legal mesmo essa maneira de resolver as coisas.... o andré não é o unico mestre jedi da 3d1 não....uahahhauhauuah....ele é o mega master ultra hiper mestre supremo, mas existem outros mestres tb....heheheheh
Abração Té+
Olá LeandroM, tudo bem? Eu fechei e abri o arquivo e a mensagem de erro aparece. Mas o esquema do botão resetar os valores continua funcionando. Por isso que eu disse que é uma forma suja, apesar de funcionar, não parece ser de uma forma correta. Se eu conseguir ajustar estas expressões para não conterem mais erros, estarei postando aqui. Esse esquema é apenas para evitar trabalhar diretamente com MaxScript, mas nesse caso o MaxScript passa a ser a melhor opção. Vale a pena entender a construção do botão reset pelo MaxScript mesmo, que não é complicado.
Sergio Feitosa

Faça o login para poder comentar

Informações da Comunidade

Total de mensagens publicadas pelos membros da comunidade: 717378.

Total de membros registrados: 143160

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

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

Legenda: Administrador, Especial, Moderador, Parceiro .

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