Cursos e Bibliotecas Ver Mais

Galeria 3D1 Ver Mais

Beckman3D   São Luis
mdpontes   Macapá - AC
Lowr   São Paulo
Wagner Souza   Londrina - PR
clebercmds   Timbó - SC - SC

Portfólios Ver Mais

luisrosenstock   Joinville-SC
Rodrigo   Minas Gerais - AC
Eniack   Tramandaí-RS
duhhhbr   Arvorezinha - RS

Tutoriais - Tutoriais dos usuários

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: 707691.

Total de membros registrados: 135300

Últimos membros registrados: ViniBoy777, MBS, Rinte1943, sc900dumps, Harrysapgar, bunta02, Bunta026, jeffshaw.

Usuário(s) on-line na última hora: 622, sendo 27 membro(s) e 595 visitante(s).

Membro(s) on-line na última hora: Leonardo, Hot, Rodrigosouza3D, Anderson Miguel, Nuno, clastac, cadwillem, look, Moura, Eduardo Ramos, Thiago Couto, Juarez, gilson antunes, Gabriel, ViniBoy777, Carlos E. Nogueira, modena3d, deathstars, Starter, Roberto Trevelin, Eber.Silva, mastermax, Gabriel.C, Elis, Fernando Cunha, Marco Rocha, dallest91.

Legenda: Administrador, Especial, Moderador, Parceiro .

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