Render.ru

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

Mega Ko!obok

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

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

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

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

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

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


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

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

Goryhater

Активный участник
Рейтинг
17
#2
Ответил в той теме и только теперь понял что анимация должна сдвигаться последовательно, а не рандомно)
Вобщем выделяешь нужные обьекты и запускаешь скрипт
Код:
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 - интервал для каждого последующего смещения.
 

Mega Ko!obok

Активный участник
Рейтинг
13
#4
Спасибо, огромное это супер круто, а можно так же, только без интервалов? что бы смещались все ключи, что бы в ручную можно было регулировать последовательность падения
 

iVAt

Знаток
Рейтинг
68
#5
опять не понятно, какие интервалы? последовательность падения - добавляй в выделенные объекты зажатым ctrl, т.е выделяешь первый, зажимаешь ctrl и дальше последовательно выделяюшь то что нужно.
 

Mega Ko!obok

Активный участник
Рейтинг
13
#6
iVAT, дабы раз и навсегда разрешить все недопонимания, загружаю пошаговые действия.
Есть анимация.
И применяю к ней такой просчет. Они начинают падать последовательно но рандомно!.
А мне необходимо что бы первыми падали цветные чайники а потом синие.

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

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

Вложения

Goryhater

Активный участник
Рейтинг
17
#7
так, то есть надо чтобы, типо выделил все чайники использовал скрипт - все кадры сдвинулись там на 5 кадров например, потом убрал из выделения один чайник, опять запустил скрипт у оставшихся все кадры сдвинулись дальше и тд?
 

Mega Ko!obok

Активный участник
Рейтинг
13
#8
Да, именно так.
И ещё вопрос, чисто теоретически можно забиндить на какие нибудь клавиши такой скрипт? это вообще возможно?
 

Goryhater

Активный участник
Рейтинг
17
#10
я тут :)
можно и на хоткей повесить конечно, но я б советовал сделать так:
Код:
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 нажимаешь то на выбраных обьектах все смещается)
 

Mega Ko!obok

Активный участник
Рейтинг
13
#11
Gory, спасибо тебе большое.
У меня есть 300 рублей на яндекс кошельке, я хочу тебя отблагодарить. куда можно отправить?

Скрипт протестирую отпишусь.
 

Goryhater

Активный участник
Рейтинг
17
#15
вот так должно работать, по крайней мере у меня работает :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
проверь и отпиши как работает
 
Сверху