Конверсия Instancer’а в геометрию #2|Convert Instancer to Geometry #2

Type: Maya Python Script (py)
Name: ark_instToGeo
Version: 2.0
Released: 2016.12.17
Download (Save as...)

Доработал свою старую утилиту для конвертации instancer‘а в геометрию – теперь значительно быстрее, стабильнее, понимает все возможные типы вращения инстансов (rotation и aim) и показывает прогресс и пишет финальную статистику в script editor.

Updated my old utility that converts instancer into geometry – it’s much faster and stable now, works with all rotation types (rotation and aim), has progress bars and prints final statistics into script editor.

ark_instToGeo GUI



  1. файл ark_instToGeo.py надо положить в любую папку, откуда Maya читает скрипты (список можно получить MEL-командой “getenv PYTHONPATH;”);put ark_instToGeo.py into any Maya scripts folder (get the list with “getenv PYTHONPATH;” MEL-command);
  2. запустить python-команду:execute python-command:
  3. from ark_instToGeo import *; ark_instToGeo()
  4. выделить instancer‘ы, которые нужно сконвертировать и нажать Convert – будет произведена конвертация, удалены static channels и применен euler filter.select instancer(s) and press Convert button to make conversion (static channels will be deleted and euler filter applied to the result).



Тип конверсииConversion Type:

Start from Current Frameесли включено, вне зависимости от таймлайна или выставленного вручную диапазона фреймов, начнет конвертацию с текущего фрейма;if enabled, no matter what playback range is set to and whether custom range is enabled or not, conversion will start from the current frame;

Playback/Custom Rangeв первом случае диапазон фреймов будет взят из таймлайна, во втором – можно ввести значения начального и конечного фрейма;in the first case conversion framerange will be taken from playback range, in the second one – you can enter custom start/end frames;

Convertзапуск конвертации;runs the conversion;

Helpлинк на эту страницу.link to this page.

Posted on December 18, 2016 at 17:22 by · Permalink
In: FX · Tagged with: , , , , , , , ,

42 Responses

Subscribe to comments via RSS

  1. Written by grobbio
    on 2017.01.09 at 02:08

    Hi! Thank you very much for your utility. But it does seem to work only with the first (the 0) item on the instancer’ list. Is this limitation normal, by design, it’s a bug, it’s me?

    Here’s the example file that does this (maya 2016 sp2):

  2. Written by Ark
    on 2017.01.09 at 14:41

    Hi. You’re using ‘cycle’ option to randomize objects – I’ve never used it this way and haven’t accounted for that, so, yep, that’s a limitation and I will add it in the next version. But you can always use the ‘usual’ method – set ‘cycle’ to ‘none’ in instancer, create per-particle attribute with random number and plug it into ‘Object Index’. Check this scene: http://www.sigillarium.com/blog/wp-content/uploads/FILES/instToGeo_example01.zip

  3. Written by grobbio
    on 2017.01.09 at 14:51

    Thank you very much for your great, fast answer and suggestion!

  4. Written by James Bond
    on 2017.01.10 at 17:44

    Awesome! Thanks 🙂

    Might help if it was possible to stop the conversion with ESC

  5. Written by Ark
    on 2017.01.13 at 01:56

    Yep, I’m looking into that 🙂

  6. Written by Daniel
    on 2017.05.09 at 06:04

    Hello Ark! just a quick question, does this works with maya 2017? Im trying to use it and my viewport freeze when I click on convert

  7. Written by Ark
    on 2017.05.12 at 13:17

    Hi Daniel. It works in 2017. In this version I’ve disabled viewport update, since it’s much-much faster this way – you should see progress bars moving though, that means everything is working. If not – send me your scene and I’ll check what is going on.

  8. Written by JC
    on 2017.05.15 at 01:47

    Hi Ark, I created a lot of meshes using the duplicate option and it works great but all the objects are hidden within its own group, is this working correctly?…I mean, do I have to unhide them all manuallly?
    Whats the purpose of the groups and the meshes to be hidden by default?
    I´m using Maya 2017 Update 3.
    Thank You very much 🙂

  9. Written by JC
    on 2017.05.15 at 01:51

    Don´t worry, I ungrouped everything, my fault…thank you so much for your good work 🙂

  10. Written by Aydar
    on 2017.06.05 at 14:11

    Arkady, thank you, works better than on the Sawa.

  11. Written by VP
    on 2017.06.08 at 14:49

    This script is amazing! Thank you!

  12. Written by hengki setiawan
    on 2017.06.13 at 05:26

    thanks for this script, the script its so cool 😀

  13. Written by NNN
    on 2017.07.14 at 08:12

    I can’tt convert instancer to geometry by using the rotate expression.
    it said the problem is from line 397. (list index out of range)
    Other thing else is fine.
    Please help!

  14. Written by Ark
    on 2017.07.14 at 13:50

    Rotation expressions should work. Please, drop me a simplified scene with this problem and I’ll take a look.

  15. Written by Elaine
    on 2017.07.14 at 18:28

    Getting an error on convert, is there something I am missing or need to try?

    C:/Users/name/Documents/maya/2016/scripts\ark_instToGeo.py line 198: No object matches name: Dressing01ModelGeoPublish_v004:forest_2:rotation.instanceAttributeMapping #

  16. Written by Ark
    on 2017.07.14 at 19:09

    Please, check if the sample scene works for you:

    And email me your scene with the problem.

  17. Written by Elaine
    on 2017.07.14 at 20:25

    Ark, example scene works great!

    Emailing scene in the next 10 mins.

  18. Written by Elaine
    on 2017.07.14 at 20:39

    Email sent, subject line

    “No object matches name: Dressing01ModelGeoPublish_v004:forest_2:rotation.instanceAttributeMapping #”

  19. Written by Chris Leathers
    on 2017.07.27 at 03:49

    this is awesome, just what I needed great script.

  20. Written by Srinivas Tentu
    on 2017.08.08 at 05:08

    Hi Ark, Congrats for developing a wonderful script.

    I created a lot of meshes using the instance option and it works great but all the objects are hidden within its own group. Do I have to unhide them all manuallly? Whats the purpose of the groups and the meshes to be hidden by default?

    How to unhide all the meshes without manually unhiding one by one? Is there any possibility to do that. It’s urgent requirement for me.

    Ungrouping all the meshes looses animation keys as keys are applied to group nodes. How to solve this?

    Any help would be highly appreciated.
    Thanks a lot for a great script.

  21. Written by Srinivas Tentu
    on 2017.08.08 at 05:47

    Got the solution unhiding all the meshes in groups.
    Used Select > Hierarchy option to select all the meshes inside the group nodes and visibility turned on for all the meshes in a single click.

    Wonderful script & working great.
    Thanks a lot again.

  22. Written by Ark
    on 2017.08.08 at 10:23

    Hi Srinivas. Yes, the script just takes whatever settings you have on your original objects, including animations and so on. So, to make duplicates/instances visible, you need to have original objects visible.

  23. Written by Andy Howell
    on 2017.08.18 at 14:17

    Just used your script, worked a treat.
    Thank you very much

    Brilliant Stuff !!!

  24. Written by tamanegi
    on 2017.09.16 at 07:28

    Started a conversion on a scene with about 500,000 particles instanced by a small 4 poly pyramid, set the range to be one frame – its been running for the past 2 hours – pretty fast system. Think that’s normal to take so long? I can’t see the status bar as I opened a window over Maya and if I try to bring Maya back to the front it never refreshes the window to see if its processing.

  25. Written by Ark
    on 2017.09.16 at 09:01

    The problem is in the task you’re trying to accomplish – 500,000 separate objects in maya scene is a heavy thing, 4-poly or even empty groups. Instances are even slower. I haven’t done more than 100,000 (duplicates), it took about 10min to convert. Working with such a scene was very problematic though. So, try smaller particle count and duplicates mode, if it’s fast enough for you, switch to instances (if you need them, of course), then increase particle count.

  26. Written by TTT
    on 2017.11.17 at 14:34

    It would be great if the script duplicate the objects with their input graph.

  27. Written by Ark
    on 2017.11.19 at 21:26

    If you want to change the history of the original object and have those changes affect the duplicates – use ‘hybrid’ mode. If you want each duplicate to have it’s own copy of the history – that seems like a very special case to me, I’ll send you a modified script to email that works like this.

  28. Written by Mikhail
    on 2017.12.08 at 16:05

    It is working perfectly! Thank a lot!

  29. Written by Deepak
    on 2018.04.11 at 12:59

    i have a bee animation instanced onto particle and used object index expression to cycle through objects, so it looks like animated,
    But when i try and bake it, maya freezes, Any solution.

  30. Written by Ark
    on 2018.04.11 at 16:12

    Instead of cycling different meshes with index, plug the animated/rigged geometry into instancer (if you absolutely need to use separate meshes – use them as blendshape targets for a single final geometry – and plug this single final geometry into the instancer). This way my tool will work nicely and you will have a proper motion blur as well.

  31. Written by Frank Robbins
    on 2018.04.30 at 07:40

    You are a life saver. Thanks!

  32. Written by Brent
    on 2018.10.17 at 09:09

    god bless you sir

  33. Written by nader
    on 2019.01.13 at 20:10

    thanks a lot

  34. Written by Andrew Pace
    on 2019.03.22 at 21:15

    This doesn’t seem to work with nParticles. Is there a line of code that can be changed or is it a whole re-work? Thanks!

  35. Written by Thomas Lisle
    on 2019.03.23 at 18:15

    hi. many thanks for making this available. does it work on a Mac Maya 2019 as I run the script and nothing happens bo ho. really need to convert my instances to mesh !!!

  36. Written by Ark
    on 2019.03.23 at 20:29

    It should work fine with nParticles, but it has a ton of additional options that can be not supported – check what you use for instancer channels mapping (position, scale, rotation, etc.), you’re probably using it’s built-in ramp or something like that – disable it or recreate with custom per-particle attribute instead.

  37. Written by Ark
    on 2019.03.23 at 20:32

    I don’t have mac and can’t check it. Works fine in 2019 Win though – have you tried the example scene?

  38. Written by jack liu
    on 2019.09.26 at 09:22

    Thanks, man, this works and helped a lot.

  39. Written by patrice
    on 2019.10.24 at 13:59

    Hello again ArkGenius!

    So I looked through your documentation and found the geo shapes to be instanced had to live at the origin. I moved the geo and your script worked perfectly!

    Thanks again for your great work!

  40. Written by Sheshadri Gangavatikar
    on 2020.03.27 at 03:21

    # Error: IndexError: file line 407: list index out of range

  41. Written by raymundo oliveira
    on 2020.04.14 at 16:08

    What a great script! This should be implemented in Maya. I was looking for this kind of solution for days.

    Keep it up.

    Congrets for the great work.

  42. Written by Ark
    on 2020.04.14 at 16:28

    It’s hard to tell without looking at your scene… Something unexpected in the way you use your particles/objects. Try example scene, try default particle system to see what exactly is different in yours.

Subscribe to comments via RSS

Leave a Reply