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

Проблемы с назначением mesh на частицу в Particle

Тема в разделе "Анимация", создана пользователем Virman, 1 апр 2014.

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

    Virman Пользователь сайта

    С нами с:
    02.01.2006
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    2
    Ковыряю PF впервые. Пытаюсь сделать простую симуляцию дорожного движения, имитирующую ускоренную (цейтраферную) съемку. Проблема заключается в следующем: в mesh instance выбираю группу из нескольких автомобилей, в первом event на частицы назначаются какие-то модели авто, а в следующем event модели переназначаются, что недопустимо.

    Как вылечить? Как привязать отдельный mesh к отдельной частице которая движется от создания до удаления через все eventы?
     

    Вложения:

    • 3319365.jpg
      3319365.jpg
      Размер файла:
      388,8 КБ
      Просмотров:
      69
  2. maiden666

    maiden666 Знаток

    С нами с:
    06.04.2010
    Сообщения:
    3.089
    Симпатии:
    87
    Баллы:
    73
    попробуй Shape Instance из глобального ивента переместить в 004
    Слишком дофига у тебя тестов, где-то меняется порядок следования частиц и при заходе на следующую итерацию они имеют другой индекс, а шейп расположен в глобальном и привязан к конкретному индексу, но это только предположение, чтобы потестить надо бы Бокс№3 поюзать и посмотреть значения индексов и ID
     
  3. Виталий Мартынов

    Виталий Мартынов Знаток

    С нами с:
    28.02.2009
    Сообщения:
    135
    Симпатии:
    0
    Баллы:
    26
    Ну да перенос из общего события шейпа в первое. Формы то выбираются рандомные по этому в разных событиях разные и задаются а надо чтобы наследовались от события к событию. А бокс три тут вроде ни при чем, операторы то стандартные.
     
  4. maiden666

    maiden666 Знаток

    С нами с:
    06.04.2010
    Сообщения:
    3.089
    Симпатии:
    87
    Баллы:
    73
    В Боксе можно посмотреть данные, индексы и ID для дебаггинга, я это имел в виду
     
  5. Virman

    Virman Пользователь сайта

    С нами с:
    02.01.2006
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    2
    Перетащил в 004. mesh instanсe теперь назначает корректно, но во всех event-ах, кроме 004 автомобили отображаются и визуализируются без материалов. Один мультисаб для всех машин делать не вариант. Как быть тут?
     
  6. maiden666

    maiden666 Знаток

    С нами с:
    06.04.2010
    Сообщения:
    3.089
    Симпатии:
    87
    Баллы:
    73
    хз, тут эксперементировать надо, понажимать кнопочки в Shape Instance.. а чем мультисаб не угодил?
     
  7. Виталий Мартынов

    Виталий Мартынов Знаток

    С нами с:
    28.02.2009
    Сообщения:
    135
    Симпатии:
    0
    Баллы:
    26
    Пример оператора Birth Script и его действие. Если интересно или нужны пояснения, постите или в личку. Постараюсь ответить.


    on ChannelsUsed pCont do
    (
    pCont.useTime = true
    pCont.useAge = true
    pCont.useShape = true
    pCont.useMtlIndex = true
    pCont.usePosition = true
    pCont.useSpeed = true
    global n
    global tela
    global telo
    global t
    global i
    global m
    )

    on Init pCont do
    (
    tela = selection as array
    t = 0
    i = 1
    )

    on Proceed pCont do
    (
    pCont.AddParticle()
    pCont.particleIndex = pCont.NumParticles()
    pCont.particleTime = t
    pCont.particleAge = 0
    n = random 1 tela.count
    telo = tela[n]
    pCont.particleShape = telo.mesh
    m = telo.material.name as integer
    pCont.setParticleMtlIndexByID i m

    t = t +20
    i = i + 1
    )

    on Release pCont do
    (
    )
     

    Вложения:

    • 3320375.jpg
      3320375.jpg
      Размер файла:
      29 КБ
      Просмотров:
      56
    • 3320376.jpg
      3320376.jpg
      Размер файла:
      188,6 КБ
      Просмотров:
      76
  8. Виталий Мартынов

    Виталий Мартынов Знаток

    С нами с:
    28.02.2009
    Сообщения:
    135
    Симпатии:
    0
    Баллы:
    26
    Хотя есть более простой способ наследования свойств частиц от события к событию. Когда то я проходил подобный урок но забыл как это делалось. Поройтесь в нете.
     
  9. Виталий Мартынов

    Виталий Мартынов Знаток

    С нами с:
    28.02.2009
    Сообщения:
    135
    Симпатии:
    0
    Баллы:
    26
    Скрипт переделал. Подправил рождение.


    on ChannelsUsed pCont do
    (
    pCont.useTime = true
    pCont.useAge = true
    pCont.useShape = true
    pCont.useMtlIndex = true
    pCont.usePosition = true
    pCont.useSpeed = true
    global n
    global tela
    global telo
    global t
    global i
    global m
    global f
    global h
    )

    on Init pCont do
    (
    tela = selection as array
    i = 1
    h = 0

    )

    on Proceed pCont do
    (
    t = currenttime as integer/160
    if t == h then
    (
    pCont.AddParticle()
    pCont.particleIndex = pCont.NumParticles()
    pCont.particleTime = h
    pCont.particleAge = 0
    n = random 1 tela.count
    telo = tela[n]
    pCont.particleShape = telo.mesh
    m = telo.material.name as integer
    pCont.setParticleMtlIndexByID i m
    h = h + 20
    i = i + 1
    )
    )

    on Release pCont do
    (
    )
     

    Вложения:

    • 3320435.jpg
      3320435.jpg
      Размер файла:
      375,8 КБ
      Просмотров:
      51
Модераторы: Артер

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