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

Simulare Vibrazione Cellulare

Recommended Posts

Ciao Ragazzi sto preparando una piccola animazione in maya di un cellulare che suona e vibra poggiato su un tavolo,

volevo applicare alla mesh uno scriptino che mi permettesse di simulare la vibrazione del cellulare: quindi sia la vibrazione che il movimento random del cell sul piano.

dato che sono una schiappa in matematica volevo chiedere a qualcuno se mi può dare una mano o magari conosce qualche tutorial che potrebbe fare al caso mio.

grazie

ciao Ale

Share this post


Link to post
Share on other sites

Diaciamo che ci sono riuscito :P

due espressioni molto semplici giocando con i paramtri si ottengono effetti simpatici:

pCube1.translateY = abs(sin(time));

pCube1.translateX = noise(time/2);

se qualcuno ha un consiglio migliore è ben accetto

ciao!!

Share this post


Link to post
Share on other sites

l'ho modificata un pò simulando gli intervalli tra uno squillo ed un altro:

$stop = sin(time);

if ($stop > 0){

pCube1.translateY = abs(sin(time*20));

pCube1.translateX = noise(time/2);

pCube1.translateZ = noise(time/2);

}else{

pCube1.translateY = 0 ;

pCube1.translateX = pCube1.translateX;

pCube1.translateZ = pCube1.translateZ;

}

ora il problema è che ho uno scatto di posizione da quando si arresta a quando riprende a vibrare, dato che comunque il time scorre ed ho valori diversi tra l'arresto e la ripartenza.

Share this post


Link to post
Share on other sites

ho aggiunto un minimo di rotazione intorno a Y :

$stop = sin(time);

if ($stop > 0){

pCube1.translateY = abs(sin(time*20));

pCube1.translateX = noise(time/2);

pCube1.translateZ = noise(time/2);

pCube1.rotateY = pCube1.rotateY+0.1;

}else{

pCube1.translateY = 0 ;

pCube1.translateX = pCube1.translateX;

pCube1.translateZ = pCube1.translateZ;

}

complessivamente il movimento è discreto, parentando la mesh del cellulare al cubo che in scala è molto più piccolo, non si nota molto il problema dello scatto di posizione.

Share this post


Link to post
Share on other sites

mumble.... se ti posso dare qualche suggerimento...

  • aggiungi un attributo per controllare l'ampiezza della vibrazione e usalo come fattore di scala.
  • anima rotazione e l'attributo appena aggiunto con delle curve, in questa maniera avrai molto più controllo.

Così è come lo farei io

$stop = sin(time);


if ($stop > 0){

//la vibrazione di un cellulare è guidata dipicamente da un motorino elettrico che gira a 3000 giri/min

// che corrispondono a 50 vibrazioni al secondo.. ma per evitare discontinuità quando si ferma deve essere un multiplo di pi greco

//16*pi è circa 50

  pCube1.translateY = pCube1.vibrationGain*abs(sin(time*16*3.141592));

  pCube1.translateX = pCube1.noiseGain*noise(20);

  pCube1.translateZ = pCube1.noiseGain*noise(22);

// animare questo tramite 

//  pCube1.rotateY = pCube1.rotateY+0.1;

}else{

  pCube1.translateY = 0;

// non importa fare pCube1.translateZ = pCube1.translateZ;

}

Share this post


Link to post
Share on other sites

Grazie per il suggerimento :w00t:

ma non ho ben capito come setto vibrationGain e noiseGain

tieni presente che è il primo Mel script che scrivo quindi ci capisco poco ^_^

cosi come è adesso mi da come errore:

// Error: Attribute not found or variable missing '$': pCube1.vibrationGain //

// Error: Attribute not found or variable missing '$': pCube1.noiseGain //

// Error: Attribute not found or variable missing '$': pCube1.noiseGain //

Share this post


Link to post
Share on other sites
Grazie per il suggerimento :w00t:

ma non ho ben capito come setto vibrationGain e noiseGain

tieni presente che è il primo Mel script che scrivo quindi ci capisco poco ^_^

cosi come è adesso mi da come errore:

// Error: Attribute not found or variable missing '$': pCube1.vibrationGain //

// Error: Attribute not found or variable missing '$': pCube1.noiseGain //

// Error: Attribute not found or variable missing '$': pCube1.noiseGain //

Come ti ha suggerito all'inizio, devi crearti due customAttribute, per l'appunto chiamati vibrationGain e noiseGain (questo non l'ha scritto esplicitamente ma si capisce dai! ) che animerai con delle curve per avere piú controllo ;)


Edited by kage_maru

"la spada è l'estensione dell'anima"

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