Tutoriais - Diversos

Introdução a MaxScript

Vou dividi-lo em partes para fica fácil e curto ao mesmo tempo. Esta matéria não ensinará muito afundo o desenvolvimento de Scripts, mas será uma análise com exemplos para destacar alguns conceitos.

Será muito comentado o uso do MAXScript Reference (Help), por onde você poderá consultar determinado tópico para maiores informações.

Na primeira parte desta matéria, veremos o básico do MAXScript, como acessá-lo e alguns fundamentos.

O que é MAXScript?

MAXScript é a linguagem de script interna predefinida no 3ds max, permitindo que o usuário acesse a maioria dos aspectos do programa.

Essa linguagem é projetada especificamente para complementar o 3ds max.

O que esta linguagem oferece aos usuários?

- Controlar o soft interativamente através de linha de comando na janela Listener;

- Estender ou substituir a interface para melhor intereção do usuario;

- Customizar objetos, modificadores, materiais, texturas, efeitos no render e efeitos atmosféricos.
- Escrever scripts como se fosse plug-ins (scripted plug-ins), customizando modificadores, mesh objects, efeitos no render e outros;

- Construa ferramentas customizada de import/export usando ASCII e arquivo binario de I/O (input/output)

- Grave suas ações como comandos de MAXScript utilizando o Macro Record; entre outras.

O que o 3ds max não faz ou não tem a ferramenta poderá desenvolver facilitando seu trabalho.

Preciso saber programação para desenvolver minhas ferramentas?

Necessariamente NÂO! A sintaxe da linguagem é simples o bastante para aqueles que não são programadores, porque inclui o mínimo das regras básica da mesma.

Para aqueles que ja tenham algum conhecimento mais avançado, poderá fazer ferramentas mais aprimoradas.

Acessando MAXScript Utility Painel

Open Listener - Abre a janela do Listener para a inserção dos comandos.

New Script - Cria um novo Script, abrindo o editor próprio do Max.

Open Script - Abra os Scripts no editor.

Run Script - Execute os Scripts.

Utilities - Alguns Scripts tem a opção, depois de carregado ele fica nesta janela para qualquer momento ser aberto novamente.

Esta é a janela do Listener, ela pode ser acessada pressionando F11, através do Painel Utility, pelo Menu MAXScript e também fica aparente na interface na parte inferior à esquerda.
Na parte rosa é utilizada pelo Macro Record onde é escrito toda a ação feita pelo usuário, mas também poderá digitar seu comando nesta parte também.

Na parte branca é o resultado das ações mas também pode ser inserido comandos nesta parte.
Fundamentos da programação de Scripts

Abra o Listener e digite na parte branca:
sphere radius:30 segs:20 (tecle ENTER)

Esta linha inteira é o Construtor do tipo de objeto, sphere é a classe definada pelo MAX. Os parâmetros depois da classe são as informações para o Construtor definir o objeto com estes parâmetros de acordo com cada classe. Pesquise no MAXScript Reference (help) sobre os parâmetros da classe: Exemplo: digite no listener:

box (pressione F1)

Ira abrir o help com todas as propriedade da classe box que podem ser acessadas via script.

digite no Listener:

box( ) -- tecle ENTER se não tiver parâmetros adicionais feche com ( )

move $box01 [10,20,0] -- tecle ENTER

Este exemplo cria um objeto box e move em 10 unidades no eixo X e 20 unidades no eixo Y.

Move é a ação (função) que será feita, $box01 é nome do objeto na cena, sempre que quiser acessar um objeto deve por o sinal de dolar $ mais o nome do objeto.

[10,20,0] é um vetor, esta é a sintaxe dos eixos [X,Y,Z] sempre procedidos com [ ] e sepados por \",\" virgula.

move é a função, $box01 [10,20,0] é a chamada da função, então a leitura ficaria assim:

ação: move o que mover: $box01 para onde mover: [10,20,0]

digite no Listener:

$sphere01.wirecolor = blue

Este exemplo atribui a cor azul ao objeto. Esta é uma propriedade de atribuição, você esta atribuindo a cor do objeto $sphere01 como blue azul.

Esta é a sintaxe de notação de ponto, podendo acessar as propriedades do objeto, exemplo:

$sphere.name

$sphere.pos

$sphere.radius

$sphere01.wirecolor

Cada propriedade tem sua sintaxe, exemplo:

$sphere.name = \"Bola\"

$sphere01.wirecolor = green

Veja que a sintaxe para mudar o nome é diferente da cor. Tente colocar assim:

$sphere01.wirecolor = 500

Retornará um erro dizendo que é impossível converter 500 pra o tipo cor.

Aqui cabe uma nota. Todos os nomes devem estar dentro de \"name\" aspas, isto é uma string, valores são digitados normalmente 20, 50, 100, cores podem ser digitadas pelo nome, somente (red, green, blue, white, black, orange, yellow, brown e gray) estas são as globais predefinidas pelo MAX, mas podemos escrever utilizando as combinações RGB, sua sintaxe é:

color R(ed) G(reen) B(lue) A(lpha) | color 255 195 255 0

O MAXScript contem tipos reservados como Names(classes, objetos, funções, e outros valores) Palavras(if, else, while, for, do, then etc). Exemplo:

copy $sphere01 pos:[50,-80,30] name:\"Bola\"

Como ja foi explicado acima copy é uma função, $sphere01 é o objeto em cena, pos:[] é para onde copiar e name:\"Bola\" é o nome da cópia. Tentem tiras as aspas name:Bola retornará um erro de impossível converter o tipo pra string. Este foi um exemplo de nomes reservados, onde devemos obedecer sua sintaxe.

digite no Listener:
$Bola.material = standardMaterial diffuse:yellow opacity:50

Lembram do que disse acima? isto é uma propriedade de atribuição, você esta atribuindo um standardMaterial com a cor diffuse amarela e 50% de opacidade ao objeto cujo nome em cena é Bola.

Você pode escrever varias linhas no Listener e depois executá-la de uma só vez assim:

Selecione todo seu código e pressione ENTER do teclado numérico ou Shift+ENTER(do teclado alfabético).

Bem, este foi uma pequena Introdução aos Fundamentos do MAXScript. Como podem ver, há muita coisa que deixei vago mas que futuramente retornarei a elas.

Espero que tenham gostado e ate a proxima

Fagner Granella

Faça o login para poder comentar

new Comentou em 03/10/2013 14:58 Ver comentário
Roger-msms Comentou em 03/10/2013 00:07 Ver comentário
Granella Comentou em 16/06/2011 22:38 Ver comentário

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 707839.

Total de membros registrados: 135409

Últimos membros registrados: Petersone, Ana123456781lydia, ANDERSONRENAN3D, CELMIRO, joceni, maiara12345678, WEYSSMULLER, Nataly007.

Usuário(s) on-line na última hora: 331, sendo 17 membro(s) e 314 visitante(s).

Membro(s) on-line na última hora: Reinaldo Silva, Joao Barreto, Le_Andro, Wamdersilva, Pedro Juliato, Augusto Peixoto, Eber.Silva, Eduardo Ramos, Cledson, D2_Unrio, budi, Gabriel.C, Ronaldo Junior, Lucas Reis, Ricardo Paranhos, Elis, Danilo.

Legenda: Administrador, Especial, Moderador, Parceiro .

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