Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум .:3DCenter.ru:. _ 3ds Max _ Camera Sequencer кто-нибудь пользуется ?

Автор: ab459 15/11/2017, 02:00

Люди ктонибудь пользуется Camera Sequencer-ом ? Решил заюзать побыстрому, без глубокого вникания, и несовсем понял его логику. Вплане, напрмиер если я хочу реализовать массив быстрых переключений с камеры 1 на камеру 2, типа зацикливания (т.е. таких переходов будет 40-50 в 10 секундах, скажем) то что, для каждого перехода надо будет создавать новый трек ?
Но почему нельзя просто тупо размножить на треке первой камеры эти ключи переключения горизонтально, и соот-но также на треке втором для второй камеры.
А так как я понял оно работает - это выйдет многокилометровое наращивание считай пустых треков по вертикали чтоли, но это же бред, не рационально т.е. И неудобно. Или я что нитак понял.

Автор: BorisK 15/11/2017, 10:50

Цитата(ab459 @ 15/11/2017, 02:00) *
Или я что нитак понял.

Все правильно понял, к сожалению.
Можно попробовать http://www.jdbgraphics.nl/prosequencer, но мне кажется что там та же самая фигня (

Автор: Harh 15/11/2017, 21:15

Так может там просто сделать рендер этих камер вручную с нужным списком кадров (номера, через кадр, через два кадра и т.д.). Понятно, это не автоматически, но зато просто и скорее всего быстро.

Автор: ab459 15/11/2017, 22:52

Цитата(BorisK @ 15/11/2017, 10:50) *
Цитата(ab459 @ 15/11/2017, 02:00) *
Или я что нитак понял.

Все правильно понял, к сожалению.
Можно попробовать http://www.jdbgraphics.nl/prosequencer, но мне кажется что там та же самая фигня (

Ну да, там вроде как и по скрину видно что таже система - не больше одного "кирпича" на трек. Странно (

Цитата(Harh @ 15/11/2017, 21:15) *
Так может там просто сделать рендер этих камер вручную с нужным списком кадров (номера, через кадр, через два кадра и т.д.). Понятно, это не автоматически, но зато просто и скорее всего быстро.

Сорри непонял, имеется ввиду рендеры для последующего использования в не-максе ?

Автор: Harh 16/11/2017, 07:46

Цитата(ab459 @ 16/11/2017, 00:52) *
Сорри непонял, имеется ввиду рендеры для последующего использования в не-максе ?


Угу... Рендеры же все равно делаются, чтобы их потом не в максе использовать. Просто через меню рендеринга (обычному, которое по F10) выбираются кадры. Ставится, например, Every 2 Frames (должен же этой функцией кто-то хоть раз воспользоваться за много лет) и вперед. Просто вопрос в том, что интересует, красивое решение или просто результат.

Автор: Pomidoroff 16/11/2017, 12:02

Цитата
должен же этой функцией кто-то хоть раз воспользоваться за много лет

Такой функцией часто пользуются те кто рендерит видео. Для привьюшек и контроля качества. Рендерят каждый десятый кадр и потом по ним пост настраивают.

Автор: Harh 16/11/2017, 14:18

Цитата(Pomidoroff @ 16/11/2017, 14:02) *
Такой функцией часто пользуются те кто рендерит видео. Для привьюшек и контроля качества. Рендерят каждый десятый кадр и потом по ним пост настраивают.


Ну тут уже значит другая высота полета. Сколько видео не рендерил, никогда не пользовался... Но и для меня понятие "пост" почти ругательное - дикий я человек biggrin.gif

Автор: ab459 17/11/2017, 01:31

Цитата(Harh @ 16/11/2017, 07:46) *
Цитата(ab459 @ 16/11/2017, 00:52) *
Сорри непонял, имеется ввиду рендеры для последующего использования в не-максе ?


Угу... Рендеры же все равно делаются, чтобы их потом не в максе использовать. Просто через меню рендеринга (обычному, которое по F10) выбираются кадры. Ставится, например, Every 2 Frames (должен же этой функцией кто-то хоть раз воспользоваться за много лет) и вперед. Просто вопрос в том, что интересует, красивое решение или просто результат.

Да, я понимаю, но фишка камера-секвенсера какраз чтоб можно было попробовать незаморочиться с другими софтинами. Впринципе на иностранных форумах нагугливал отзывы по секвенсору какраз такого смысла, что мол - нафига это нужно, всёравно всё это делается в Адобе потом. Ну, дело вкуса. Мне просто какраз хотелось обойтись именно максом. Кстати ещё неизвестно где было бы удобней и быстрей засеквенсить описаную мною задачу, будь тут возможность клонирования кирпичей вдоль трека.
Вообще для мографа разного была бы довольно вдохновляющая (продуктивная) штука. Потмоу что я представляю пока кадры начнёшь перекидывать туда сюда забудешь что хотел ))

Автор: Jahman 17/11/2017, 02:10

да это несложно сделать на самом деле.
viewport.getCamera
viewport.setCamera и вперед
на каждую камеру можно какой-нить доп контроллер повесить и включать их по какому-либо условию

Автор: ab459 17/11/2017, 20:18

Цитата(Jahman @ 17/11/2017, 02:10) *
да это несложно сделать на самом деле.
viewport.getCamera
viewport.setCamera и вперед
на каждую камеру можно какой-нить доп контроллер повесить и включать их по какому-либо условию

Да, чуствую что в этом подходе зарыт хороший потенциал )), но пока это несовсем явно для меня, как это грамотно организовать т.е. Это не намёк обьяснять базовые вещи, нехотелось бы напрягать конкретно с этим вопросом, но спасибо буду иметь ввиду. А так, потому и заинтеерсовался сабжем что для далёкого от работы с скриптами такой визуальный воркфлов был бы то что надо.

Автор: Jahman 18/11/2017, 10:25

Что-то вроде того. Самый простой пример.

CODE
delete objects

animationrange = interval 0 222



cam1 = Freecamera()
cam2 = Freecamera()
cam1.pos = [111,111,100]
cam2.pos = [50,50,222]
cam1.dir = normalize cam1.pos
cam2.dir = normalize cam2.pos

d = dummy()
animate on (
    
    at time animationrange.end rotate d (AngleAxis 120 [0,0,1])
    
)

cam1.parent = d
cam2.parent = d

Teapot()


cam1_ranges = #( [0,33], [100,140] )
cam2_ranges = #( [50,105], [125,180] )



setUserProp cam1 "range" cam1_ranges
setUserProp cam2 "range" cam2_ranges


cams = #( #( cam1, execute(getUserProp cam1 "range")), #( cam2, execute(getUserProp cam2 "range")) )

for t = animationrange.start to animationrange.end do (
    
    slidertime = t

    cam = viewport.GetCamera()
    
    searching = true
    
    for camData in cams while searching do (
        
        for r in camData[2] while searching where t >= r.x and t < r.y do (
            
            searching = false
            viewport.SetCamera camData[1]
            
        )
        
    )
    
    if searching do viewport.SetType #view_persp_user
    
    
)


Если хочется визуального контроля отрезков активности камеры можно на камеру повесить кастомАттрибут типа BooleanType
Этому аттрибуту через trackView вешаем boolean контроллер и расставляем ключи когда камера активна и когда нет.
Потом в скрипте проверяем текущее состояние этих контроллеров и и переключаемся на ту у которой контроллер вернет true.
В ином случае переключаемся на окно перспективы.



Автор: Jahman 18/11/2017, 12:44

как-то так. а потом уже в скрипте смотрим какая камера активна и переключаемся на нее
зы. для наглядности открываем trackView и в нем смотрим Camera001 > Object > camActiveDef > active

CODE
camActiveDef = attributes camActiveDef attribID:#(0x3c376ec9, 0x1c72349) (
    
    parameters params (
        
        active type:#boolean default:false
        
    )
    
)

delete objects

c = Freecamera()
custAttributes.add c camActiveDef
c.baseObject.camActiveDef.active.controller = boolean_float()

animate on (
    
    at time 0 c.baseObject.camActiveDef.active.controller.value   = 1
    at time 33 c.baseObject.camActiveDef.active.controller.value  = 0
    at time 66 c.baseObject.camActiveDef.active.controller.value  = 1
)

select c

Автор: Jahman 18/11/2017, 15:47

и вот такой еще вариант есть
автоматически будет переключать активный вьюпорт на подходящую камеру.

CODE
delete objects
cam1 = Freecamera()
cam2 = Freecamera()
cam1.pos = [100,100,100]
cam2.pos = [-20,-100,150]
cam1.dir = normalize cam1.pos
cam2.dir = normalize cam2.pos
Teapot()


fn camSwitcher = (
    
    if currenttime > 50 then (
        
        viewport.SetCamera cam2
        
    ) else (
        
        viewport.SetCamera cam1
        
    )
    
    
)

unRegisterTimeCallback camSwitcher
registerTimeCallback camSwitcher



Автор: ab459 18/11/2017, 19:49

Jahman спасибо ! Думаю в недалёком будущем воспользуюсь этими идеями. (Булиан контроллер, хм, прикольно)

Автор: Jahman 18/11/2017, 21:08

В последнем варианте в том виде в котором я его запостил не работает проигрывание анимации. happy.gif
зы. кстати автор просиквенсера подтвердил, что на одном треке только один фрейм рейндж.

Автор: ab459 18/11/2017, 22:31

Цитата(Jahman @ 18/11/2017, 21:08) *
В последнем варианте в том виде в котором я его запостил не работает проигрывание анимации. happy.gif

А это исправляемо ?

Цитата(Jahman @ 18/11/2017, 21:08) *
зы. кстати автор просиквенсера подтвердил, что на одном треке только один фрейм рейндж.

Хорошо бы он прокоментировал почему, или вернее что он думает насчёт удобства еслиб можно было больше одного фрейма.

Автор: Jahman 19/11/2017, 00:25

Он посоветовал глянуть как у него это реализовано, так что сделать по своему можно благо исходники открытые
Не знаю чем его выбор был продиктован и можно ли на данном этапе просиквенсер допилить до подобного; по крайней мере он о такой потребности знает.

Автор: ab459 19/11/2017, 01:46

Jahman интересно а это не у него ли автодески позаимствовали проект случаем ? Просто очень уж похоже.

Автор: Jahman 19/11/2017, 09:22

Маловероятно, мне вообще кажется, что они на скрипты внимания не обращают.

Автор: ab459 19/11/2017, 12:20

Jahman Ясно, сорри а что насчёт неработающей анимации в твоём примере ? (ты не сказал)

Автор: Jahman 19/11/2017, 12:23

QUOTE
Он посоветовал глянуть как у него это реализовано, так что сделать по своему можно благо исходники открытые

как-то так.
у него сделано по тому же принципу, только у него работает, а у меня нет smile.gif
т.е. надо разбираться и допиливать

Форум Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)