Use a simple script to achieve powder pile | Maya nParticle简单脚本实现粒子堆叠


Youtube

Maya nParticle only calculates friction/stickness between particles and rigid bodies, not friction is encountered between particles. My guess is the algorithm complexity is too high. Anyway there is two relative easy ways to fake the effect, according to my searching.

想要用一个一包糖粒堆在物体(对又是它..)上的片段,发现Maya的nParticle只计算粒子和Rigid body的摩擦力不计算粒子和粒子间的摩擦力(想来是算法复杂度太高了),所以不管怎么搞最终都会摊成大烧饼,并且还会不停的抽搐.. 查了下大概有两个相对简单的方法

1. hold particles with a invisible rigid body. 2. Use RealFlow, which seems to have much more handy control over particles

I’m not happy with either. 1 is lame. 2 too much trouble, have to get hang of another environment. If I must do scripting, I choose to learn mel.

So the algorithm is:

It’s unlikely to mess with friction as I guessed above. I tried to modify per particle mass to let them stuck in the space. Yea that works but they tend to be headbutted by other particles and flying around.. for science. Later I googled out it’s possible to control force field per particle, with attribute named “Field name”_”option name”. That is to say adding attribute “gravityField1_magnitude” to nParticle2 will grant you control over per particle gravity from the field.

On creation:

[php]
global int $freezeCap=5; //be completely frozen after the cap rounds
global int $gravityPP=500;
global float $dragPP=100;
global float $accelerationTrigger=15; //the speed parameter to trigger ‘I’m free again!", which leads to free droping.
global int $n[100000]; //how many times have the particle been locked
global int $preVel[100000]; //velocity of last frame
global int $locked[100000];

nParticleShape4.dragField1_magnitude=0;
nParticleShape4.gravityField1_magnitude=$gravityPP;

global int $init=1;
if($init==1) {
int $i;
for($i=0;$i<100000;$i++) {
$n[$i]=0;
$locked[$i]=0;
}
$init=0;
}
[/php]

Before dynamics:
[php]
int $id=nParticleShape4.particleId;
float $vel=abs(nParticleShape4.velocity);

//print("nParticleShape2.velocity "+$nParticleShape2.velocity+"\n");

if($vel>$preVel[$id]+$accelerationTrigger) {
$n[$id]=0;
nParticleShape4.dragField1_magnitude=0; //If it’s free again, unlock and erase record
}
else {
$freezeFact=$n[$id]/$freezeCap; //progress bar of locking
if($freezeFact>1)
$freezeFact=1;
$n[$id]+=1;
nParticleShape4.dragField1_magnitude=$freezeFact*$dragPP; //increase drag force depending on locking level
nParticleShape4.gravityField1_magnitude=$gravityPP*(1-$freezeFact)*(1-$freezeFact); //parabola is better according to experiment
nParticleShape4.velocity=<<0,0,0>>;
}

$preVel[$id]=nParticleShape4.velocity;
[/php]

The script is not bad to me.. adjustable parameters are handy. Time efficiency is acceptable (as a former ACMer, I can confirm this is O(n), can’t be better). 20 million particles * 100 frames cost my i7 half an hour. Not perfect but enough for bragging.
1. 弄个透明的动画的rigid body来把粒子圈起来。 2. 用RealFlow,我只用RealFlow模拟水,但是显然那它对粒子的控制比Maya厉害得多。

两个方法我都不高兴,1太不屌爆,2太麻烦,要做很多熟悉另一个环境的工作,且要写脚本,所以不如来学下mel。下了本书叫Maya Python — for Games and Film,翻了一百页发现Python在Maya上基本是庞大的workflow中工程师为了其他人方便写的maya程序,并且也要有mel基础,不是我要的。

总之,思路是:

想要计算摩擦力显然是不现实的,说过了。我先通过改质量的途径让粒子满足条件时失去质量以停在原地不受重力影响,停是能停住但是会被别的particle撞飞.. 非常科学。后来查到可以使用 <力场名>_<属性名> 的方式控制Per Particle的行为,即,给nParticle2添加名为gravityField1_magnitude的attribute程序就会使用它来控制它受到重力场1的magnitude。然后通过DragField让particle稳定。我在注释里详细说。

粒子生成时脚本:

[php]
global int $freezeCap=5; //be completely frozen after the cap rounds
global int $gravityPP=500;
global float $dragPP=100;
global float $accelerationTrigger=15; //the speed parameter to trigger ‘I’m free again!", which leads to free droping.
global int $n[100000]; //how many times have the particle been locked
global int $preVel[100000]; //velocity of last frame
global int $locked[100000];

nParticleShape4.dragField1_magnitude=0;
nParticleShape4.gravityField1_magnitude=$gravityPP;

global int $init=1;
if($init==1) {
int $i;
for($i=0;$i<100000;$i++) {
$n[$i]=0;
$locked[$i]=0;
}
$init=0;
}
[/php]

动态前的脚本:

[php]
int $id=nParticleShape4.particleId;
float $vel=abs(nParticleShape4.velocity);

//print("nParticleShape2.velocity "+$nParticleShape2.velocity+"\n");

if($vel>$preVel[$id]+$accelerationTrigger) {
$n[$id]=0;
nParticleShape4.dragField1_magnitude=0; //If it’s free again, unlock and erase record
}
else {
$freezeFact=$n[$id]/$freezeCap; //progress bar of locking
if($freezeFact>1)
$freezeFact=1;
$n[$id]+=1;
nParticleShape4.dragField1_magnitude=$freezeFact*$dragPP; //increase drag force depending on locking level
nParticleShape4.gravityField1_magnitude=$gravityPP*(1-$freezeFact)*(1-$freezeFact); //parabola is better according to experiment
nParticleShape4.velocity=<<0,0,0>>;
}

$preVel[$id]=nParticleShape4.velocity;
[/php]

个人感觉这个还不错,有很多参数可以控制,效率也还行(前ACMer表示这个就是O(n)..不能再低了),200万粒子100帧i7跑半个小时。显然不完美,蒙人没问题。

10,972 thoughts on “Use a simple script to achieve powder pile | Maya nParticle简单脚本实现粒子堆叠

  1. Https://Dustyways.wiki

    Wirklich guter Post. Zahlreiche hilfreiche Informationen. Super für
    die Mühe. Ich werde öfter reinschauen.
    Stimme zu – das Thema der Möbelauswahl wird oft schwierig.
    Hilfreicher Ansatz.
    Echt praxisnah. Ich habe schon nach genau so einem Beitrag seit Wochen gesucht.
    Super Arbeit!

    my blog post – https://Dustyways.wiki

    Reply
  2. bitcoin_szEr

    Also ich spiele jetzt seit ein paar Monaten und ganz ehrlich, zu Beginn hatte ich meine Zweifel, ob so ein Laden mit Bitcoin uberhaupt was taugt. Bin uber einen Kollegen drauf gekommen, der seit uber einem Jahr Poker mit Bitcoin spielt, und tja – hangen geblieben bin ich am Ende doch. Grade fur deutsche Spieler ist das sowieso ne halbe Wissenschaft, was Ein- und Auszahlungen angeht, dazu spater.

    Was die Auswahl angeht gibts echt genug zu tun – wurde sagen uber 1500 Titel, alles in allem. Die bekannten Studios sind am Start: Pragmatic Play mit dem ganzen Kram, dazu Book of Dead, das lauft alles rund. Der Live-Kram lauft uber Evolution, mit echten Croupiers und Kram wie Crazy Time, da bleib ich hangen ofter mal. Und klar, das eigentliche Ding ist fur mich halt der Pokertisch – Bitcoin Poker eben, deswegen bin ich hier.

    Was den Willkommensbonus angeht: angeboten wurden mir 100% bis 500 Euro plus rund 200 Free Spins, gestuckelt uber paar Tage. Das Wagering betragt x35, geht klar fur die Branche, lest euch besser die Bedingungen wirklich durch. Ab und zu laufen kostenlose Turniere und mal was ohne Einzahlung, da holt man sich ohne Risiko das Ganze. Die aktuellen Aktionen und Codes seht ihr aktuell uber [url=https://best-bitcoin-poker.de/echtgeld]deposit bitcoin poker[/url] an, bevor ihr euch anmeldet, ist meist aktueller als der Support.

    Jetzt zum Nervigen – die Auszahlung. Per Bitcoin gings bei mir fix, top. Aber als ich mal Neteller probierte, zog sich das und der KYC-Kram hat genervt. Visa, Mastercard, Skrill, Neteller gehen alle, mal ehrlich der Witz an der Sache ist, dass keiner gro? mitliest. Mindesteinzahlung lag bei 20€, Anmeldung schnell erledigt.

    Mobil laufts sauber – es gibt ne App furs Handy, sonst uber die Seite geht auch alles. Der Chat 24/7 per Chat, Deutsch ging mal besser mal schlechter, englisch ging aber immer. Zur Lizenz ist es transparent, darauf achte ich. Fur alle hier aus Deutschland, die bitcoin poker spielen reinschnuppern wollen – fur mich passts gerade, mal sehen wie lange.

    Reply
  3. Slot 4D Gacor Gampang Menang

    This is the perfect web site for anybody who would like to understand this topic.
    You know a whole lot its almost tough to argue with you (not that I really would want to…HaHa).
    You certainly put a fresh spin on a topic which has
    been discussed for a long time. Great stuff, just great!

    Reply
  4. 888starz_ppkl

    Gram na 888starz chyba jakies kilka miesiecy i tak sobie pomyslalem, ze rzuce tu pare slow. Nie ma co owijac w bawelne — zapisalem sie glownie dla bonusu i jakos zostalem. Jako gracz z Polski nie ma zbyt wielu porzadnych miejscowek, wiec cos takiego zawsze sprawdzam dokladnie.

    Przede wszystkim lece w automaty i jest w czym wybierac. Jest chyba z dwa tysiace tytulow, poczawszy od Pragmatic Play po NetEnt, Play’n GO oraz Yggdrasil. Standardowe Gates of Olympus oraz Book of Dead masz na wyciagniecie reki, ale prawde mowiac najczesciej wracam do jednego czy dwoch ulubiencow. Grafika jest ok tez na kompie.

    Jesli wolisz live — jest sekcja od Evolution, z prawdziwymi krupierami, do tego rozne teleturnieje w stylu Crazy Time. Potrafi wciagnac na calego. Jesli chodzi o forse — robilem karte i Neteller, mozna rowniez krypto. Pierwszy raz dostalem po jakichs pol dnia, Skrillem sa najszybsze. Jesli komus zalezy na aktualne kody i promki u [url=https://888starz-casino4.pl/free-spins]888starz 50 free spins[/url] przed rejestracja, regularnie sie aktualizuje.

    Bonus na start jest calkiem niezle — dorzucaja spory procent od wplaty oraz paczke zakrecen. Ruch stoi na okolo x40, i to szczerze jest standardem, ale jak zawsze czlowiek musi ogarnac zasady. Minimalny depozyt niewielki, zapis trwala jakies dwie minuty. Aplikacja na androida istnieje bez wiekszych zgrzytow, sciagalem apk ze strony.

    No i teraz lyzka dziegciu — obsluga potrafi kaze czekac, szczegolnie pod obciazeniem. Weryfikacja konta delikatnie wkurzyla, choc widocznie kwestia regulacji inaczej sie nie da. W sumie — jestem raczej zadowolony, zdania w sieci sa rozne, dlatego sprawdz sam, bez szalenstwa na start.

    Reply
  5. bitcoin_yoEr

    Ich zocke jetzt seit dem Fruhjahr und muss ehrlich sagen, am Anfang war ich echt skeptisch, ob so ein Laden mit Bitcoin uberhaupt was taugt. Bin uber einen Kollegen dort gelandet, der seit Ewigkeiten Poker mit Bitcoin spielt, und was soll ich sagen – hangen geblieben bin ich am Ende doch. Fur uns hier in Deutschland ist das ohnehin ne halbe Wissenschaft, was Ein- und Auszahlungen angeht, aber gut.

    Beim Angebot gibts echt genug zu tun – so grob so 1800 bis 2000 Spiele, inklusive Tische. Die gro?en Namen sind am Start: Play’n GO mit Gates of Olympus und Sweet Bonanza, plus Betsoft und Yggdrasil, das lauft alles rund. Der Live-Bereich lauft uber Evolution, richtige Croupiers und den Gameshows, da versacke ich abends gerne mal zu lange. Was mich eigentlich halt, das Kernstuck ist fur mich halt der Pokertisch – Bitcoin Poker eben, darum gehts mir ja.

    Beim Bonus: angeboten wurden mir die ublichen 100% obendrauf plus rund 200 Free Spins, nicht alle auf einmal. Das Wagering betragt x35, was ok ist fur die Branche, schaut euch das Kleingedruckte durch. Immer wieder gibts kostenlose Turniere fur lau, so kann man antesten risikofrei das Ganze. Die neuesten Angebote seht ihr aktuell uber [url=https://best-bitcoin-poker.de/de-de]online poker mit bitcoin[/url] bevor ihr einzahlt, die halten das ganz gut aktuell.

    Kommen wir zum Kritikpunkt – das Auszahlen. Uber Bitcoin lief es meist unter ner Stunde, echt sauber. Als ich einmal uber Skrill wollte, dauerte es langer und der KYC-Kram zog sich. Karten und E-Wallets sind alle da, mal ehrlich der Witz an der Sache ist, dass es eben schneller und anonymer geht. Kleinster Einsatz so um die 20 Euro, Registrierung war in Minuten durch.

    Unterwegs klappt alles – App ist vorhanden furs Handy, alternativ im Browser geht auch alles. Der Kundendienst ist rund um die Uhr erreichbar, die deutschsprachige Hilfe war mal besser mal schlechter, auf Englisch lief es rund. Lizenztechnisch passt es, das check ich immer. Fur alle hier aus Deutschland, die mal Poker mit Bitcoin reinschnuppern wollen – ich zock weiter, kann sich ja noch andern.

    Reply
  6. http://Www.Aasee-Musik.de/

    Toller Beitrag. Reichlich konkrete Anregungen. Großes Lob dass du dein Wissen teilst.
    Ich komme bestimmt wieder vorbei.
    Genau – die Frage der Wohnungsgestaltung wird oft herausfordernd.
    Hilfreicher Ansatz.
    Aufrichtig inspirierend. Ich habe schon nach genau so
    einem Beitrag genau danach gesucht. Klasse gemacht!

    Feel free to visit my website :: http://Www.Aasee-Musik.de/

    Reply
  7. titit

    Hello there, You have done a great job. I’ll definitely digg it and personally recommend to
    my friends. I’m confident they will be benefited from this website.

    Reply
  8. セクシー 下着

    このたびインターネットでショッピングをしていた際、大変魅力的なランジェリーショップを発見することができました。商品一つ一つにオリジナリティがあり、デザインのクオリティが極めて高く、見ているだけでもワクワクするようなラインナップになっています。
    様々なテイストのアイテムが豊富に用意されており、可愛らしいデザインからセクシーなデザインまで幅広く取り揃えられているので、自分好みの商品を必ず見つけることができます。素材は柔らかいで着心地が抜群であり、体に優しくフィットする設計が大変魅力的です。
    全体の品質が非常に高く、どの商品も安定したクオリティを保っている点が信頼につながります。流行に左右されない長く愛用できるデザインが多く、コスパの面でも非常に優れていると感じます。
    購入前の商品情報も詳細に記載されており、安心して選択することができました。実際に商品を手に取った際の質感は、サイトの写真以上に素晴らしくで、大変満足しております。
    今後もリピート購入をしたいと思います。周りの友人や知人にも安心しておすすめできるショップですので、これからのさらなる発展と新作アイテムの追加を心より楽しみにしております。

    Reply
  9. bitcoin_llEr

    Also ich spiele jetzt seit dem Fruhjahr und ganz ehrlich, am Anfang war ich echt skeptisch, ob so ein Laden mit Krypto uberhaupt was taugt. Uber nen Kumpel drauf gekommen, der schon langer Poker mit Bitcoin spielt, und was soll ich sagen – hangen geblieben bin ich am Ende doch. Grade fur deutsche Spieler ist das eh manchmal echt zah, was Ein- und Auszahlungen angeht, aber gut.

    Was die Auswahl angeht ist ordentlich was los – ich schatze mal irgendwas um die 2000 Titel, wenn man alles zusammenzahlt. Die ublichen Verdachtigen sind am Start: Pragmatic Play mit Gates of Olympus und Sweet Bonanza, Book of Dead, ruckelt nichts. Die Live-Ecke kommt von Evolution, echte Dealer und Shows wie Crazy Time, da versacke ich abends schon zu oft. Was mich eigentlich halt, das Kernstuck ist fur mich ganz klar das Poker – Poker in Bitcoin eben, dafur bin ich da.

    Beim Bonus: es gab bei mir einen 100%-Bonus bis 500€ plus 200 Freispiele, gestuckelt uber paar Tage. Der Umsatz ist 35-fach, ist fair genug ehrlich gesagt, schaut euch die AGB genau an. Es gibt sogar kostenlose Turniere fur lau, so kann man antesten ohne Risiko paar Runden. Die aktuellen Aktionen und Codes findet ihr am besten direkt bei [url=https://best-bitcoin-poker.de/bitcoin-poker-bonus]bitcoin free poker[/url] an, bevor ihr euch anmeldet, ist meist aktueller als der Support.

    Kommen wir zum Kritikpunkt – die Auszahlung. Uber Bitcoin lief es richtig schnell, top. Beim Versuch mit die Karte nutzen wollte, dauerte es langer und die Verifizierung hat genervt. Visa, Mastercard, Skrill, Neteller klappen, aber ganz ehrlich der ganze Sinn ist ja, dass man schnell und ohne Gedons ein- und auszahlt. Min-Deposit lag bei 20€, Konto anlegen schnell erledigt.

    Mobil lauft es uberraschend gut – ne eigene App gibts fur beide Systeme, sonst uber die Seite funktioniert es genauso. Der Support ist rund um die Uhr per Chat, die deutschsprachige Hilfe war ok, aber nicht perfekt, auf Englisch lief es rund. Zur Lizenz ist alles sauber dokumentiert, darauf achte ich. Fur alle hier aus Deutschland, die mal Poker mit Bitcoin reinschnuppern wollen – ich bleib erstmal dabei, schaun wir mal.

    Reply
  10. 888starz_njkl

    Od jakiegos czasu ogram 888starz chyba jakies kilka tygodni i w koncu postanowilem, ze napisze co i jak. Tak z reka na sercu — zapisalem sie glownie dla bonusu i nie zaluje. Jako gracz z Polski nie ma zbyt wielu sensownych opcji, wiec cos takiego zawsze sprawdzam dokladnie.

    Przede wszystkim siedze w slotach i wybor jest ogromny. Spokojnie ponad dwa tys. tytulow, poczawszy od Pragmatic Play po NetEnt, Play’n GO oraz Yggdrasil. Standardowe Sweet Bonanza i Book of Dead sa od reki, choc szczerze zwykle wracam do paru swoich ulubiencow. Grafika dziala gladko nawet na slabszym telefonie.

    Jesli wolisz live — obsluguje to Evolution, na realnych ludziach, a jeszcze rozne game show typu Crazy Time. Potrafi wciagnac na calego. Jesli chodzi o forse — robilem karte i Neteller, obsluguje tez Bitcoinem. Pierwsza wyplate dostalem w niecale pol dnia, na e-wallecie sa najszybsze. Warto zerknac na aktualne kody i promki u [url=https://888starz-casino4.pl/registration]888starz registration app[/url] przed rejestracja, bo to sie rusza.

    Pakiet powitalny wyglada solidnie — dorzucaja spory procent od wplaty plus jakies 150 free spinow. Obrot wynosi x40, co szczerze nie jest tragedia, ale jak zawsze czlowiek musi ogarnac zasady. Prog to grosze, rejestracja zajela mi doslownie pare minut. Apka mobilna tez jest i chodzi ok, instalka poza sklepem z ich stronki.

    Nie wszystko jest idealne — obsluga czasem odpisuje z opoznieniem, zwlaszcza wieczorami. KYC troche mnie wkurzyla, ale rozumiem, ze z powodu licencji inaczej sie nie da. Tak po calosci — jestem raczej zadowolony, zdania na forach sa rozne, wiec wyrob sobie wlasne, na malych stawkach.

    Reply
  11. memek

    Way cool! Some extremely valid points! I appreciate you penning this write-up plus the rest of the site is extremely good.

    Reply
  12. xnxx.com

    An interesting discussion is worth comment.
    I believe that you need to publish more about this subject
    matter, it may not be a taboo matter but usually folks don’t talk about such subjects.
    To the next! Kind regards!!

    Reply
  13. Eugenio Saleado

    Wow that was odd. I just wrote an really long comment but after I clicked submit my comment didn’t show up. Grrrr… well I’m not writing all that over again. Regardless, just wanted to say excellent blog!

    Reply
  14. 888starz_ickl

    Konto na 888starz mam chyba jakies pare tygodni i tak sobie pomyslalem, ze podziele sie. Nie ma co owijac w bawelne — zapisalem sie glownie dla bonusu i zostalem na dluzej. Jako gracz z Polski ciezko o porzadnych miejscowek, wiec cos takiego zawsze testuje na spokojnie.

    Przede wszystkim krece sloty i jest w czym wybierac. Jest chyba z dwa tysiace automatow, od Pragmatic Play przez NetEnt, Play’n GO czy Yggdrasil. Sztampowe Sweet Bonanza i Book of Dead sa na wyciagniecie reki, choc prawde mowiac najczesciej wracam do paru swoich ulubiencow. Plynnosc nie tnie na mobilce.

    Jesli wolisz live — jest sekcja od Evolution, na zywca, do tego rozne game show typu Crazy Time. Potrafi wciagnac na calego. Jesli chodzi o forse — korzystam z Visa i Skrill, da sie tez krypto. Pierwsza wyplate dostalem po jakichs 24h, e-portfele sa najszybsze. Warto zerknac na biezace bonusy na [url=https://888starz-casino4.pl/free-spins]888starz free spins[/url] jak cos, bo sie zmieniaja.

    Bonus na start jest calkiem niezle — dostajesz do 1500 euro i do tego paczke darmowych spinow. Obrot to 40x, i to szczerze nie jest tragedia, choc jak zawsze czlowiek musi ogarnac zasady. Minimalny depozyt jest niski, zalozenie konta trwala doslownie chwile. Apka mobilna tez jest bez wiekszych zgrzytow, apk z ich stronki.

    Nie wszystko jest idealne — obsluga czasem kaze czekac, szczegolnie pod obciazeniem. Weryfikacja konta delikatnie zirytowala, choc to chyba przy licencji to norma. Ogolnie — zostaje na razie, opinie na forach sa rozne, dlatego wyrob sobie wlasne, bez szalenstwa na start.

    Reply
  15. tato talk

    Hey there just wanted to give you a quick heads up
    and let you know a few of the images aren’t loading correctly.
    I’m not sure why but I think its a linking issue.
    I’ve tried it in two different web browsers and both
    show the same results.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *