[Script] Un foam script à tester ...

Les scripts sous RealFlow, si pratiquent, mais pas forcement simples
Tous réunis ici !

Re: [Script] Un foam script à tester ...

Messagepar vbk!!! » 07 Sep 2010, 14:41

www.vbkstudio.com/nextlimit/RFScripts.zip

Voilou,

Si le script est démarrer sans qu'il y ait d'objet et/ou d'emitter dans la scène, cela peut créer des problèmes.
Je vais essayer d'automatiser le chargement de l'eventscript via le batch dans une prochaine version.
J'essaierai également d' étudier un nouveau moyen pour la dissipation de l'écume.

++
vbk!!!
 
Message(s) : 40
Inscrit le : 09 Mai 2008, 13:29

Re: [Script] Un foam script à tester ...

Messagepar pingu » 07 Fév 2012, 09:53

Ce script est bizarre: il y a des variables créées qui ne sont pas utilisés, il se base sur la position d'un objet pour recevoir une donnée par rapport à la pression ou la vélocité. Je le remanie totalement et je vous enverrai ma version ;)
pingu
 
Message(s) : 407
Inscrit le : 30 Oct 2008, 13:54

Re: [Script] Un foam script à tester ...

Messagepar Krameur.mc.baret » 07 Fév 2012, 09:58

Wahh Pingu hyper motivé !!! :shock:
Avatar de l’utilisateur
Krameur.mc.baret
 
Message(s) : 493
Inscrit le : 09 Déc 2009, 10:03
Localisation : Perpignan

Re: [Script] Un foam script à tester ...

Messagepar pingu » 07 Fév 2012, 10:15

De toute façon, je dois le faire pour moi...

Après avoir testé les 2 scripts de foam, je crois que le 1er, le plus simple est le meilleur. Changer les particules en mousse par rapport à la pression ne donne pas de différence notable avec l'autre script qui les change par rapport aux collisions et la vélocité. En fait, je préfère presque l'autre car avec ce script, de la mousse se créé encore après que l'emitter se soit arrêté (parce qu'il y a encore de la pression).
Dernière édition par pingu le 07 Fév 2012, 15:34, édité 1 fois.
pingu
 
Message(s) : 407
Inscrit le : 30 Oct 2008, 13:54

Re: [Script] Un foam script à tester ...

Messagepar pingu » 08 Fév 2012, 07:23

Code : Tout sélectionner
from random import randint

#--------------------------------------------------
# Function: onSimulationBegin
#--------------------------------------------------

def onSimulationBegin():
   pass


#--------------------------------------------------
# Function: onSimulationStep
#--------------------------------------------------

def onSimulationStep():

   water = scene.getEmitter("biere")
   foam = scene.getEmitter("mousse")
   seuilPres = 60000
   foamAge = 10
   vRandom = 1000
   ageStop = 200

   particleWater = water.getFirstParticle()      #Création de la mousse
   while (particleWater):
      if (particleWater.getPressure() > seuilPres) and (scene.getCurrentFrame() < ageStop):
         foam.addParticle(particleWater.getPosition(),particleWater.getVelocity())
         water.removeParticle(particleWater.getId())
      particleWater = particleWater.getNextParticle()
   
   particleFoam = foam.getFirstParticle()         #Transformation de la mousse
   while (particleFoam):
      if (particleFoam.getAge() > foamAge + randint(0, vRandom)):
         water.addParticle(particleFoam.getPosition(),particleFoam.getVelocity())
         foam.removeParticle(particleFoam.getId())
      particleFoam = particleFoam.getNextParticle()


#--------------------------------------------------
# Function: onSimulationFrame
#--------------------------------------------------

def onSimulationFrame():
   pass


#--------------------------------------------------
# Function: onSimulationEnd
#--------------------------------------------------

def onSimulationEnd():
   pass


#--------------------------------------------------
# Function: onChangeToFrame
#--------------------------------------------------

def onChangeToFrame():
   pass


Voilà le code modifié. En fait, il n'a plus rien à voir avec l'ancien: plus de fenêtre, il faut modifier les valeurs dans le script.

Explication du script: vous voulez que votre emitter créé de la mousse? Alors clonez votre emitter (edit->clone selected). Changez les valeurs de densité (il faut qu'elle soit moins élevé que l'emitter original si vous voulez que la mousse soit au dessus du liquide), int pressure et ext pressure. Renommez votre nouvel emitter avec un nom comme "mousse" ou "foam". Allez dans "simulation events" (layout->simulation events). Sélectionnez tout et remplacez par le code ci-dessus. Changer les valeurs des variables à votre guise:

water: mettez le nom de votre emitter original entre les guillemets.
foam: mettez le nom de votre emitter qui recevra les particules de mousse entre les guillemets.
seuilPres: choisissez une valeur à partir de laquelle l'emitter original se transformera en mousse
foamAge: l'age maximum de la mousse avant qu'elle ne redevienne liquide (en secondes)
vRandom: pour que la mousse se transforme en liquide sur une plus ou moins longue durée. Le calcul se fait de la sorte: foamAge + un nombre entre 0 et vRandom (prenez un nombre très grand pour une dissipation lente).
ageStop: choisissez à partir de quelle frame vous ne voulez plus que la bière se transforme en mousse.

scène exemple: http://freakshare.com/files/1tmokx1s/mousse.rar.html (testé)
pingu
 
Message(s) : 407
Inscrit le : 30 Oct 2008, 13:54

Re: [Script] Un foam script à tester ...

Messagepar Krameur.mc.baret » 08 Fév 2012, 09:40

Merci beaucoup !!!

Maintenant va dormir un peu !!!
Avatar de l’utilisateur
Krameur.mc.baret
 
Message(s) : 493
Inscrit le : 09 Déc 2009, 10:03
Localisation : Perpignan

Re: [Script] Un foam script à tester ...

Messagepar pingu » 08 Fév 2012, 09:50

Mais je viens de me lever papa. Maintenant j'essaie de faire une simulation avec bcp de particules. Je me bats contre les instabilités.
pingu
 
Message(s) : 407
Inscrit le : 30 Oct 2008, 13:54

Re: [Script] Un foam script à tester ...

Messagepar pingu » 09 Fév 2012, 13:53

Après des tests, je peux vous dire que créer du foam par rapport à la pression n'est pas une bonne solution :( (mm si l'idée était bonne puisque dans la réalité cela doit sûrement se passer comme cela) puisque cela prend 3x plus de temps dans ma scène que de calculer par rapport aux collisions et vélocité et le résultat est équivalent.
pingu
 
Message(s) : 407
Inscrit le : 30 Oct 2008, 13:54

Précédent

Retour vers Tutoriaux & Scripts

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité

cron