GIS-LAB

Географические информационные системы и дистанционное зондирование

Анимированные 3D символы в ArcScene

Обсудить в форуме Комментариев — 5Редактировать в вики

Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/arcscene-animated-symbols.html


[править] И всё-таки они вертятся!

Или как создать анимированный 3D символ в ArcScene.

В этой статье я хотел бы поделиться опытом создания анимации слоя в ArcScene. Моей целью было создание небольшой 3D сцены, иллюстрирующей работу ветроэлектростанции. Сцена должна была состоять из ЦММ (создана на основе лидарной съемки, доступной здесь), красивого снимка высокого разрешения и 3D моделей ветрогенераторов (взятых тут).

Поскольку неподвижные турбины не производят должного впечатления, возникло желание заставить их лопасти вращаться. Оказывается, сделать это средствами ArcScene не так уж и просто. Проведя поиск готового решения данной задачи, мне удалось найти только одну рекомендацию – создать несколько слоев с турбинами, лопасти которых находятся в разных положениях и анимировать свойство видимости этих слоев в нужном порядке, чтобы создать эффект вращения. Данный метод мне не понравился из-за своей громоздкости.

Поскольку ArcScene не имеет инструментов для создания анимированных символов, (анимация применяется ко всему слою сразу, как правило, подразумевается, что в слое содержится только один объект) реализовать вращение лопастей турбин можно с помощью создания анимации свойства слоя. Вместо того, чтобы создавать множество одинаковых слоев и показывать их по очереди, я решил использовать составной 3D символ. Он будет состоять из неподвижного основания и вращающихся лопастей. Таким образом, сначала нужно подготовить эти две части. В данном случае можно нарисовать все с нуля самому или взять готовую 3D модель ветрогенератора и разделить на две части. Я выбрал второй вариант. Найти необходимые модели, подходящие для использования в ArcScene, можно на сайте http://sketchup.google.com/3dwarehouse/?hl=ru. Когда найдена подходящая турбина, её можно быстро и без труда отредактировать в ScetchUP, как показано на рисунке 1.

Когда наши модельки готовы, можно приступать к сборке турбины в ArcScene. Предполагается, что уже создан проект, где есть ЦММ, на которой мы будем расставлять наши турбины, в моём случае это выглядело как на рисунке 2. Сначала подключаем точечный слой с турбинами в наш проект и назначаем основание турбины в качестве символа, настраиваем размер и не забываем указать Base Heights в свойствах слоя (рисунок 3). После того, как мы успешно возвели основания турбин, наша сцена должна выглядеть как на рисунке 4.

Рис. 1 разделение модели на 2 части


Рис. 2 ЦММ со снимком


Рис. 3 настройка символа основания турбины


Рис.4 сцена с основаниями турбин

Теперь нужно копировать каждую турбину в отдельный слой. Это необходимо, потому что ArcScene умеет анимировать только слои целиком, а не отдельные объекты слоя. Чтобы не делать это вручную, можно использовать простой алгоритм в Model Builder, приводить его здесь я не буду. Поскольку в моём проекте 13 турбин, то у меня получилось 13 точечных слоев, содержащих один объект (будущие лопасти) каждый. После того как новые слои добавлены в проект, нужно настроить стиль отображения наших лопастей. Самым простым способом сделать это, на мой взгляд, будет вручную настроить стиль одного слоя, а затем использовать инструмент apply symbology from layer и Model Builder для автоматического назначения стиля остальным слоям. К сожалению, мне не удалось автоматически назначить свойство Basic Heights нескольким слоям сразу, пришлось проделать это вручную.

Итак, когда мы назначили соответствующий символ для лопастей, он отобразится не там где ему положено, а примерно в середине башни. Чтобы поставить его на место, нужно пойти в настройки стиля (см. рисунок 3) и подвигать наш символ настройками смещения по осям X, Y и Z. После того, как наш «пропеллер» оказался на своем месте, и мы применили этот стиль ко всем остальным слоям (рисунок 5), можно приступать к созданию анимации.


Рис. 5 готовые составные 3D символы

Как уже было сказано, анимировать мы будем свойства слоя, в нашем случае пространственное положение лопастей. Иными словами, создадим несколько ключевых кадров, поворачивая лопасти на определенный угол. Чем больше создадим кадров, и чем меньше будет угол поворота, тем плавнее будет вращение. По аналогии со стилями (слава Богу!) есть возможность создать анимацию один раз, а потом применить ко многим слоям сразу. Чтобы приступить к созданию ключевых кадров, идем в меню анимации и жмем создать ключевой кадр. В появившемся окне выбираем тип – анимация слоя, объект – один из наших слоев с лопастями, жмем «новый», чтобы создать новый трек. Имя ключевого кадра должно быть «ключевой кадр 1», это значит, что мы работаем с новым треком, а не портим уже существующий. Затем жмем «создать» столько раз, сколько кадров нам необходимо.


Создание ключевых кадров для сцены с анимацией

В данном примере, я создал 16 ключевых кадров, но сколько нужно вам, решайте сами. Когда ключевые кадры созданы, идем в менеджер анимации, где выбираем свой трек (по идее он должен быть один, так как больше мы не создавали) на вкладке треков и переходим во вкладку ключевых кадров, где и будем наконец-то придавать лопастям вращение. Изначально окно ключевых кадров выглядит так.


Менеджер анимации для анимирования символов

Само вращение будем задавать изменяя параметр «вращение» для оси Y, но, поскольку центр лопастей и центр вращения не совпадают, если мы просто повернем лопасти на определенный угол, то они «отвалятся» от основания. Для того, чтобы вернуть их на положенное место придется после каждого поворота подстраивать значения смещения по осям X и Z. Чем тщательнее вы подкорректируете каждый кадр, тем реалистичнее получится анимация. Корректирование положения лопастей в каждом ключевом кадре происходит путём подбора подходящего значения для смещения по осям X и Z, иными словами, их приходится вручную вводить в соответсвующее поле и проверять (кнопка "просмотр" или "view") положение лопастей для каждого кадра. Например, во втором ключевом кадре мы повернули лопасти на 45 градусов, и они, повернувшись, сместились вниз по оси X и влево по оси Z. Чтобы вернуть лопасти на место, нужно добавить смещение вверх по оси X и вправо по оси Z. Величину призодится выяснять опытным путём. В данном примере, получилось 5.5 для X и 1 для Z.

Итак, в данном случае я использовал 16 кадров с поворотом на 45 градусов в каждом. В итоге окно ключевых кадров приобрело следующий вид. Углы вращения отрицательные для того чтобы направление вращения ротора совпадало с углом атаки лопастей.


Менеджер анимации для анимирования символов

После того, как нас утраивает вращение нашей турбины, можно назначить эту анимацию всем остальным слоям. Для этого идем на вкладку с треками, жмем свойства и в появившемся окне добавляем все нужные слои в правую колонку «присоединенных объектов». Жмем ОК, закрываем менеджер анимации. Готово! Теперь можно насладиться зрелищем вращающихся турбин в ArcScene.


Присвоение анимации нескольким слоям


Запуск анимации


Результат

Ссылка на видео: http://www.youtube.com/watch?v=SlcZZBXvt-w&feature=youtu.be

Зеленый фон на видео сделан для того, чтобы затем добавить небо: http://www.youtube.com/watch?v=b3wA-Ot3SZ8&feature=youtu.be

Обсудить в форуме Комментариев — 5Редактировать в вики

Последнее обновление: 2014-05-15 02:08

Дата создания: 06.01.2014
Автор(ы): Reirby


(Геокруг)

Если Вы обнаружили на сайте ошибку, выберите фрагмент текста и нажмите Ctrl+Enter