Jump to content

johnwhile

Members
  • Content Count

    216
  • Joined

  • Last visited

  • Days Won

    1

Reputation Activity

  1. Like
    johnwhile got a reaction from algosarK in 3D studio max random   
    è facile fare un funzione che seleziona a random, supponi di aver selezionato una serie di oggetti, fai partire questo codice:

    select selection[random 1 selection.count] e lui ti restituisce una selezione a caso tra gli oggetti scelti: oggetti = selection oggetti è l'array dei nodi selezionati num = oggetti.count è la quantità di oggetti presenti indice = random 1 num indice è un numero scelto a caso trà uno e la quantità di oggetti select oggetti[indice]
    seleziona l'"indic-esimo" oggetto

    poi ci puoi fare quello che vuoi ma il concetto è semplice
  2. Like
    johnwhile reacted to coren in Script Assegna Materiale   
    per il discorso della libreria devi usare la collezione riservata del maxscript: materialLibrary
    Puoi anche salvarla su file e viceversa caricarla da file.
    se nella guida del mascript ricerchi la parola 'materialLibrary' il primo risultato è quello che cerchi.

    un consiglio:
    Non usare variabili globali che si chiamano 'a' o 'aa', potrebbero creare problemi ti interazione con altri script\plugin.
    Non usare il selectmore in quel modo, ti rallenta tantissimo l'esecuzione dello script; c'è un topic proprio a riguardo nella sezione "how to make it faster" nella guida, cito:


    difatti se nell'help cerchi 'selectmore' il primo risultato è proprio quel topic, al suo posto prova ad usare:

    --in questo modo selezioni solo il contenuto di questo vettore select entdaselez --in questo modo fai la stessa cosa che facevi col selectMore, ma molto più veloce join entdaselez (selection as array) select entdaselez

    quello che fai col join è aggiungere al primo vettore(in questo caso entdaselez che contiene tutti gli oggetti del layer) gli elementi del secondo(la selezione corrente convertita in un array di oggetti)


    per domande son qua


    ciao


    edit: mi è venuto in mente uno script che fa già questa cosa, è theOnion un layer manager veramente comodo che permette di gestire i materiali da layer e inoltre permette di averli impostati come materiali alternativi, ovvero che una volta che non li si vuole più si possono disabilitare e ritornano i materiali originari degli oggetti, lo puoi scaricare da scriptspot
  3. Like
    johnwhile got a reaction from Michele71 in Rotate, Scale E Move In Maxscript   
    ...e giusto per completare quello che Coren ha scritto puoi fare anche conversioni tra sistemi di coordinate semplicemente moltiplicando una matrice di conversione a tutte le matrice di trasformazione degli oggetti, esempio questa matrice:
    ConvMat=
    row1:[-1,0,0]
    row2:[ 0,0,1]
    row3:[ 0,1,0]
    row4:[ 0,0,0]
    converte un oggetto con un sistema di coordinate diverse cioè con l'X opposto e la Y e Z invertite di posto, basta che ad esempio fai oggetto.transform *= ConvMat
    Stessa cosa anche per i punti esempio oggetto.pos *= ConvMat
    Se guardi il pivot capirai.
    Magari non lo farai mai ma se dovessi incappare in questo problema (e credo che capiti spesso) non ti preoccupare, esistono soluzioni molto semplici

    inoltre ci sono operazioni come allineamento a X:
    row1:[ 0,0,0]
    row2:[ 0,1,0]
    row3:[ 0,0,1]
    row4:[ 0,0,0]
    che schiaccia tutto sull'asse X.
    Ci sarebbero anche altre trasformazioni fighissime ma dovrei cercarle su internet che non mi ricordo dove le avevo trovate, forse qua: http://www.flipcode.com/documents/matrfaq.html#Q41

×
×
  • Create New...

Important Information

Per garantire la migliore esperienza di navigazione possibile questo sito utilizza cookie tecnici, statistici e di terze parti. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all'uso dei cookie. Privacy Policy - Cookie Policy