1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

отдельный партикул

Тема в разделе "Maya", создана пользователем -, 9 авг 2002.

Модераторы: Dark™, Skif
  1. Guest

    Братцы! Как взять атрибуты отдельного партикула. Подскажите MEL-команду,
    например для координаты.
     
  2. Guest

    <что-то там>:\<что-то там>\AliasWavefront\Maya4.5\docs\en_US\html\UserGuide\Mel\Mel.htm
     
  3. Guest

    НАПОМНЮ! ВСЕ ЭТО ЕСТЬ В ДОКЕ!!!!! ДАВАЙТЕ НЕ БУДЕМ ЛЕНИТЬСЯ!!! >:-


    КОВЫРЯЙ!!!

    Testing Added Particle Attributes
    By Ramsey Harris
    Alias|Wavefront Santa Barbara Development Center



    This script, dynTestAddAttr.mel, tests dynamics. It keyframes an added attribute called tailSize and adds it to a particle shape. The particles are emitted by a simple point emitter.

    dynTestAddAttr.mel
    // dynTestAddAttr.mel
    //
    // Alias|Wavefront Script File
    // MODIFY THIS AT YOUR OWN RISK
    //
    //
    // Creation Date: 31 May 1996; Modified 08 January 2000
    // Author: rh
    //
    // Procedure Name:
    // dynTestAddAttr
    //
    // Description:
    // Test adding user attributes to a particle shape.
    // Create a particle object, set its render type to
    // streak, and add a dynamic attribute "tailSize".
    // The streak render plug-in will use the attribute
    // "tailSize" if it is available.
    //
    // Input Arguments:
    // None.
    //
    // Return Value:
    // Number of errors that occurred in the test.
    //
    //



    //
    // ========== dynTestAddAttr ==========
    //
    // SYNOPSIS
    // Test adding user attributes to a particle shape.
    // Create a particle object, set its render type to
    // streak, and add a dynamic attribute "tailSize".
    // The streak render plug-in will use the attribute
    // "tailSize" if it is available.
    //
    global proc int dynTestAddAttr()
    {
    // First delete anything that might be left over
    // from a previous test.
    //
    file -force -new;
    currentTime -e 1;

    // Create emitter and particle object.
    //
    emitter -type omni -r 90 -mnd 0 -mxd 0.5 -spd 5 -pos 2 0 2
    -n myEmitter;
    particle -n myParticle;
    connectDynamic -em myEmitter myParticle;

    // Set the render mode to streak and add a dynamic
    // attribute for the tail size.
    //
    setAttr myParticleShape.particleRenderType 6; // Streak
    addAttr -ln tailSize -dv 4 myParticleShape;

    // Set some keyframes on the dynamic attribute.
    //
    setKeyframe -t 0 -v 0 -at tailSize myParticleShape;
    setKeyframe -t 10 -v 1 -at tailSize myParticleShape;
    setKeyframe -t 20 -v 2 -at tailSize myParticleShape;
    setKeyframe -t 30 -v 5 -at tailSize myParticleShape;
    setKeyframe -t 50 -v 10 -at tailSize myParticleShape;
    setKeyframe -t 70 -v 5 -at tailSize myParticleShape;
    setKeyframe -t 90 -v 1 -at tailSize myParticleShape;
    setKeyframe -t 100 -v 0 -at tailSize myParticleShape;

    // Check for correct tail size at start of test.
    //
    //
    currentTime -e 0;
    int $errors = 0;
    float $tailSize = `getAttr myParticle.tailSize`;
    if ( $tailSize != 0 ) // Warning Magic#
    {
    print( "dynTestAddAttr: Failure: Start of test: The tail "
    + "size ("+ $tailSize + ") should be 0.\n" );
    $errors += 1;
    }

    // Set up the playback options.
    //
    float $frames = 50;
    playbackOptions -min 1 -max $frames -loop once;

    // Time how long it takes to play the scene and then determine the
    // playback frame rate. Make sure when getting the frame rate
    // that no values are divided by zero.
    //
    float $startTime = `timerX`;
    play -wait;
    float $elapsed = `timerX -st $startTime`;
    float $fps = ($elapsed == 0.0 ? 0.0 : $frames/$elapsed);

    // Check for correct tail size at middle of test.
    //
    $tailSize = `getAttr myParticle.tailSize`;
    if ( ($tailSize < 9.9) || ($tailSize > 10.1) ) // Warning Magic#
    {
    print( "dynTestAddAttr: Failure: Frame 50: The tail size ("
    + $tailSize + ") should be about 10.\n" );
    $errors += 1;
    }

    // Print the frames per second (fps) in the form X.X of subtest.
    //
    print( "dynTestAddAttr: Subtest 1. (" + (int)($fps * 10)/10.0 +
    " fps)\n");

    // Set up the playback options.
    //
    $frames = 100;
    playbackOptions -min 1 -max $frames -loop once;
    currentTime -e 1;

    // Time how long it takes to play the scene and then determine the
    // playback frame rate. Make sure when getting the frame rate
    // that no values are divided by zero.
    //
    $startTime = `timerX`;
    play -wait;
    $elapsed = `timerX -st $startTime`;
    $fps = ($elapsed == 0.0 ? 0.0 : $frames/$elapsed);

    // Check for correct tail size at end of test.
    //
    $tailSize = `getAttr myParticle.tailSize`;
    if ( $tailSize > 0.1 )
    {
    print( "dynTestAddAttr: Failure: End of test: The "
    + "tail size (" + $tailSize + ") should be close to 0.\n");
    $errors += 1;
    }

    // If there are no errors, the addAttr passed this test.
    //
    if ( $errors == 0 )
    print( "dynTestAddAttr: Passed. (" );
    else
    print( "dynTestAddAttr: Failed. (" );

    // Print the frames per second (fps) in the form X.X.
    //
    print((int)($fps * 10)/10.0 + " fps)\n");

    // Reset the current time to zero so user can replay the test.
    //
    currentTime -e 1;
    return $errors;

    } // dynTestAddAttr //
     
  4. Guest

    Применительно к объекту, состоящему из нескольких частиц:
    $selected = `ls -sl`;
    $particle = $selected[0];
    $countAttr = ($particle+".count");
    $count = `getAttr $countAttr`;
    for ($i=0; $i<$count; $i++)
    {
    ////// Get the per Particle Position ///////
    select ($particle+".pt["+$i+"]");
    $partPos = `getParticleAttr -at position`;
    ////////////////////////////////////////////

    print $partPos; // prints
    }

    Применительно к одной частице этого объекта (его название к примеру
    particle1):

    select -r particle1.pt[2]; getParticleAttr -at pos;


    смотрите http://www.jackals-forge.com/bible/bibPAR8.html
     
Модераторы: Dark™, Skif

Поделиться этой страницей