Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
neutrino

Errore Maxscript

Recommended Posts

Salve a tutti. Nel 2004 uscì sulla rivista Computer Grafica T&A un tutorial sulla riproduzione della scena dell'entrata delle sentinelle di Matrix in Zion. L'autore creò uno script che permetteva di far dialogare lo strumento Crowd utilizzato per la gestione dei delegati (da sostituire in seguito con le sentinelle vere e proprie) e il Particle Flow per la gestione dei colpi sparati da un cannone. In breve, lo script doveva servire per dire a Max quando un colpo colpiva un delegato. In caso positivo veniva attivato l'attributo "hit" (colpito) e il delegato precipitava verso il basso.

Lo script è il seguente, ma, forse perchè creato ai tempi di Max6, se fatto oggi restituisce un errore non meglio precisato evidenziando la riga "on Init pCont do ".

Qualcuno mi sa aiutare per favore? oppure si sente in grado di contattarmi per fare insieme daccapo il tutorial?

-- This is a script that can be used to modify particle properties

--

-- Created: 6-06-2002

-- Last Updated:

--

-- Author : Oleg Bayborodin

-- Version: 3ds max 5.1

--********************************************************************

-- MODIFY THIS AT YOUR OWN RISK

on ChannelsUsed pCont do

(

-- nello script ci interessa solo la posizione delle particelle

p.Cont.usePosition=true

)

on Init pCont do

(

)

on Proceed pCont do

(

-- prende il numero di particelle nell'evento

n_part = pCont.NumParticles()

-- prende la lista dei deflectors defl_sent

defl=$defl_sent* as array

-- ripete le operazioni seguenti per ogni particella nell'evento

for p in 1 to to n_part do

(

-- seleziona la particella da esaminare

pCont.particleIndex = p

-- ripere le operazioni seguenti per tutti i deflector

for d in 1 to defl.count do(

-- seleziona il deflector da esaminare

de=defl[d]

-- se non è già stato colpito esegui il controllo

if de.hit=false then (

-- calcola la distanza tra la particella ed il centro del deflector

dis=distance pCont.particlePosition de.pos

-- se questa distanza è < o = al raggio del deflector allora è colpito

if dis<=de.radius then(

-- attiva la creazione di chiavi

with animate on(

de.hit=true

)

) -- fine if

) -- fine if

) -- fine for

) -- fine for

) -- fine

on Release pCont do

(

)

Share this post


Link to post
Share on other sites

non l'ho testato, ma un errore è qui

on ChannelsUsed pCont do

(

-- nello script ci interessa solo la posizione delle particelle

p.Cont.usePosition=true

)
questa riga
p.Cont.usePosition=true
va scritta così:
pCont.usePosition=true

ciao

Share this post


Link to post
Share on other sites

così senza poterlo testare faccio un pò fatica.... mi potresti postare la scena?

comunque ho trovato un altro errore in questa riga:

-- ripete le operazioni seguenti per ogni particella nell'evento

for p in 1 to to n_part do
c'è un 'to' in più:
for p in 1 to n_part do

ciao

Share this post


Link to post
Share on other sites

Non ho problemi a passarti la scena, anche se nn so quanto ci puoi capire così. Fa parte di un tutorial piuttosto complicato. Cmq, cliccando sull'icona del Particle Flow e accedendo al pannello degli eventi, bisogna modificare con quello script, lo script assegnato all'operatore Script Operator.

Il fatto che nn dia errore sarebbe già una conquista...!

la scena è stata fatta con max 2008...

azzz..non me la fa uploadare....come te la posso dare?

Share this post


Link to post
Share on other sites

guarda mi dice che il file è + grande dello spazio disponibile, ma pesa solo 136Kb.....dammi una mail, che te lo do.

Cmq lo script funziona pure se nella scena c'è solo l'icona del particle flow senza niente. L'importante è che nn dia lo stesso errore che dà a me.

Share this post


Link to post
Share on other sites

scaricato e guardato.

A parte gli errori di sintassi che ti ho già segnalato c'è il fatto che la variabile defl è sempre vuota, questo perchè questa riga:

defl=$defl_sent* as array
cerca oggetti che per nome iniziano con 'defl_sent' solo che nella scena non ce ne sono, perchè iniziano con 'del_sent'. altra cosa, nella riga:
if de.hit=false then (

in de tu metti uno degli oggetti che in precedenza hai messo in defl, poi in questa riga vai a cercare la proprietà 'hit' che però quell'oggetto non possiede, ma che possiede invece un oggetto "SOmniFlect".

Quindi controlla bene il tutorial.

se hai bisogno di altre cose son qua.

ciao

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...
Aspetta! x

Ti piacerebbe rimanere sempre aggiornato sulle ultime novità nel campo della computer grafica?

Iscrivendoti alla Newsletter riceverai subito una mail con le indicazioni per scaricare gratuitamente:

  1. Le immagini HDRI presenti su HDRI pro
  2. Una sequenza di 300 immagini HDRI generata da Luca Deriu tramite il programma Real HDR