Cursos e Bibliotecas Ver Mais

Galeria 3D1 Ver Mais

elisalage   italia - Internacional
Juliano Kloss   Blumenau - SC - SC
EvandroGP   Paraná - PR
Vinicius Luiz   Teresina - PI

Portfólios Ver Mais

iarcheski   Chapecó - SC - AC
David   tucurui Pa
Leo Maciel   Salvador - BA
pablorhino   http://www.tresd1.com.br

GRUPO DE ESTUDO: MAXScript

Por: tiagodmed  

Em: 11/05/2009 21:18

show de bola esse topico, a um tempo fiz um curso de 3d e o professor disseq no futuro os programas 3d serao bem mais simples de setar e td mais, o q vai fazer o profissional ser diferente é saber programação, nesse caso maxscrip, nao sei se isso faz sentido pra vc´s, sr. Sempre quis dar uma estudada, mas nao deu ainda. com esse topico me animei, srs vamos ver!
E ai Starship77, é vc tem razão quanto a forma de aplicar, mas poxa muito legal isso, eu ainda não consegui para pra testar isso, mas assim que der vou jogar no max e testar :D Grande contribuição essa sua ;)
Valeu Thiago! Agora que deu um tempinho vou aproveitar pra falar da interface... Eu fiz o seguinte: Fui no Visual MaxScript editor e criei o layout. Salvei como ms e copiei e colei o código... é um código bem simples: [code:1:64908e05da] rollout Tools "Nome" width:160 height:200 ( ) CreateDialog Tools[/code:1:64908e05da] isso cria a janela (dialog) dentro dos parenteses você pode definir: [code:1:64908e05da] button btn1 "TurboSmooth Killer" pos:[8,8] width:144 height:32 toolTip:"Remove os TurboSmooth dos objetos selecionados" button btn2 "TurboSmooth Add" pos:[8,48] width:144 height:32 toolTip:"Adiciona TurboSmooths individuais aos objetos selecionados" [/code:1:64908e05da] para criar os botões. para utilizá-los é só usar: on [nomeDoBotão] pressed do Resumindo o código completo com os dois botões na interface seria: [code:1:64908e05da] rollout Tools "TS_Tools" width:160 height:120 ( button btn1 "TurboSmooth Killer" pos:[8,8] width:144 height:32 toolTip:"Remove os TurboSmooth dos objetos selecionados" button btn2 "TurboSmooth Add" pos:[8,48] width:144 height:32 toolTip:"Adiciona TurboSmooths individuais aos objetos selecionados" spinner spn1 "Iterations" pos:[22,88] width:78 height:16 range:[0,5,0] type:#integer scale:1 on btn1 pressed do ( for o in selection do for i = o.modifiers.count to 1 by -1 where classof o.modifiers[i] == TurboSmooth do deleteModifier o i ) on btn2 pressed do ( for x in selection do if validModifier x TurboSmooth then --testa se o modificador é aplicável ao objeto ( addModifier x (TurboSmooth()) x.modifiers[#TurboSmooth].iterations = spn1.value ) ) ) CreateDialog Tools [/code:1:64908e05da] (é melhor de ver copiando e colando no MaxScript editor) parece complicado olhando assim, mas fazendo uma parte de cada vez é bem simples! ;) é isso galera! Um grande abraço à todos!
Alan Starship http://starship77.blogspot.com
Olá pessoal, andei sumido por muito tempo e provavelmente deverei continuar sumido por mais algum tempo. Estou trabalhando muito nestes últimos meses. Gostei da iniciativa de abrir este grupo de estudos e sempre que sobrar um tempinho darei algumas contribuições para este grupo. No momento irei explicar como criar uma interface de forma organizada e simples. [code:1:34df5da213] -- Verifica se o Script está em execução para não abrir duas telas if telaExemplo != undefined then closeRolloutFloater telaExemplo -- grupo de opções Fechar rollout Fechar_Tela "Fechar" ( -- Criação do Botão que permite fechar esta tela button btnFechar "Fechar" width:100 height:22 tooltip: "Clique aqui para fechar esta tela" -- Código que será executado ao clicar no botão on btnFechar pressed do ( closeRolloutFloater telaExemplo ) ) -- criação e definição da tela telaExemplo= newRolloutFloater "Exemplo" 200 100 addrollout Fechar_Tela telaExemplo [/code:1:34df5da213] Explicações: Primeiro é necessário escolher um nome para esta tela de interface, nome esse que será utilizado para organizar e executar algumas operações, como a de fechar a tela. Nesse exemplo o nome da tela é telaExemplo. No código abaixo é verificado através da estrutura if <condição> then a possibilidade do script esta em execução. Se isso for verdade, a função closeRolloutFloater telaExemplo fecha essa nova tela de forma rápida, onde o usuário não irá perceber o acontecido. [code:1:34df5da213] -- Verifica se o Script está em execução para não abrir duas telas if telaExemplo != undefined then closeRolloutFloater telaExemplo [/code:1:34df5da213] No código a seguir é definido um grupo de opções (chamado de rollout no 3Ds MAX), onde é necessário definir o nome deste grupo/rollout (Fechar_Tela) e em seguida definir o título/mensagem desse grupo/rollout entre aspas ("Fechar"). Todos os elementos que serão criados dentro deste grupo deverão ser escritos dentro da área delimitada pelos parenteses ( ). [code:1:34df5da213] -- grupo de opções Fechar rollout Fechar_Tela "Fechar" ( ) [/code:1:34df5da213] No final é necessário definir a criação da tela através do comando telaExemplo= newRolloutFloater , onde o nome da tela (uma variável/objeto) receberá a criação e armazenamento de um conjunto de informações relacionadas a uma interface (newRolloutFloater), cujo título será escrito em seguida entre aspas ("Exemplo") e suas medidas iniciais (dimensão inicial da tela) serão definidas na ordem de comprimento/largura e altura da tela (200 para largura e 100 para altura). Após a criação da tela é necessário definir quais grupos de opções (rollout) serão carregados/apresentados nessa tela de interface, através do comando addrollout, seguido pelo nome do grupo de opções (rollout) e do nome da tela. [code:1:34df5da213] -- criação e definição da tela telaExemplo= newRolloutFloater "Exemplo" 200 100 addrollout Fechar_Tela telaExemplo [/code:1:34df5da213] Após a montagem dessa estrutura básica, pode-se construir os controles de execução e gerenciamento das funcionalidades do script. Abaixo segue um exemplo de criação de um botão e sua execução dentro do rollout Fechar_Tela (Fechar). [code:1:34df5da213] -- grupo de opções Fechar rollout Fechar_Tela "Fechar" ( -- Criação do Botão que permite fechar esta tela button btnFechar "Fechar" width:100 height:22 tooltip: "Clique aqui para fechar esta tela" -- Código que será executado ao clicar no botão on btnFechar pressed do ( closeRolloutFloater telaExemplo ) ) [/code:1:34df5da213] O código para criar o layout de um botão é: [code:1:34df5da213] button btnFechar "Fechar" width:100 height:22 tooltip: "Clique aqui para fechar esta tela" [/code:1:34df5da213] onde o comando inicia-se através da palavra button, em seguida é definido o nome deste botão (objeto). Após é definido a descrição que será apresentada no botão entre aspas ("Fechar"). A seguir é possível definir o tamanho deste botão através dos parâmetros width (largura) e height (altura). Outra possibilidade é definir um texto explicativo que irá aparecer quando o usuário colocar o mouse sobre o botão através da propriedade tooltip (tooltip: "Clique aqui para fechar esta tela"). Observações: - sempre que for necessária a apresentação de alguma informação do tipo texto em algum objeto, esta informação será apresentada sempre entre aspas. - todos os objetos do 3Ds MAX possuem propriedades (width e height por exemplo), que permitem configurar aspectos visuais ou funcionais destes objetos. Para configurar a maioria destas propriedades é necessário indicar o nome desta seguida do símbolo ":" e de seu valor. Algumas propriedades permitem sua configuração em um formato diferente, como por exemplo a propriedade de posicionamento (pos:[x,y] - onde em x define a posição em relação a uma linha horizontal definida em pixels e y define a posição em relação a uma linha vertical, sempre em relação ao início do rollout. - Para definir comentários (áreas que não serão executadas), basta colocar dois hífens (--) seguidos na frente do texto de comentário. O código abaixo define o conjunto de ações que serão executadas no momento em que este botão for pressionado (ou seja, clicado). Para construir esse código é necessário indicar o comando on seguido do nome do objeto que sofrerá uma ação (ser pressionado, sofrer a passagem do mouse sobre ele, retirada do mouse sobre ele). A seguir é definida a ação que será realizada no botão (clique do botão do mouse, passar do mouse sobre o botão) que fará com que o conjunto de ações definidas abaixo sejam executadas. Esse processo de uma ação (clique no mouse) permitir a execução de uma outra ação (fechar a tela) é chamado de EVENTO (nesse caso o evento é o PRESSED (executar ao pressionar o botão). Para finalizar essa estrutura é definido o comando do e todos os comandos deverão ser criados dentro dos parênteses ( ). O comando closeRolloutFloater telaExemplo permite o fechamento da tela cujo nome é telaExemplo. [code:1:34df5da213] -- Código que será executado ao clicar no botão on btnFechar pressed do ( closeRolloutFloater telaExemplo ) [/code:1:34df5da213] Assim que possível trarei mais explicações de como criar e controlar outros elementos de interface, assim como funciona a programação interna do MaxScript, tanto para execução dentro de uma interface gerada em uma tela (caixa de diálogo) ou dentro do modificador Attribute Holder.
Sergio Feitosa
Muito bom mesmo esse tópico, estou estudando bastante o assunto tbm, oque seria interessante é qgt fazer tipo um workshop, vamus lançando pequenos desafios e fazendo juntos, da pra aprende muitoo!! assim o topico fica sempre quente! oque acham?
Portfolio: www.toco3d.com
Starship77- Testei o script aqui, ficou muito legal! Caraca Sergio, hoje eu já falei que tu é "O CARA" :D Isso vai ser util pra caramba. Uma das minhas maiores dificuldades até agora ta sendo essa. Legal pessoal, estou contente que o grupo esta funcionando :D
show de bola... vou utilizar os meus conhecimentos de ciencia da computaçao.... ja programei muitas linhas de codigos. Uma vez fiz um jogo, GENIUS, era de quatro luzes, elas iam acendendo e vc ia repetindo, a cada rodada aumentava uma luz.... hehehe eu fiz para ultilizar o teclado numerio... Isso em c++.... depois coloquei o mouse para funcionar... os caras da facudade ficaram loucos, isso faz tempo... hj nao consigo fazer mais.... Mas ficou a execencia da programaçao na cabeça... e quando leio as linhas de codigos lembro das minhas aulas.... mas vou estudar mais o maxscript(atualmente nada sei).... valeu pela iniciativa.... Starship77 - > tu é o cara mano... explica pra nos quais as palavras chaves do programa, como fazer uma letra "x" receber uma palavra chave saca.....
"thunndro" disse: No modo de constução do maxscript vc jah pode colocar antes a variavel do que vc vai contruir, nao precisa fazer isso depois de contruido ok
Por exemplo: myCtrlA= Circle pos: [0,0,0] radius: 20 Aqui ele ta criando um circulo na posição x=0 y=0 e z=0 com um raido de 20, e esse circulo recebeu uma variável chamada myCtrlA, ai sempre que precisarmos fazer uma referência a esse circulo é só chamar a variável dele. No caso do starship ele usou a letra X como variável para a ação a ser executada for x in selection do Bom creio que seja isso, se eu não estiver muito correto me corrijam
blz Tiago.... so perguntei por que tem linguagem de programaçao que usa o "=" como igual mesmo.... mas no max ele faz a "referencia" ....... Blz valeu....
Ai cretz, tudo sobre essas duvidas vc acha no help Script do max
Portfolio: www.toco3d.com

Faça o login para poder comentar

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 710365.

Total de membros registrados: 137784

Últimos membros registrados: fernandadias371, Tomasleal-, moilveira, Jandir , ivonei.energia, JoaoMartins, victormartinsc, jvmagalhaes.

Usuário(s) on-line na última hora: 357, sendo 3 membro(s) e 354 visitante(s).

Membro(s) on-line na última hora: claro_lima, Luis Antonio, Adalberto Rocha.

Legenda: Administrador, Especial, Moderador, Parceiro .

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