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

Вращение относительно объекта

Тема в разделе "Общие вопросы", создана пользователем amtech, 27 дек 2012.

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

    amtech Активный участник

    С нами с:
    22.04.2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    17
    Суть такова: делаю сцену игровую там будут горы на заднем плане а на них куча плейнов с альфой (типа деревья), так вот эти плейны(деревья) разных размеров, с разными координатами в пространстве. И нужно эти все деревья повернуть по оси Z (у каждого дерева разумеется свой центр, т.е. каждый плейн крутиться относительно своей точки отсчета) чтобы деревья мои смотрели ну скажем на какой-то другой объект (например бокс, камеру, дамми или что-то ещё). Целый день бьюсь, но ничего не выходит, думал тулза Align сможет так сделать, но увы не выходит. Подскажите пожалуйста :)
     
  2. Royal Ghost

    Royal Ghost Мастер

    С нами с:
    17.03.2001
    Сообщения:
    305
    Симпатии:
    41
    Баллы:
    214
    Animation->Constraints->LookAt Constraint поможет.
     
  3. amtech

    amtech Активный участник

    С нами с:
    22.04.2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    17
    нет, не поможет
     
  4. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.255
    Симпатии:
    172
    Баллы:
    65
    Поможет, но неудобно. LookAt Constraint Сообщение 6.
    LookAt Constraint Сообщение 7.
     
  5. diwian diwian

    diwian diwian Мастер

    С нами с:
    05.06.2010
    Сообщения:
    4.742
    Симпатии:
    74
    Баллы:
    83
    А каким способом распределялись "плейны" по горам?Дело в том,что в PF(частицы) есть такая возможность ориентировать геометрию по отношению к камере.
     
  6. Leonidych

    Leonidych Мастер

    С нами с:
    17.02.2007
    Сообщения:
    793
    Симпатии:
    9
    Баллы:
    87
    Если сцена игровая так может лучше в движке всю эту зелень вставить и настроить?
     
  7. maiden666

    maiden666 Знаток

    С нами с:
    06.04.2010
    Сообщения:
    3.087
    Симпатии:
    86
    Баллы:
    73
    по мне так действительно надо использовать PFlow, быстро и удобно
     
  8. amtech

    amtech Активный участник

    С нами с:
    22.04.2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    17
    Тогда объясните как сделать так, чтобы плейны не крутились по другим осям когда используешь LookAt Constraint. Деревья начинают наклонятся т.к. они находятся на разной высоте относительно точки в которую они должны смотреть. Этого мне как раз не нужно. Ещё раз повторюсь, мне нужно повернуть объекты вокруг своих осей (одной, в моём случае Z) чему-либо. В движке мы используем SpeedTree, и да там есть лоды, и да они через настраиваемое расстояние превращаются в такие же плейны, но как показала практика, когда количество деревьев переваливает за 3000 идет резкое сокращение фпс, а 3000 поликов экспортнутых из макса, сами понимаете, одна модель персонажа например :)
     
  9. amtech

    amtech Активный участник

    С нами с:
    22.04.2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    17
    igorznag, попробую как предлогают в посте, спасибо :)
     
  10. Royal Ghost

    Royal Ghost Мастер

    С нами с:
    17.03.2001
    Сообщения:
    305
    Симпатии:
    41
    Баллы:
    214
    - Создаем dummy для каждого объекта (дерева).
    - Дерево - Link Constraint к dummy.
    - В параметрах дерева Hierarchy -> Link info -> Inherit - убираем галки с XY осей.
    - LookAt constraint на dummy.


    [​IMG]
     
  11. diwian diwian

    diwian diwian Мастер

    С нами с:
    05.06.2010
    Сообщения:
    4.742
    Симпатии:
    74
    Баллы:
    83
    И так оставшиеся 2999 раз(судя по посту №8).Правда если только копировать "кучками"!?Да вроде должны быть в максе ограничители по осям так чтобы менее затратно было.Здесь хорошо бы попробовать как это всё будет распределяться по поверхности.
     
  12. Royal Ghost

    Royal Ghost Мастер

    С нами с:
    17.03.2001
    Сообщения:
    305
    Симпатии:
    41
    Баллы:
    214
    Для автоматизации есть maxscript.
     
  13. Арт.К

    Арт.К Активный участник

    С нами с:
    25.10.2008
    Сообщения:
    162
    Симпатии:
    10
    Баллы:
    15
    все автоматизирует и решит проблемы разом плагин "forest pack pro"
     
  14. diwian diwian

    diwian diwian Мастер

    С нами с:
    05.06.2010
    Сообщения:
    4.742
    Симпатии:
    74
    Баллы:
    83
    В комплекте с максом присутствуют файлы примеров в частности tut_billboard_facing в папке scripting_fx рис 1.
    Последовательность работы такова:

    Рис 2.
    1.Создаём плоскость(и)(образец(ы) для растительности или чего либо другого).
    2.Создаём камеру.
    3.Назначаем плоскости Rotation Script.
    4.В окне редактора нажимаем (два щелчка мыши) Rotation :Rotation Script.
    Рис 3.
    5 и 6 .В появившемся Script Controller в водим в Expression скрипт(ниже):


    try(
    dependsOn $'Camera01'.pos.controller
    local d, dz, z_rot, len, ctrl
    -- Get difference vector of obj and targ.
    d=
    try ($'Billboard01'.pos-$'Camera01'.pos)
    catch [0,0,0]
    dz=d.z -- Store z value.
    d.z=0 -- Set z to zero.
    len=length d -- Vector length.
    -- Calculate the z rotation (in degrees).
    -- Note: len==0 => obj and targ are at same position!
    z_rot=
    if len!=0
    then -90+acos(d.x/len)*(if d.y!=0 then d.y/(abs d.y) else 1)
    else -90
    (eulerAngles 90 0 z_rot) as quat
    )catch ((eulerAngles 90 0 0) as quat)


    РИС 4.ВНИМАНИЕ ИМЕНА (Billboard01 и Camera01-или какие хотите)ДОЛЖНЫ БЫТЬ УКАЗАННЫ ТОЧНО НА ТАКИЕ ЖЕ КАК В СЦЕНЕ.

    Рис.5 Для распределения объекта по сцене(объекту) я использовал Object Paint. Все получившиеся объекты наследуют свойства "стартового" объекта и их количество практически не ограниченно.
     

    Вложения:

    • 2938647.jpg
      2938647.jpg
      Размер файла:
      401,4 КБ
      Просмотров:
      51
    • 2938648.jpg
      2938648.jpg
      Размер файла:
      144 КБ
      Просмотров:
      45
    • 2938649.jpg
      2938649.jpg
      Размер файла:
      200,3 КБ
      Просмотров:
      51
    • 2938650.jpg
      2938650.jpg
      Размер файла:
      80,4 КБ
      Просмотров:
      59
    • 2938651.jpg
      2938651.jpg
      Размер файла:
      346,4 КБ
      Просмотров:
      46
Модераторы: Артер

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