Render.ru

Как получить ключи анмации?, Для линкованного объекта.

#1
Проблема такая. Есть объект линкованный к другому объекту который движется. Соответственно линкованный объект повторяет все движения первого. Как получить ключи анимации для прилинкованного объекта, что бы он мог повторять все движения первого объекта не будучи к нему прилинкованным.
Вообщем то суть в том что бы перетащить объект с анимацией из пятого в шестой макс. В пятом аниация объекта получена плагином которого вообще не существует в природе для шестого. Вот и хочу эту плюговую анимацию как нить перевести в обыкновенные ключи анимации. Колапс контроллер не предлагать, не помогает.
 
#2
через коллапс траектории, только объект должен быть не прилинкован, а приконстрейнен
 
#4
Leshiy На счет констрэйна сам не догадался, только с линком такую штуку пробовал )), сенкс все работает.
FiT Это дело тоже не подходит, таректории с поворотми мало, нужно еще временные отрезки соблюдать, объект то останавливается, то ускоряется.

Пока ждал ответа все сделал вручную, там всего 74 кадра, заняло десять минут. Алигн ту и авто кей.
 
#5
Рано обрадовался, с констрэйном вариант тоже не очень работает, после удаления объекта к которому приконстрэйниваю тоже все ломается и объект стоит на месте. Вообщем тоже самое что с линком.
 
#6
Объет твой линкованый назови Object01. Сделай его копию Object02 только не линкованую. Этот объект дубликат (Object02) выровняй по оригиналу Object01 скриптом:

Отдельное спасибо за кучу полезных и бесполезных названий команд:
Орешкину Алексею и Маслянка Федору! :)


-- Объект с которого берется анимация должен называться Object01
-- Объект для которого создается анимация должен называться Object02
clearlistener()
coordsys world
sliderTime = 0
select $object02
DeleteKeys $object02
$object02.pos=$object01.pos
$object02.rotation=$object01.rotation
for i=animationrange.start to animationrange.end do
(
set animate on
sliderTime = (i)
$object02.rotation.x_rotation=$object01.rotation.x_rotation
$object02.rotation.y_rotation=$object01.rotation.y_rotation
$object02.rotation.z_rotation=$object01.rotation.z_rotation
PositX=$object01.pos.x
PositY=$object01.pos.y
PositZ=$object01.pos.z
$object02.pos.x=0
$object02.pos.y=0
$object02.pos.z=0
move $object02 [$object01.pos.x,$object01.pos.y,$object01.pos.z]
)
 

McST

Знаток
Рейтинг
28
#7
Какой громоздкий скрипт, все гараздо проще можно было написать.
 
#8
Извените... какой есть :)
А если ты про вариант $object02.pos=$object01.pos
тотам какая-то хрень...
при передаче значения 103.2 почему-то приходит 103.456 ото и на еденицу больше. Я через Fromat сравнивал, откуда-то появляются смещения.

Я вобще не скриптовод, поэтому для меня задача была получить правальный результат, а не оптимизированный код.

А первый вариант выглядил совсем просто:

clearlistener()
for i=animationrange.start to animationrange.end do
(
at time i animate on
(
$Object02.pos=$Object02.pos
$Object02.rotation=$Object02.rotation
)
sliderTime = i
)

только траектория отличалась почему-то... Хотя я грешу на Rotation
т.к. со второго раза (когда уже есть ключи) он выдавал правельный результат.
 

McST

Знаток
Рейтинг
28
#9
Я просто про метод

animate on
at time i

просто есди у тебя будет большое количество кадров, да еще и сцена тяжелая, то этот скрипт будет тормозить.
Просто подобную проблему решали у меня на работе.
ключи не обязательно можно ставить в таком режиме
есть например команда

addNewkey
 

McST

Знаток
Рейтинг
28
#11
Вот так не прокатывает разве

for i = 0 to 100 do
(
animate on
at time i
$Cone02.transform = $Cone01.transform

)

а можно в начале написать
что
с = copy $
max unlink
а потом выше описанный скрипт.
 
#12
А в трэк вью там ниче скопировать нельзя, ключей не видно, висит контроллер колапс которого возвращает в точку первого кадра и там оставляет. Вот такой хитрожопый этот плюг. ))
 
#14
-> нужно еще временные отрезки соблюдать
эмммм.... чет не врубился я... если речь идет конкретно о перемещении объекта... то соблюдается все тють в тють во всем временном интервале...
а каких временных отрезках идет речь?

Опять же если речь идет просто о премещениях и поворотах с обычными ключами, то в TrackView можно скопировать анимацию с одного объекта на другой простым COPY to PASTE на треках Position & Rotation
 
#15
Leshiy В том то и весь прикол что когда убрал констрэйн то во всех ключеой оказались один и теже значения координат, т.е. объект тупо остался на месте.

FiT Попробую как нить, все равно уже сделал, тупо но сделал ))

Большое спасибо.
 
#17
Дык я ж написал. Алигн ту и авто кей. Включаешь автокей и в каждом кадре выравниваешь нужный объект относительно анимированного, на 74 кадра ушло минут десять. В принципе овчинка выделки стоит, если конечно анимация не на тысячи кадров идет.
 

McST

Знаток
Рейтинг
28
#19
Нужно просто один раз тулзу такую сделать и жить долго счастливо :)
либо текст скрипта хранить и когда надо просто его запускать
 
#20
А используя Move, если его в ноль не сбрасывать, то он идет по инкременту. И выстреливается как из пушки... Прогрессия нафиг. Я раньше и не думал, что Move это относительное смещение.
 
Сверху