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

Количество кадров анимации у объекта

Тема в разделе "MAXScript", создана пользователем Division, 28 дек 2008.

Модераторы: Savin Denis
  1. Division

    Division Пользователь сайта

    С нами с:
    16.03.2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    2
    Здравствуйте. Пишу экспорт. Мне нужно узнать количество кадров анимации у объектов. Сейчас делаю это так:
    Код:
    fn GetMaxFrame obj = (
    	count = numKeys obj.pos.controller
    	if (count > 0) then
    		res = getKeyTime obj.pos.controller count
    	else res = 0
    	
    	return res
    )
    Но этот способ не срабатывает, если в анимации нет перемещения, а присутствует только вращение. Пробовал менять pos на rotation - то же самое, работает только если есть перемещение.
    Подскажите пожалуйста, как быть. Какой контроллер использовать?
     
  2. Protactinium

    Protactinium Пользователь сайта

    С нами с:
    03.03.2006
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    2
    На сколько я понял нужно найти количество кадров между крайними ключами анимации, включая и их...
    можно так сделать:

    arr = obj.rotation.controller.keys
    res = arr[arr.count].time - arr[1].time + 1
     
  3. Division

    Division Пользователь сайта

    С нами с:
    16.03.2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    2
    Спасибо, но как выяснилось мой способ тоже работает. После перезапуска макса всё заработало.
    Меня устроил такой вариант:
    Код:
    fn GetMaxFrame obj = (
    	index = numKeys obj.rotation.controller
    	if (index > 0) then
    		rot = getKeyTime obj.rotation.controller index
    	else rot = 0f
    
    	index = numKeys obj.pos.controller
    	if (index > 0) then
    		pos = getKeyTime obj.pos.controller index
    	else pos = 0f
    	
    	if (pos > rot) then return (pos.frame as integer)
    	else return (rot.frame as integer)
    )
     
Модераторы: Savin Denis

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