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,392 thoughts on “Use a simple script to achieve powder pile | Maya nParticle简单脚本实现粒子堆叠

  1. Vivod iz zapoya v stacionare_frSl

    Здорова, народ Брат потерял человеческий облик Жена рыдает Скорая не приедет на такой вызов Короче, врачи стационара реально вытащили — вывод из запоя в стационаре с индивидуальным лечением Врачи и медсёстры 24/7 В общем, жмите чтобы сохранить — вывод из запоя в клинике в санкт петербурге [url=https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-gtb.ru]https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-gtb.ru[/url] Не ждите пока станет хуже Это может спасти жизнь

    Reply
  2. Vivod iz zapoya na domy_jpOi

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

    Reply
  3. Vivod iz zapoya v stacionare_ieSa

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

    Reply
  4. Vivod iz zapoya v stacionare_ifMr

    Друзья ситуация Отец не выходит из штопора Родственники не знают что делать Платная клиника — бешеные деньги Короче, единственные кто взялся за сложный случай — наркология вывод из запоя в стационаре под наблюдением Капельницы и препараты подбирали индивидуально В общем, жмите чтобы сохранить — прокапаться от алкоголя в стационаре [url=https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-axm.ru]https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-axm.ru[/url] Не надейтесь что само пройдёт Это может спасти чью-то семью

    Reply
  5. 구글상위노출

    I know this if off topic but I’m looking into starting my own blog and was curious what all is needed to get setup?
    I’m assuming having a blog like yours would cost a pretty penny?
    I’m not very web smart so I’m not 100% positive.

    Any recommendations or advice would be greatly appreciated.
    Kudos

    Reply
  6. vn22vip.com

    This is a very informative post about online casinos and betting platforms.
    I especially liked how it explains the importance of choosing a
    secure 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
  7. Kapelnica ot pohmelya_gxPt

    Здорова, народ Голова раскалывается Рассол уже не лезет Короче, врачи приехали и поставили систему — капельница от похмелья на дому срочно Вернулся к жизни В общем, жмите чтобы сохранить — откапаться с похмелья цена воронеж [url=https://kapelnicza-ot-pokhmelya-voronezh-ges.ru]https://kapelnicza-ot-pokhmelya-voronezh-ges.ru[/url] Звоните прямо сейчас Перешлите тем кто в такой же ситуации

    Reply
  8. income

    It is in reality a great and useful piece of info. I am glad that you simply shared
    this helpful info with us. Please stay us up to date like this.

    Thank you for sharing.

    Reply
  9. Kapelnica ot pohmelya_syMn

    Здорово, народ Жесть после вчерашнего Поилки и таблетки не помогают Короче, врачи приехали и поставили систему — капельница от похмелья цена доступная Через час состояние нормализовалось В общем, не потеряйте контакты — сколько стоит капельница на дому цена [url=https://kapelnicza-ot-pokhmelya-voronezh-mnb.ru]https://kapelnicza-ot-pokhmelya-voronezh-mnb.ru[/url] Капельница — это быстро и эффективно Перешлите тем кто в такой же ситуации

    Reply
  10. Vivod iz zapoya na domy_ibMr

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

    Reply
  11. Best Women Psychiatrists in Chennai

    Hey, I think your blog might be having browser compatibility issues.
    When I look at your blog site in Firefox, it looks fine but when opening in Internet
    Explorer, it has some overlapping. I just wanted to give you a quick heads up!
    Other then that, superb blog!

    Reply
  12. ziarulescu01

    Having read this I believed it was rather enlightening. I appreciate you taking the time and
    energy to put this short article together. I once
    again find myself spending way too much time both reading and commenting.
    But so what, it was still worthwhile!

    My site: ziarulescu01

    Reply
  13. Vivod iz zapoya na domy_jpEr

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

    Reply
  14. Vivod iz zapoya na domy_ptOi

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

    Reply
  15. Vivod iz zapoya v stacionare_osOa

    Приветствую Муж просто потерял себя Родственники не знают что делать Нужна профессиональная помощь Короче, единственное что вытащило из запоя — быстрый вывод из запоя в стационаре за 3 дня Положили в палату В общем, жмите чтобы сохранить — вывод из запоя в стационаре клиника [url=https://vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-jkp.ru]https://vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-jkp.ru[/url] Звоните прямо сейчас Перешлите тем кто в такой же ситуации

    Reply
  16. slot88 terbaik

    I’m not sure why but this website is loading
    very slow for me. Is anyone else having this issue
    or is it a problem on my end? I’ll check back
    later on and see if the problem still exists.

    Reply
  17. check my blog

    Aw, this was a very good post. Finding the time and actual
    effort to make a great article… but what can I say…
    I hesitate a whole lot and don’t manage to get
    anything done.

    Reply
  18. Vivod iz zapoya v stacionare_aeSa

    Здорово, народ Мой брат уже неделю в запое Дети в ужасе Никакие таблетки не помогают Короче, врачи стационара вытащили — стационарное выведение из запоя под наблюдением Врачи наблюдали 24/7 В общем, телефон и цены тут — стационарное выведение из запоя [url=https://vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-vby.ru]стационарное выведение из запоя[/url] Стационар — это реальный выход Перешлите тем кто в такой же ситуации

    Reply
  19. Vivod iz zapoya v stacionare_gzSl

    Всем привет из Питера Близкий человек уже 10 дней в запое Соседи уже вызвали участкового Скорая не приедет на такой вызов Короче, врачи стационара реально вытащили — вывод из запоя стационар с круглосуточным наблюдением Провели полную детоксикацию В общем, жмите чтобы сохранить — вывод из запоя в больнице [url=https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-gtb.ru]https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-gtb.ru[/url] Звоните прямо сейчас Перешлите тем кто в беде

    Reply
  20. Vivod iz zapoya v stacionare_mqel

    Здорова, Питер Близкий человек просто умирает на глазах Соседи уже звонят в полицию Платная наркология — бешеные счета Короче, врачи стационара реально помогли — лечение запоя в стационаре комплексно Выписали через 4 дня здоровым В общем, вся инфа по ссылке — вывод из запоя в клинике [url=https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-zqe.ru]вывод из запоя в клинике[/url] Звоните прямо сейчас Перешлите тем кто в такой же беде

    Reply
  21. web site

    I blog often and I genuinely thank you for your information. This article has really peaked
    my interest. I’m going to book mark your website and keep checking for new details about
    once a week. I subscribed to your Feed as well.

    Reply
  22. Karri

    This is the right website for anyone who hopes to find out about this topic.
    You realize a whole lot its almost tough to argue with
    you (not that I really will need to…HaHa). You certainly put a brand new spin on a topic that’s been written about for ages.

    Excellent stuff, just wonderful!

    Reply
  23. 카드현금화

    도움 되는 글이네요. 카드깡을 알아볼 때는 정산 조건를 먼저 확인하는 게
    중요하다고 생각합니다.

    읽어볼 만한 글입니다. 급하게 결정하기보다 정산 방식과 주의사항을 같이 보는 게 필요합니다.

    저도 비슷하게 생각합니다. 신용카드현금화 관련 정보는 높은 금액보다
    실제 조건이 더 중요합니다.

    잘 읽었습니다. 카드깡을 검색하는 사람들은 대부분 급한 상황이 많아서, 개인정보를 놓치기
    쉬운 것 같습니다.

    좋은 정보네요. 카드현금화 관련해서는 상담 전
    조건을 기록해두고 비교하는 게 좋다고 봅니다.

    공감되는 내용입니다. 빠른 정산 같은 표현은 편해
    보이지만, 실제로는 다음 카드대금 부담까지 봐야 합니다.

    내용 참고하겠습니다. 카드깡 관련 글은 수수료 구조를
    같이 설명해주는 쪽이 더 도움이 되는 것 같습니다.

    도움 됐습니다. 카드대금 부담 때문에
    알아보는 경우라도, 상환 가능성은
    꼭 따져봐야 합니다.

    좋은 포인트입니다. 신용카드현금화은 후기보다
    실제 조건이 중요하다고 봅니다.

    좋은 내용 감사합니다. 이런 주제는 급할수록 더 차분하게 정산조건을 확인해야 합니다.

    Reply
  24. Vivod iz zapoya v stacionare_haen

    Здорова, народ Ситуация аховая Родные не знают что делать Нужна профессиональная помощь Короче, только стационар реально спас — вывод из запоя в стационаре круглосуточно Положили в палату В общем, вся инфа по ссылке — прокапаться в стационаре [url=https://vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-elm.ru]https://vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-elm.ru[/url] Стационар — это реальный выход Перешлите тем кто в такой же ситуации

    Reply
  25. Kapelnica ot pohmelya_viPt

    Всем привет из Воронежа После вчерашнего вообще никак Организм просто отказывается работать Короче, врачи приехали и поставили систему — капельница от похмелья цена доступная Приехали через 30 минут В общем, не потеряйте контакты — сколько стоит прокапаться от алкоголя на дому [url=https://kapelnicza-ot-pokhmelya-voronezh-ges.ru]сколько стоит прокапаться от алкоголя на дому[/url] Звоните прямо сейчас Перешлите тем кто в такой же ситуации

    Reply
  26. bitcoin

    My spouse and I absolutely love your blog and find many of your post’s to be
    exactly I’m looking for. can you offer guest writers to write content
    for you personally? I wouldn’t mind creating a post or elaborating on many
    of the subjects you write with regards to here.
    Again, awesome web log!

    Reply
  27. Henrytab

    Все про діабет https://pro-diabet.in.ua симптоми, причини, діагностика, лікування та профілактика. Корисні статті про цукровий діабет 1 і 2 типу, контроль рівня глюкози, харчування, спосіб життя та сучасні методи терапії.

    Reply
  28. Bitcoin Casinos Australia

    This is really interesting, You’re a very skilled blogger.
    I have joined your rss feed and look forward to seeking more of your fantastic post.
    Also, I’ve shared your website in my social networks!

    Reply
  29. Instant Withdrawal Casinos

    Unquestionably believe that which you stated. Your favorite
    reason appeared to be at the web the simplest thing to consider of.

    I say to you, I definitely get annoyed whilst people think about concerns that they plainly do not recognize about.

    You managed to hit the nail upon the highest and outlined out
    the whole thing with no need side effect , other folks
    could take a signal. Will likely be back to get more.
    Thank you

    Reply
  30. panel smm murah indonesia

    Great blog! Is your theme custom made or did you
    download it from somewhere? A theme like yours with a few simple tweeks would really
    make my blog stand out. Please let me know where
    you got your theme. Kudos

    Reply
  31. big natural boobs

    I know this if off topic but I’m looking into starting my own weblog
    and was wondering what all is needed to get set up?

    I’m assuming having a blog like yours would cost a pretty penny?

    I’m not very web savvy so I’m not 100% positive.
    Any recommendations or advice would be greatly appreciated.

    Thanks

    Reply
  32. Vivod iz zapoya v stacionare_kmSl

    Здорова, народ Отец не встаёт с кровати Жена рыдает Платная клиника просит бешеные деньги Короче, врачи стационара реально вытащили — быстрый вывод из запоя в стационаре за 3-5 дней Провели полную детоксикацию В общем, жмите чтобы сохранить — вывод из запоя стационар [url=https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-gtb.ru]вывод из запоя стационар[/url] Стационар — это единственный выход Это может спасти жизнь

    Reply
  33. Vivod iz zapoya v stacionare_bfOa

    Приветствую Отец не выходит из штопора Дети напуганы Нужна профессиональная помощь Короче, только стационар реально спас — вывод из запоя в стационаре наркологии с палатой Выписали через 5 дней без ломки В общем, телефон и цены тут — лечение от запоя в стационаре [url=https://vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-jkp.ru]https://vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-jkp.ru[/url] Звоните прямо сейчас Перешлите тем кто в такой же ситуации

    Reply
  34. James

    I’m gone to convey my little brother, that he should also visit this weblog on regular basis to obtain updated from most recent reports.

    Reply
  35. Vivod iz zapoya na domy_amEr

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

    Reply
  36. Vivod iz zapoya v stacionare_hxel

    Всем привет из северной столицы Близкий человек просто умирает на глазах Соседи уже звонят в полицию В диспансер тащить — стыд и страх Короче, единственное что сработало — лечение запоя в стационаре комплексно Врачи и медсёстры круглосуточно В общем, не потеряйте контакты — вывод из запоя в стационаре [url=https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-zqe.ru]вывод из запоя в стационаре[/url] Звоните прямо сейчас Перешлите тем кто в такой же беде

    Reply
  37. 世界杯

    I’m not that much of a online reader to be honest but your blogs really nice, keep
    it up! I’ll go ahead and bookmark your site to come back later on. Many thanks

    Reply
  38. gebze escort

    Superb post however I was wondering if you could write a
    litte more on this subject? I’d be very grateful if you could elaborate a little bit more.

    Thank you!

    Reply
  39. تعمیر ظرفشویی بکو

    I was curious if you ever thought of changing the page layout of your blog?
    Its very well written; I love what youve got to say.
    But maybe you could a little more in the way of content so people could
    connect with it better. Youve got an awful lot of text for only
    having 1 or two images. Maybe you could space
    it out better?

    Reply
  40. 世界杯

    This is very interesting, You’re a very skilled blogger.
    I’ve joined your rss feed and look forward to seeking more of your
    excellent post. Also, I have shared your website in my social networks!

    Reply

Leave a Reply

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