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

Передвижению ключей анимацию по времени

Тема в разделе "MAXScript", создана пользователем Mega Ko!obok, 23 ноя 2012.

Модераторы: Savin Denis
  1. Mega Ko!obok

    Mega Ko!obok Активный участник

    С нами с:
    14.01.2006
    Сообщения:
    172
    Симпатии:
    1
    Баллы:
    11
    Привет.
    Ранее я создал тему тут: http://www.render.ru/forum/viewtopic.php?post_id=1033597#1033597
    Но порекомендовали обратиться за помощью сюда.

    И так, уважаемые скрипт Гуру. )

    Есть такая задача:
    В сцене, множество объектов, которые имеют анимацию (просто чайники, которые спускаются по оси Z на землю одновременно). По задумке
    они должны спускать не одновременно а последовательно.

    Хотелось сделать это таким образом, выделить все объекты, нажать short cut - передвижение всех ключей, выделенных объектов, анимации на заданное количество кадров. Затем последоватьльно отменять выделение, и объекта, и шот катом двигать ключи на такой же отрезок времени (кадров). Таким образом получится равномерная последовательная анимация.

    Однако!
    Такого найти я не смог, подсказать не смогли, возможно тут кто нибудь сможет помочь.

    *Сразу оговорюсь, что руками это делать нереально долго, если в сцене например 1500 тысячи объектов и более, при этом тайм бар на 3000 кадров, на глаз передвигать ключи супер не удобно и долго.


    Вобщем, кто чем может помогите, возможно в максе уже реализована такая функция просто я не смог её отыскать.

    С уважением, пользователь.
     
  2. Goryhater

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

    С нами с:
    20.07.2008
    Сообщения:
    283
    Симпатии:
    0
    Баллы:
    14
    Ответил в той теме и только теперь понял что анимация должна сдвигаться последовательно, а не рандомно)
    Вобщем выделяешь нужные обьекты и запускаешь скрипт
    Код:
    fn moveAnimKeys = (
    	numFrame = 3f
    	frameAnimInterval =3f
    		for i in selection do(
    			moveKeys i.pos.controller.X_Position.controller numFrame
    			moveKeys i.pos.controller.Y_Position.controller numFrame
    			moveKeys i.pos.controller.Z_Position.controller numFrame 
    			numFrame += frameAnimInterval
    		)		
    )
    moveAnimKeys()
    
    numFrame = 3f - значени самого первого смещения
    frameAnimInterval =3f - интервал для каждого последующего смещения.
     
  3. Mega Ko!obok

    Mega Ko!obok Активный участник

    С нами с:
    14.01.2006
    Сообщения:
    172
    Симпатии:
    1
    Баллы:
    11
    Спасибо. попробую сейчас, протестирую, отпишусь
     
  4. Mega Ko!obok

    Mega Ko!obok Активный участник

    С нами с:
    14.01.2006
    Сообщения:
    172
    Симпатии:
    1
    Баллы:
    11
    Спасибо, огромное это супер круто, а можно так же, только без интервалов? что бы смещались все ключи, что бы в ручную можно было регулировать последовательность падения
     
  5. iVAt

    iVAt Знаток

    С нами с:
    03.08.2006
    Сообщения:
    1.138
    Симпатии:
    1
    Баллы:
    46
    опять не понятно, какие интервалы? последовательность падения - добавляй в выделенные объекты зажатым ctrl, т.е выделяешь первый, зажимаешь ctrl и дальше последовательно выделяюшь то что нужно.
     
  6. Mega Ko!obok

    Mega Ko!obok Активный участник

    С нами с:
    14.01.2006
    Сообщения:
    172
    Симпатии:
    1
    Баллы:
    11
    iVAT, дабы раз и навсегда разрешить все недопонимания, загружаю пошаговые действия.
    Есть анимация.
    И применяю к ней такой просчет. Они начинают падать последовательно но рандомно!.
    А мне необходимо что бы первыми падали цветные чайники а потом синие.

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

    Вы скрипт, потестируйте сразу поймете о чем я говорю.
     

    Вложения:

    • 2897717.jpg
      2897717.jpg
      Размер файла:
      164,2 КБ
      Просмотров:
      47
    • 2897718.jpg
      2897718.jpg
      Размер файла:
      172,8 КБ
      Просмотров:
      57
    • 2897719.jpg
      2897719.jpg
      Размер файла:
      287,5 КБ
      Просмотров:
      51
  7. Goryhater

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

    С нами с:
    20.07.2008
    Сообщения:
    283
    Симпатии:
    0
    Баллы:
    14
    так, то есть надо чтобы, типо выделил все чайники использовал скрипт - все кадры сдвинулись там на 5 кадров например, потом убрал из выделения один чайник, опять запустил скрипт у оставшихся все кадры сдвинулись дальше и тд?
     
  8. Mega Ko!obok

    Mega Ko!obok Активный участник

    С нами с:
    14.01.2006
    Сообщения:
    172
    Симпатии:
    1
    Баллы:
    11
    Да, именно так.
    И ещё вопрос, чисто теоретически можно забиндить на какие нибудь клавиши такой скрипт? это вообще возможно?
     
  9. Mega Ko!obok

    Mega Ko!obok Активный участник

    С нами с:
    14.01.2006
    Сообщения:
    172
    Симпатии:
    1
    Баллы:
    11
    Goryhater, где же ты...
     
  10. Goryhater

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

    С нами с:
    20.07.2008
    Сообщения:
    283
    Симпатии:
    0
    Баллы:
    14
    я тут :)
    можно и на хоткей повесить конечно, но я б советовал сделать так:
    Код:
    rollout MoveAnimKeys "MoveAnimKeys" width:140 height:38
    (
    	button btn1 "MoveKeys" pos:[71,8] width:55 height:21
    	spinner KeyMoveSpn1 "keys" pos:[20,11] width:45 height:16 range:[0,100,0] type:#integer 
    	fn moveAnimKeys frnum = (
    		for i in selection do(
    			moveKeys i.pos.controller.X_Position.controller frnum
    			moveKeys i.pos.controller.Y_Position.controller frnum
    			moveKeys i.pos.controller.Z_Position.controller frnum 
    		)	
    	)
    	on KeyMoveSpn1 entered do (
    		numFrame=KeyMoveSpn1.value
    	)
    	on btn1 pressed do (
    		numFrame=numFrame as time
    		MoveAnimKeys (numFrame)
    	)
    )
    createDialog MoveAnimKeys 
    
    сейчас этот скрипт создаёт окошко в котором можно выбрать на какое количество кадров смещать анимацию, каждый раз когда кнопочку MoveKeys нажимаешь то на выбраных обьектах все смещается)
     
  11. Mega Ko!obok

    Mega Ko!obok Активный участник

    С нами с:
    14.01.2006
    Сообщения:
    172
    Симпатии:
    1
    Баллы:
    11
    Gory, спасибо тебе большое.
    У меня есть 300 рублей на яндекс кошельке, я хочу тебя отблагодарить. куда можно отправить?

    Скрипт протестирую отпишусь.
     
  12. Mega Ko!obok

    Mega Ko!obok Активный участник

    С нами с:
    14.01.2006
    Сообщения:
    172
    Симпатии:
    1
    Баллы:
    11
    Выдает ошибку ((((
     

    Вложения:

    • 2897872.jpg
      2897872.jpg
      Размер файла:
      317,3 КБ
      Просмотров:
      38
  13. Goryhater

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

    С нами с:
    20.07.2008
    Сообщения:
    283
    Симпатии:
    0
    Баллы:
    14
    отписал в личку.

    хм, сейчас разберусь
     
  14. Mega Ko!obok

    Mega Ko!obok Активный участник

    С нами с:
    14.01.2006
    Сообщения:
    172
    Симпатии:
    1
    Баллы:
    11
    написал в личку )

    Хорошо буду ждать.
     
  15. Goryhater

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

    С нами с:
    20.07.2008
    Сообщения:
    283
    Симпатии:
    0
    Баллы:
    14
    вот так должно работать, по крайней мере у меня работает :rolleyes:
    Код:
    rollout MoveAnimKeys1 "MoveAnimKeys" width:140 height:38
    (
    	button btn1 "MoveKeys" pos:[71,8] width:55 height:21
    	spinner KeyMoveSpn1 "keys" pos:[20,11] width:45 height:16 range:[0,100,0] type:#integer 
    	fn moveAnimKeys frnum = (
    		for i in selection do(
    			moveKeys i.pos.controller.X_Position.controller frnum
    			moveKeys i.pos.controller.Y_Position.controller frnum
    			moveKeys i.pos.controller.Z_Position.controller frnum 
    		)	
    	)
    	on KeyMoveSpn1 entered do (
    		global spinFrame=KeyMoveSpn1.value
    	)
    	on btn1 pressed do (
    		print spinFrame
    		numFrame=spinFrame as time
    		MoveAnimKeys (numFrame)
    	)
    )
    createDialog MoveAnimKeys1 
    
    проверь и отпиши как работает
     
  16. Mega Ko!obok

    Mega Ko!obok Активный участник

    С нами с:
    14.01.2006
    Сообщения:
    172
    Симпатии:
    1
    Баллы:
    11
    Красота, работает всё отлично.

    Спасибо ещё раз
     
  17. iVAt

    iVAt Знаток

    С нами с:
    03.08.2006
    Сообщения:
    1.138
    Симпатии:
    1
    Баллы:
    46
    не развращай народ, а то тут бесплатно перестанут помогать, все такие желания через личку плиз :D
     
Модераторы: Savin Denis

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