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

Зациклить супер-спрей.

Тема в разделе "Анимация", создана пользователем -, 11 июн 2004.

Модераторы: Артер
  1. Guest

    Надо, чтобы частички генерировались "по кругу", чтобы можно было без рывка зациклить, скажем, 100 кадров. Это возможно вообще или нет?
     
  2. Guest

    Там же вродя есть продолжительность...
    Нафига циклить то?
    Поставь продолжительность на 100 кадров, укажи до куда спрею фонтанить ;)
    Иль я че то не прально понял?
     
  3. Guest

    Да не совсем. Мне надо, чтобы в этом сто первом кадре пузырьки (дым и т.п.) находились там же, где и в первом. Чтоб можно было по кругу их гонять. Для последующего импорта, к примеру.
     
  4. Guest

    Есть такой скрипт BPL_ParticleLooper.ms. Название ни о чем не говорит?
     
  5. Guest

    Cо скриптами вообще ни разу не общалась :). Даже не знаю, как это делается. Если объясните, буду очень благодарна.
     
  6. Guest

    тоже была такая проблема, но с другим объектом... лечь, полежать на диване и подумать, мне помогло :)

    решение: создать ДВА одинаковых источника (спрей, или еще чего) практически на одном месте, друг на друге вообщем... только в одном указать:
    старт эмиттер: -100
    енд этиттер: 0

    а в другом:
    старт эмиттер:0
    енд эмиттер:100

    это для анимации на 100 кадров... seed в обоих спреях должен быть одинаковый конечно...


    Есть такой скрипт BPL_ParticleLooper.ms
    а какой у него алгоритм действий? "скачать и посмотреть" не могу :(
     
  7. Guest

    To Ivan: а не подскажешь, где этот скрипт достать. Или, если у тебя есть, скин на diman@bk.ru пожалуйста.
     
  8. Guest

    /*
    Particle Looper
    Version 1.1
    Written By: Jason Hayes (jhayes@ballisticpixel.com)
    Date:02/12/2002
    Developed for 3D Studio MAX 4.2
    Description: Will loop supported particle systems. Please read the Help html file for usage.
    The supported particles systems are:

    - Super Spray
    - Blizzard
    - PArray
    - PCloud

    The advantage of using this over Peter Watje's "Particles +" plugin is that you can use
    some of the default MAX particle systems in case you need to use instanced geometry.
    What sucks is that it's a big cheese workaround, but it does the trick! :)

    Version 1.0: Initial script.
    Version 1.1: (Requested) Added the ability to choose a custom prefix for the looped particle systems.
    */


    macroscript ParticleLooper
    category:"BPL Tools"
    buttonText:"ParticleLooper"
    toolTip:"Particle Looper"
    icon:#("ParticleLooper",1)
    (

    global base_system
    global particle_sys01
    global particle_sys02
    global particle_sys03
    global particle_sys04

    if particle_looper != undefined then (closeRolloutFloater particle_looper)
    particle_looper = newRolloutFloater "Particle Looper" 240 494

    rollout support_ro "Supported Particle Systems"
    (
    label lb_Blizzard "Blizzard"
    label lb_PArray "PArray"
    label lb_PCloud "PCloud"
    label lb_SuperSpray "Super Spray"
    )

    rollout pl_ro "Parameters"
    (
    pickbutton pick_particle_sys "Pick Base Particle System" width:200 height:30
    label lb_base_system "none"
    label space01 ""

    group "Emitter Start / Stop Frame Range"
    (
    spinner sp_frame_range "Num Frames:" range:[-9999,9999,0] type:#integer width:105 align:#right
    )

    group "Custom Properties"
    (
    checkbox cb_wire_color "Consistent wire color"
    checkbox cb_custom_prefix "Custom Prefix"
    edittext et_prefix "Prefix:" text:"PL_" enabled:false
    )

    group "Looping"
    (
    button loop_system "Loop Particle System" width:190 height:30
    button delete_looped_system "Delete Looped System" width:190 height:30 toolTip:"Will only delete systems with the prefix 'PL_'"
    )



    /* EVENTS */
    on cb_custom_prefix changed state do
    (
    if state == true then (et_prefix.enabled = true) else (et_prefix.enabled = false)
    )


    on pick_particle_sys picked obj do
    (
    base_system = obj
    lb_base_system.text = base_system.name

    /* Get the num frames of the base systems emitter start / stop and put it into the slider */
    base_system_start = base_system.emitter_start
    base_system_stop = base_system.emitter_stop
    num_frames = base_system_stop - base_system_start
    sp_frame_range.value = num_frames
    )


    on loop_system pressed do
    (
    undo on
    (
    frame_range = sp_frame_range.value
    wire_color = base_system.wireColor
    prefix_name = et_prefix.text as string

    /* Create the new particles */
    particle_sys01 = base_system
    particle_sys02 = copy particle_sys01
    particle_sys03 = copy particle_sys02
    particle_sys04 = copy particle_sys03

    /* Rename the new particle systems to the prefix */
    particle_sys02.name = (prefix_name + particle_sys02.name)
    particle_sys03.name = (prefix_name + particle_sys03.name)
    particle_sys04.name = (prefix_name + particle_sys04.name)

    /* DEBUG */
    format "SYS02 NAME=%\n" particle_sys02.name
    format "SYS03 NAME=%\n" particle_sys03.name
    format "SYS04 NAME=%\n" particle_sys04.name
    /* DEBUG END */

    /* Adjust the particles emitter start / stop for the loop */
    sys01_start = particle_sys01.emitter_start
    sys01_stop = particle_sys01.emitter_stop

    particle_sys02.emitter_start = sys01_stop
    particle_sys02.emitter_stop = sys01_stop + frame_range

    particle_sys03.emitter_start = sys01_start - frame_range
    particle_sys03.emitter_stop = sys01_start

    particle_sys04.emitter_start = particle_sys03.emitter_start - frame_range
    particle_sys04.emitter_stop = particle_sys03.emitter_start

    /* If the user wants the wire color to be the same, do it here */
    try
    (
    if cb_wire_color.state == true then
    (
    particle_sys02.wireColor = wire_color
    particle_sys03.wireColor = wire_color
    particle_sys04.wireColor = wire_color
    )
    )
    catch()
    )--end undo
    )


    on delete_looped_system pressed do
    (
    undo on
    (
    delete $'PL_*'
    )
    )

    )--end rollout



    rollout about_ro "About" rolledUp:true
    (
    label lb_1 "Particle Looper" align:#right
    label lb_2 "Version 1.1" align:#right
    label lb_3 "Written By Jason Hayes" align:#right
    label lb_4 "jhayes@ballisticpixel.com" align:#right
    button btn_help "Help" width:190

    on btn_help pressed do
    (
    help_path = GetDir #help
    help_file = (help_path + "\\ParticleLooper_Help.htm")
    shellLaunch "N:\\Digital Juice\\MAXScripts\\Help\\ParticleLooper_Help.htm" ""
    )
    )


    addRollout support_ro particle_looper
    addRollout pl_ro particle_looper
    addRollout about_ro particle_looper

    )--end macroscript
     
  9. Guest

    Мать моя женщина... Спасибо.
     
Модераторы: Артер

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