PDA

Visualizza Versione Completa : Espressione che non funziona... come fare?



Wotan3d
25-07-14, 16:58
Ciao,

ho fatto una semplicissima espressione funzionante in un canale di un oggetto:

[Null_14.Position.Z, Frame - 10]

In sostanza l'oggetto prende la posizione del canale Z di Null_14 mantenendo un timelag di 10 frame.

Volendo però rendere dinamico quel "10 frame", in modo da modificarlo al volo senza cambiare i canali di 20 oggetti, l'ho modificata come segue:

[Null_14.Position.Z, Frame - NullT.Position.X]

dove NullT è un null in posizione 10m su X, che posso variare.
Ebbene, l'espressione viene accettata, come fosse scritta giusta, ma non viene praticato nessun lag, come se fosse scritto "Frame - 0".

Come si può fare? è possibile assegnare al posto di quel "10" un valore preso dalla posizione di un null?

Grazie
ciao

Lino
25-07-14, 17:26
15234

Questa scena dovrebbe funzionare.

La sintassi che hai usato non mi sembra venga accettata da LightWave.

Ho usato questa:

Null02.pos(Time-(10/25)).x

(assegnata al canale X del Null01)

25= fps della scena

Spero ti sia utile!

Wotan3d
25-07-14, 18:01
Grazie,
si, funziona nell'identico modo in cui funziona a me (ho dovuto però eliminare quel /25 lasciando solo 1 (1 secondo, oppure variando, ad esempio 0.5 per mezzo secondo).
Si comporta esattamente come [Null02.Position.X, Time - 1].

Il problema è che quel "1 secondo" lo voglio poter settare attraverso la posizione di un altro null (lo chiamiamo Null03?).
Quindi io, per logica, modificherei la tua funzione in:

Null02.pos(Time-(Null03.pos.x)).x

in modo che il Time corrisponda alla posizione su X di null03, ed io muovendo Null03 posso aumentare o diminuire il lag fra Null01 e Null02.
Ma non funziona, non prende il valore di Null03.

Lino
25-07-14, 19:06
Scusa ma ho avuto la connessione offline per ore!!!

Prova questo:

15235

Null02.pos(Time-((1/[Light.Position.X])/25)).x

Muovendo la luce sulle X aggiungi frame al lag....

Wotan3d
25-07-14, 19:52
Grazzissimo, funziona.
Ha un comportamento stranissimo che non riesco a prevedere dal -2 allo 0, ma basta pochissimo per trovare la posizione voluta.
Adesso provo a concatenarci altri 15 oggetti, ciascuno con il medesimo lag dal precedente... lol! 15 funzioni quindi, x 3 canali diversi.... 45 funzioni diverse, ma una volta settato dovrebbe essere tutto modificabile solo spostando un unico null.

Lino
25-07-14, 20:01
Scusami....

Questa e' sbnagliata:

Null02.pos(Time-((1/[Light.Position.X])/25)).x

Questa dovrebbe essere giusta:

Null02.pos(Time-(1+[Light.Position.X])/25).x

Wotan3d
26-07-14, 12:51
Si, funziona perfettamente adesso. Non ci sarei mai arrivato in quanto non ho idea di come funzioni il comando Time.
Ho provato a fare la medesima cosa anche per controllare il canale dissolve, ma non funziona - ho tentato con Null02.Dissolve(Time-(1+[Light.Position.X])/25) - e varianti, ma non prende la light position, mentre prende un valore intero. Non importa, ho impostato in tutti gli oggetti il channel follower, e se mi chiedono modifiche cambierò il valore del lag che ho inserito lì a mano, è solo per il dissolve quindi sono solo 15, mentre il resto viene controllato dalle espressioni.

Grazie mille per tutto!
Ciao

Lino
26-07-14, 14:32
Non credo che il dissolve supporti la funzione time! Verifichero'.

Quella che ho usato e' una sintassi alternativa a quella usata normalmente.

Time e' incorporato.

[Null.Position.X] diventa Null.pos(Time).x

[Null.Rotation.H] diventa Null.rot(Time).h

[Null.Scale.X] diventa Null.scale(Time).x

;)

Wotan3d
27-07-14, 00:01
Con questa sintassi la supporta:
[Null.Dissolve,Time - 1]
dove 1 può essere un qualsiasi numero.

Invece la tua sintassi alternativa con time incorporato no, o almeno non ho trovato il sistema di abbreviare "Dissolve" (Position=pos, di conseguenza Dissolve=??? "dis" no, non lo prende, "diss" nemmeno, "d" non se ne parla...)

pertanto dovendo usare la sintassi normale non riesco a fargli digerire anche la [Light.Position.X] al posto dell'1.

Ma come ti dicevo ho già sistemato tutto con il channel follower e se dovrò cambiare reinserirò manualmente i time lag.
Grazie comunque per il tempo dedicatomi.
Ciao