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跑半个小时。显然不完美,蒙人没问题。

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

  1. URL

    Hola a todos, me gustaría recomendar una página que
    descubrí recientemente y que me llamó mucho la atención.
    Se trata de un artículo muy completo sobre la
    historia del fútbol argentino, desde las raíces
    del deporte hasta las grandes conquistas internacionales.

    Desde mi experiencia, siempre tuve curiosidad
    por entender cómo se desarrolló y creció la cultura futbolística en Argentina.
    El contenido presenta con mucho detalle la llegada del fútbol al país, el papel de las comunidades inmigrantes, así como el crecimiento de los clubes que marcaron generaciones.

    Lo que realmente destaca es que no se limita a mencionar fechas, sino
    que también explica el contexto social. Aprendí bastante sobre instituciones históricas, rivalidades clásicas y la forma en que el fútbol pasó de
    ser un deporte importado a convertirse en un símbolo cultural argentino.

    Además, el texto dedica espacio a íconos
    del fútbol mundial como Diego Maradona y Lionel Messi.
    La forma en que se describe su impacto ayuda a comprender por
    qué ocupan un lugar tan importante en la historia del deporte.

    Algo que vale la pena destacar es la sección dedicada a los clubes argentinos y a los
    torneos internacionales. La información está bien organizada y permite entender mejor la
    influencia del fútbol argentino a nivel mundial.

    Si eres fanático del fútbol, te sugiero dedicar unos minutos a este artículo.
    Aunque no seas un experto en el tema, encontrarás información valiosa
    y una lectura entretenida.

    En resumen, es una lectura que recomiendo sinceramente.
    Disfruté mucho recorriendo cada sección del artículo y seguramente volveré a consultarla en el futuro.

    Muy recomendable.

    Reply
  2. DELTA575 SCAM

    We absolutely love your blog and find almost all of your post’s to
    be what precisely I’m looking for. can you offer guest writers to write content
    in your case? I wouldn’t mind composing a post or elaborating on a number of the subjects you write regarding here.
    Again, awesome website!

    Reply
  3. video bokep artis indonesia

    I’m not sure where you’re getting your information, but good topic.
    I needs to spend some time learning more or understanding more.
    Thanks for great information I was looking for this info for my mission.

    Reply
  4. Vivod iz zapoya na domy_hpkt

    Ребята привет. Жесть просто полная. Муж просто исчезает в бутылке. Жена рыдает. Платные клиники ломят космос. Короче, единственное что реально работает — профессиональный вывод из запоя на дому. Приехали быстро. В общем, там и контакты и прайс — нарколог на дом вывод из запоя на дому [url=https://vyvod-iz-zapoya-na-domu-voronezh-fds.ru]нарколог на дом вывод из запоя на дому[/url] Каждый час на счету. Скиньте кому надо.

    Reply
  5. MALWARE

    You are so cool! I do not suppose I’ve truly read
    through a single thing like that before. So great
    to find somebody with some original thoughts on this issue.

    Really.. thanks for starting this up. This website is one thing
    that is required on the web, someone with a bit of originality!

    Reply
  6. Vivod iz zapoya na domy_amMa

    Ребята выручайте. Столкнулся с такой бедой. Отец не выходит из запоя. Жена вся в слезах. Скорая не едет на такие вызовы. Короче, только это и вытащило — доступный вывод из запоя цены адекватные. Откачали за час. В общем, там контакты и прайс и условия — срочный вывод из запоя на дому [url=https://vyvod-iz-zapoya-na-domu-voronezh-eio.ru]https://vyvod-iz-zapoya-na-domu-voronezh-eio.ru[/url] Каждый час на счету. Перешлите тому кому надо.

    Reply
  7. xoilac tv

    Hello there! This post could not be written any better!
    Reading through this post reminds me of my old room
    mate! He always kept talking about this. I will forward this
    page to him. Pretty sure he will have a good read. Thanks for sharing!

    Reply
  8. Vivod iz zapoya na domy_dzSt

    Ребята выручите. Попал в такую передрягу. Муж просто исчез в бутылке. Дети не спят по ночам. Скорая не приезжает на такие вызовы. Короче, нормальные врачи нашлись — профессиональное выведение из запоя капельницей. Поставили систему. В общем, смотрите сами по ссылке — вывод из запоя круглосуточно [url=https://vyvod-iz-zapoya-na-domu-voronezh-ayu.ru]вывод из запоя круглосуточно[/url] Каждая минута дорога. Скиньте другу в беде.

    Reply
  9. пинап

    I absolutely love your blog and find many of your post’s to be just what I’m looking for.
    Do you offer guest writers to write content for you personally?
    I wouldn’t mind creating a post or elaborating on a number of the subjects you write
    regarding here. Again, awesome web log!

    Reply
  10. mcm998

    My developer is trying to persuade me to move
    to .net from PHP. I have always disliked the idea because of the costs.
    But he’s tryiong none the less. I’ve been using Movable-type on various websites for about a year and am worried about switching to another platform.

    I have heard fantastic things about blogengine.net. Is there a way I can import all
    my wordpress content into it? Any kind of help would be really appreciated!

    Reply
  11. Vivod iz zapoya na domy_htkr

    Самарцы привет. Жесть случилась полная. Близкий не выходит из запоя. Жена в слезах. Платные клиники просят бешеные деньги. Короче, только это и спасло — вывести из запоя на дому качественно. Приехали через час. В общем, жмите чтобы не потерять — выведение из запоя на дому анонимно [url=https://vyvod-iz-zapoya-na-domu-samara-abc.ru]https://vyvod-iz-zapoya-na-domu-samara-abc.ru[/url] Не надейтесь на авось. Скиньте другу в беде.

    Reply
  12. Vivod iz zapoya na domy_fgOt

    Друзья ситуация. Попал я в переплёт. Близкий не выходит из запоя. Дети не спят ночами. Скорая не едет. Короче, только это и спасло — профессиональное выведение из запоя капельницей. Отошёл за полчаса. В общем, вся инфа вот здесь — снятие запоя цена [url=https://vyvod-iz-zapoya-na-domu-voronezh-plk.ru]https://vyvod-iz-zapoya-na-domu-voronezh-plk.ru[/url] Каждая минута дорога. Скиньте другу в беде.

    Reply
  13. Vivod iz zapoya na domy_gnkt

    Ребята привет. Столкнулся с такой бедой. Брат пьёт без остановки. Соседи стучат в дверь. Платные клиники ломят космос. Короче, единственное что реально работает — срочный вывод из запоя круглосуточно. Поставили капельницу. В общем, там и контакты и прайс — вывод из запоя круглосуточно [url=https://vyvod-iz-zapoya-na-domu-voronezh-fds.ru]вывод из запоя круглосуточно[/url] Не тяните. Скиньте кому надо.

    Reply
  14. Vivod iz zapoya na domy_dkSr

    Слушайте что расскажу. Попал я в переплёт конкретный. Человек уже четвёртые сутки в штопоре. Соседи стучат в дверь. Скорая не едет. Короче, единственное что реально помогло — срочный вывод из запоя круглосуточно. Поставили систему. В общем, вся инфа вот здесь — вывод из запоя на дому круглосуточно [url=https://vyvod-iz-zapoya-na-domu-samara-ghi.ru]вывод из запоя на дому круглосуточно[/url] Каждая минута дорога. Скиньте другу в беде.

    Reply
  15. Vivod iz zapoya na domy_bvOr

    Слушайте что расскажу. Попал я в переплёт конкретный. Брат пьёт без остановки. Дети не спят ночами. Скорая не едет. Короче, единственное что реально помогло — вывод из запоя дешево и сердито. Отошёл за полчаса. В общем, смотрите сами по ссылке — вывод из запоя стоимость [url=https://vyvod-iz-zapoya-na-domu-samara-def.ru]https://vyvod-iz-zapoya-na-domu-samara-def.ru[/url] Не тяните. Перешлите тому кому надо.

    Reply
  16. Vivod iz zapoya na domy_clMa

    Народ привет. Столкнулся с такой бедой. Человек уже пятый день в штопоре. Дети не спят ночами. В диспансер везти — на всю жизнь учёт. Короче, единственное что реально помогло — профессиональный вывод из запоя на дому. Откачали за час. В общем, смотрите сами по ссылке — нарколог на дом вывод из запоя на дому [url=https://vyvod-iz-zapoya-na-domu-voronezh-eio.ru]нарколог на дом вывод из запоя на дому[/url] Не тяните. Скиньте другу в беде.

    Reply
  17. link 78win

    Excellent weblog here! Additionally your web site lots up fast!

    What web host are you using? Can I am getting
    your affiliate hyperlink on your host? I want my web site loaded up as quickly
    as yours lol

    Reply
  18. Vivod iz zapoya na domy_sySt

    Слушайте сюда. Жесть полная случилась. Отец не вылезает из запоя. Соседи уже стучат. В диспансер везти — на всю жизнь учёт. Короче, единственное что реально помогло — лучшая наркологическая клиника с выездом. Отошёл за полчаса. В общем, вся инфа вот здесь — вывод из запоя цены [url=https://vyvod-iz-zapoya-na-domu-voronezh-ayu.ru]вывод из запоя цены[/url] Не надейтесь на авось. Скиньте другу в беде.

    Reply
  19. Paitosgp

    Good day! I simply want to offer you a big thumbs up for the excellent information you’ve got here
    on this post. I am coming back to your website for more soon.

    Reply
  20. web page

    Hey! Do you know if they make any plugins to protect against hackers?

    I’m kinda paranoid about losing everything I’ve worked hard on. Any recommendations?

    Reply
  21. webpage

    Resulta importantísimo dividir ese fondo en sesiones más reducidas.

    Si tenés $10,000 ARS para la semana, no los uses todos en una sola noche.

    Estirá en sesiones de $1,500-$2,000 para prolongar la experiencia.

    Reply
  22. Vivod iz zapoya na domy_dkkr

    Слушайте что расскажу. Жесть случилась полная. Муж просто пропадает. Дети не спят ночами. Платные клиники просят бешеные деньги. Короче, только это и спасло — анонимный вывод из запоя без последствий. Приехали через час. В общем, смотрите сами по ссылке — запой выезд на дом [url=https://vyvod-iz-zapoya-na-domu-samara-abc.ru]https://vyvod-iz-zapoya-na-domu-samara-abc.ru[/url] Каждая минута дорога. Скиньте другу в беде.

    Reply
  23. купить мефедрон

    Ядовитый дурман ломают организм и
    психику. Катализаторы (снежок, мефедрон, эфедрин) сжигают средства тела, возбуждая инфаркты, предсмертную гипертермию,
    тление сосудов и паранойю.
    Каннабиноиды (гашиш, спайсы) ведут ко слабоумию, отказу почек и еще
    психозам. Опиоиды (героин, метадон)
    парализуют дыхание, поднимают тление материалов и
    беспощадную ломку. Финал использования ПАВ — отказ организаций,
    слабоумие а также смерть.

    Reply
  24. 대전홈케어

    제가 출장이 많아서 대전홈케어
    자주 이용하는데,
    이 글에서 새로운 팁을 확인했어요.
    대전출장샵 곳마다 스타일이 차이가 이렇게 큰
    줄 처음 알았어요.
    다음에 대전출장마사지를 이용할 때 이 글을 참고할게요.

    덕분에 좋은 선택 했어요!
    꼭 한 번 이용해 보세요!

    Reply
  25. Vivod iz zapoya na domy_ulkt

    Народ выручайте. Столкнулся с такой бедой. Отец не выходит из штопора. Дети не спят ночами. Скорая не едет на такие вызовы. Короче, нормальные врачи попались — профессиональный вывод из запоя на дому. Поставили капельницу. В общем, вся информация вот здесь — откапаться на дому [url=https://vyvod-iz-zapoya-na-domu-voronezh-fds.ru]https://vyvod-iz-zapoya-na-domu-voronezh-fds.ru[/url] Не тяните. Скиньте кому надо.

    Reply
  26. Vivod iz zapoya na domy_qsOt

    Слушайте что расскажу. Жесть случилась полная. Брат пьёт без остановки. Соседи стучат в дверь. Скорая не едет. Короче, нормальные врачи нашлись — профессиональное выведение из запоя капельницей. Приехали через час. В общем, смотрите сами по ссылке — снять запой на дому [url=https://vyvod-iz-zapoya-na-domu-voronezh-plk.ru]https://vyvod-iz-zapoya-na-domu-voronezh-plk.ru[/url] Не тяните. Скиньте другу в беде.

    Reply
  27. play888new.com

    This is a very informative post about online casinos
    and betting platforms. I especially liked how it explains the importance of choosing a licensed site before signing up.

    Many players often ask where they can find reliable gaming platforms
    with fair odds and smooth payouts. From what I’ve seen, checking
    platforms like vn22vip helps users compare features, bonuses,
    and overall experience.

    Thanks for sharing these insights — they’re
    helpful for both beginners and experienced bettors.

    Reply
  28. kingpaypayments.com

    Greate post. Keep posting such kind of info on your page.

    Im really impressed by it.
    Hey there, You’ve performed an excellent job. I’ll definitely
    digg it and individually suggest to my friends.
    I am sure they’ll be benefited from this web site.

    Reply
  29. Vivod iz zapoya na domy_izMa

    Слушайте что расскажу. Попал в жесть полную. Отец не выходит из запоя. Дети не спят ночами. Скорая не едет на такие вызовы. Короче, нормальные врачи нашлись — лучшая наркологическая клиника с выездом. Примчались быстро. В общем, смотрите сами по ссылке — снять запой на дому [url=https://vyvod-iz-zapoya-na-domu-voronezh-eio.ru]https://vyvod-iz-zapoya-na-domu-voronezh-eio.ru[/url] Каждый час на счету. Скиньте другу в беде.

    Reply
  30. Vivod iz zapoya na domy_zeSr

    Слушайте что расскажу. Столкнулся с такой бедой. Человек уже четвёртые сутки в штопоре. Жена в слезах. Скорая не едет. Короче, только это и спасло — профессиональное выведение из запоя капельницей. Поставили систему. В общем, там контакты и прайс — вывести из запоя капельница на дому цена [url=https://vyvod-iz-zapoya-na-domu-samara-ghi.ru]https://vyvod-iz-zapoya-na-domu-samara-ghi.ru[/url] Каждая минута дорога. Перешлите тому кому надо.

    Reply
  31. Vivod iz zapoya na domy_ejSt

    Друзья ситуация жуткая. Жесть полная случилась. Брат пьёт без остановки. Дети не спят по ночам. Скорая не приезжает на такие вызовы. Короче, только это и спасло — лучшая наркологическая клиника с выездом. Приехали через час. В общем, жмите чтобы не потерять — вывод из запоя цены [url=https://vyvod-iz-zapoya-na-domu-voronezh-ayu.ru]вывод из запоя цены[/url] Не тяните. Скиньте другу в беде.

    Reply
  32. купить кокаин

    Ядовитый дурман рушат эндосимбионт и психику.

    Стимуляторы (снежок, мефедрон,
    эфедрин) сжигают запас тела, вызывая инфаркты, предсмертную гипертермию,
    тление кровеносный сосуд также паранойю.

    Каннабиноиды (ямба, спайсы) ведут ко слабоумию, отказу почек а
    также психозам. Опиоиды (героин, физептон) обездвиживают чухалка, давать начало тление тканей и беспощадную ломку.
    Финал приложения ПАВЛИНЧИК — уступка органов, фатуизм а также смерть.

    Reply

Leave a Reply

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