Render.ru

Анимация графика/диаграммы!

Sumdex

Пользователь сайта
Рейтинг
2
#1
Здравствуйте!

Подскажите, как лучше сделать анимацию графика.
Выглядеть это должно приблизительно так: http://vimeo.com/5477517

Заранее большое спасибо!
 

Volf666

Пользователь сайта
Рейтинг
2
#2
Я думаю что просто сделать план и разбить его на много сегментов... а потом через Poly - extrude и с помощью ключей выдавливать график)
 

Sumdex

Пользователь сайта
Рейтинг
2
#3
пожалуй)

Но если график длинный, то это займет прилично времени...а жизнь упростить то хочется))
Есть ли возможность завязать выдавливание с траекторией /чтобы не выдавливать каждый полигон отдельно/?
 

Volf666

Пользователь сайта
Рейтинг
2
#4
Или можно просто создать боксы под поверхностью, и поднимать по мере их появления, зафиксировав ключами)
 

JBond

Знаток
Рейтинг
33
#7
Нарисуй сплайн графика примерно по той высоте на которую должны подняться кубики.
Сделай куб с маленькой высотой. Пивот перемести в 0 по Z.Клонируй его в ряд и потом Scale анимируй по оси Z в autokey режиме до высоты сплайна.
 

Sumdex

Пользователь сайта
Рейтинг
2
#9
Каким образом можно остановить изменение Scale в нужной точке сплайна?...я так понимаю, что это делается через Curve Editor?!?...мож контроллер какой-нибудь назначить??
 

igorznag

Мастер
Рейтинг
103
#10
Sumdex
Допустим нужно сделать все вручную. Попробуй создать в ряд много объектов Box и анимировать параметр Height (высота). Или этот способ не подходит?

а жизнь упростить то хочется))
Жизнь можно попробовать упростить с помощью программирования (MaxScript).
Выглядеть это должно приблизительно так
Если ты не умеешь программировать, тогда нужно объяснить программисту очень подробно условия задачи.
Программист любит точные данные. Ему тяжело понять, что означает "выглядеть приблизительно".

Есть ли возможность завязать выдавливание с траекторией /чтобы не выдавливать каждый полигон отдельно/?
Допустим нужно сделать анимацию графика количества проданных объектов (штуки) для 3 лет: 2009 (15 штук), 2010 (30 штук), 2011 (8 штук).
Объясни как ты вручную создаешь траекторию, для этого примера. Предоставь скрин (картинку).
1. Сколько вершин (Vertices) имеет сплайн?
2. Расстояния между вершинами сплайна одинаковое по горизонтали?
3. Вершины сплайна являются Corner или Smooth?
4. Сколько всего полигонов ты будешь выдавливать для 3 лет?
 

JBond

Знаток
Рейтинг
33
#11
Идея может быть такой:

- рисуем сплайн например на виде сбоку по сетке, примерно на тех коорд которые нам нужны. Пусть например будет дуга с пиком посередине
- конвертируем спланй в mesh
- внизу строго под сплайном строим ряд кубиков на целую длину сплайна
- затем создать ray от кубика до меша сплайна. Найти расстояние от центра кубика до точки пересечения если возможно
- потом с шагом анимировать скейл кубиков на эту высоту и иметь параметр контроля шага анимации. Например в первом кадре анимируется первый куб во втором второй и т.п. Offset будет задавать шаг например первый анимируется в первом кадре, второй в 3, третий в 5 ом.
Если даже технически не так то идея понятна. Рисуем сверху сплайн и строим внизу линейный массив кубиков.Это все вручную - скрипт только анимирует разницу расстояния между ними.
 

INCUS

Знаток
Рейтинг
29
#12
Ещё идея может быть такой:

Есть такой модификатор Vol.Select который позволяет выделять подобъекты объекта,
с помощью другого меш объекта.
Тык вот, строим квадратный Plan 1Х1. (Торец одного из наших кубиков графика)
Рядом, строим продолговатый (на всю длину будущего графика) бокс, вроде лежащего квадратного бруса.
Этим боксом будем выделять все квадратики. Его на рендере нужно будет скрыть.
Выделяем Plan, назначаем Vol.Select , в параметрах Stack Selection Level ставим Face.
В Select By , ставим Mesh Object, жмём None, выбираем наш брус.
Сверху на Vol.Select нашего квадратика, поставим модификатор Face Extrude.
Зададим значение выдавливания для первого столбца.
Теперь можно расклонировать эти квадратики...нужное кол-во штук в ряд.
Что бы у каждого из них сработал свой Экструд, нужно наехать на них брусом.
Наехать на всех сразу и подстроить каждому свои значения экструда....
И всё....елозить туды-сюды.
Всё это хозяйство вожно пустить по любой разумной траектории.
 

Вложения

Sumdex

Пользователь сайта
Рейтинг
2
#13
Ещё идея может быть такой:

Есть такой модификатор Vol.Select который позволяет выделять подобъекты объекта,
с помощью другого меш объекта.
Тык вот, строим квадратный Plan 1Х1. (Торец одного из наших кубиков графика)
Рядом, строим продолговатый (на всю длину будущего графика) бокс, вроде лежащего квадратного бруса.
Этим боксом будем выделять все квадратики. Его на рендере нужно будет скрыть.
Выделяем Plan, назначаем Vol.Select , в параметрах Stack Selection Level ставим Face.
В Select By , ставим Mesh Object, жмём None, выбираем наш брус.
Сверху на Vol.Select нашего квадратика, поставим модификатор Face Extrude.
Зададим значение выдавливания для первого столбца.
Теперь можно расклонировать эти квадратики...нужное кол-во штук в ряд.
Что бы у каждого из них сработал свой Экструд, нужно наехать на них брусом.
Наехать на всех сразу и подстроить каждому свои значения экструда....
И всё....елозить туды-сюды.
Всё это хозяйство вожно пустить по любой разумной траектории.
Огромное спасибо, очень помогло!

Я порой поражаюсь насколько простыми и интересными бывают возможности Макса))
 

Sumdex

Пользователь сайта
Рейтинг
2
#14
Только вот Track Visibility не срабатывает...Мож там есть уловки какие-то?

В Curve Editor всё настроил...вроде как, всё...
 

Вложения

JBond

Знаток
Рейтинг
33
#15
Visibility track 0- невидим 1 - видим.если нужно чтобы обьект появился быстро или пропал - шаг Step
 

igorznag

Мастер
Рейтинг
103
#17
1. Выдели объект Box01 (брус).
2. В главное меню Edit выбери пункт Object Properties.
3. В окне Object Properties на вкладке General в группе Rendering Control выключи Renderable.
 

JBond

Знаток
Рейтинг
33
#18
Пробный скрипт

1.Создаем сплайн по форме графика который нужен. Делаем его мешем и конвертируем в Editable Poly
2. Создаем кубики маленькой высоты и клонируем под бывшим сплайном .

Запускаем скрипт выбираем бывший сплайн кнопкой Select Limiter.
Выделяем все боксы и жмем Animate.
Offset - увеличивать если боксы не дотянут до лимитера или наоброт. Т.е. фактически множитель.

Ключи в Step ставить если нужно чтобы резко подымались.


Скрипт тут

http://www.filesonic.com/file/1671902424/AnimateGraphic.rar
 

Вложения

INCUS

Знаток
Рейтинг
29
#19
2 J-Bond
Ну, голова...
Интересно, в твоём скрипте, найдётся место для какого-нибудь Spring, ну, что бы столбцы не сразу достигали своего лимитера, а немного, сначала, пружинили...как в ролике ?
 

JBond

Знаток
Рейтинг
33
#20
Ты имеешь ввиду, чтобы они сначала резко поднимались выше потом плавно опускались?
 
Сверху