Convert Instancer into geometry


Type: Python Script (py)
Name: sag_instancerToGeometry
Version: 1.4
Released: 2012.05.05
NEW REWORKED VERSION IS CALLED ark_instToGeo AND AVAILABLE HERE

v1.4 - corrected GUI for older maya versions v1.3: - doesn't set visibility to off prior to the starting frame of conversion - doesn't pay attention to 'start from current frame' if custom range is defined v1.2: - reworked GUI - uses long names correctly (no problems with objects of the same name anymore) - doesn't freeze source objects' rotations or error if channels have keyframes - keeps input connections for instances also - works with different rotation orders of source objects and instancer itself - each baked object is inside it's own group which actually gets all keyframes - works with any linear units of the scene (switches to cm and back, actually) v1.1: - duplicates now maintain original input connections - only translate, rotate, scale and visibility are keyframed now

Almost every time I use instancer to duplicate geometry via particles, I inevitably want to convert it’s result into standard keyframed objects to modify or simply delete specific ones.

At last I’ve put myself together and have written a tool for this task.

sag_instancerToGeometry Interface

Usage:

from sag_instancerToGeometry import *
sag_instancerToGeometry()

Options:

Make Duplicates/Instancesin the first case all created objects will be independent duplicates, in the second one – they will be instances of the original object (the one plugged into instancer);

Start from Current Frameif 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 Rangein the first case conversion framerange will be taken from playback range, in the second one – you can enter custom start/end frames;

Convert[…this description was so long and intricate, that it was removed by the editor…]

Helplink to this page.

Notes:

Of course, there’re some limitations and arrears… Right now I can list these:

float $vel[] = velocity;
float $ang[] = `angleBetween -euler -v1 1 0 0 -v2 $vel[0] $vel[1] $vel[2]`;
rotPP = <<$ang[0], $ang[1], $ang[2]>>;

So, try it, use it and send me bugReports/toDo’s – I’ll try to correct/implement them.

Several Instancers Converted into Geometry Simultaneously

Several Instancers Converted into Geometry Simultaneously

Posted on November 14, 2009 at 20:37 by Ark · Permalink
In: FX · Tagged with: , , , , , , ,

57 Responses

Subscribe to comments via RSS

  1. Written by john patterson
    on 5 May 2016 at 22:46
    Permalink

    Thanks! Worked like a charm for my very simple nParticle sim. I can not believe Maya does not have this capability on it’s own. It’s maddening, and makes me so happy that I’ve been working more in Houdini these days.

    Thanks again for this script that got me out of a bind!

  2. Written by Peter
    on 7 December 2016 at 18:17
    Permalink

    Hi there,

    It would be a great script only if I could make it work. Ihave copied the python script into several folders now, but none of them seems to be picked up by the script. I get an error message stating:
    # Error: line 1: ImportError: file line 1: No module named sag_instancerToGeometry #
    What do I do now?

  3. Written by Ark
    on 8 December 2016 at 11:33
    Permalink

    Hi, Peter. Check your PYTHONPATH environment variable (“getenv PYTHONPATH;” mel command in maya) – maya checks these folders for scripts. Otherwise just copy/paste the whole script to your scriptEditor, execute it and “sag_instancerToGeometry()”.

  4. Written by Peter
    on 9 December 2016 at 11:01
    Permalink

    Hi Ark,

    Thank you very much for the help. It works great. Pipeline have modified paths getting checked quite drastically. I am going to implement this to ours now. Thanks again.

    Peter

  5. Written by Ark
    on 9 December 2016 at 18:21
    Permalink

    You’re welcome. This old version doesn’t work with namespaces though, Maya just freezes… It’s fixed, but I forget to update the tool for a very long time already – I’ll try to do that asap.

  6. Written by Keith
    on 22 June 2017 at 16:19
    Permalink

    Hi Ark

    Does this script recognize lifespan. Other scripts I’ve tried don’t seem to do it.

    Keith

  7. Written by Ark
    on 22 June 2017 at 16:59
    Permalink

    Hi Keith. If a particle disappears for any reason (including lifespan), the converted object becomes invisible with a key to it’s visibility.

Subscribe to comments via RSS

Leave a Reply