Статьи

Как создать мультфильм с помощью Rhino: практическое руководство

Илья Татарников

Илья Татарников

Аннотация

Программой для трехмерного моделирования Rhinoceros (сокращенно Rhino, Райно — от англ. носорог) пользуются 150 тыс. человек по всему миру. Легкая в освоении и в то же время обладающая развитым аппаратом моделирования поверхностей свободной формы, Rhino используется совместно с сотней подключаемых модулей, созданных для нее как компанией McNeel (разработчиком основной программы), так и независимыми разработчиками.

В данном практическом руководстве мы рассмотрим возможность создания в Rhino собственного анимационного фильма (мультфильма) по мотивам известного ролика студии Pixar. Для работы нам потребуется:

  1. Программа Rhino; ее пробную версию можно скачать здесь: download.rhino3d.com/rhino/4.0/eval
  2. Подключаемый модуль Flamingo для фотореалистичного рендеринга: download.rhino3d.com/eval/?p=8
  3. Подключаемый модуль RhinoAssembly: DrivingDimensions.com/download
  4. Любая бесплатная программа для создания MPEG-файла из серии отрендеренных кадров (например, ffmpeg: www.ffmpeg.org)
  5. Около 3 часов свободного времени (без учета затрат на процесс рендеринга)

Ключевую роль в создании анимационного фильма играет модуль RhinoAssembly, с помощью которого мы определяем кинематику лампы, т.е. опосредованно задаем возможные траектории движения ее частей друг относительно друга с помощью геометрических ограничений и управляющих размеров. Встроенные возможности RhinoAssembly позволяют нам затем создавать анимацию путем варьирования одного или нескольких параметров механизма. Важной особенностью RhinoAssembly является возможность генерации графических образов фреймов, из которых затем несложно составить анимационный фильм. Подробнее о возможностях подключаемого модуля RhinoAssembly читайте в статье «Создание конструктивной концепции в Rhino 3D».

Шаг 1. Трехмерное моделирование персонажей фильма

Изначально у нас имелась модель Pixar lamp jr, которую удалось найти на бескрайних просторах Интернета. Недостатком этой модели, а точнее — серьезным ограничением при ее использовании было то, что создана она была в программе SketchUp, что влекло за собой «сеточную» структуру, и, следовательно — невозможность использования c Rhinoceros в сочетании с RhinoAssembly (где требуется представление геометрии в виде NURBS — неоднородных рациональных базовых сплайновых кривых и поверхностей).

Для преодоления этого ограничения было решено воспроизвести геометрию модели непосредственно в Rhinoceros. Для чего были проведены замеры в SketchUp и построены аналогичные детали в Rhinoceros.

В результате моделирования получили 24 детали.

Читателям, не владеющим в должной мере техникой трехмерного моделирования в Rhino (описывать ее в рамках настоящего практического руководства мы не собираемся), предлагаем загрузить уже готовую трехмерную модель лампы  с нашей страницы Sample Models и перейти сразу к шагу 2.

Шаг 2. Сборка механизма лампы

При помощи подключаемого модуля (plug-in) RhinoAssembly мы последовательно задали геометрические ограничения для позиционирования деталей механизма относительно друг друга и в пространстве, а так же задали размерные ограничения для последующей анимации.

Всего в модели было задано порядка 80-и ограничений. В том числе: Rigidset (своеобразное группирование) — 3; Совпадение — 24; Концентричность — 31; Фиксация — 5; Касательность — 1; Угол — 5; Расстояние — 1.

Рассмотрим, например, как с помощью RhinoAssembly можно разместить лампочку в абажуре. Для этого мы создаем следующие ограничения: одно совпадение и одну концентричность (вращение лампы в патроне мы не ограничиваем).

Для создания ограничения совпадения выбираем на панели инструментов RhinoAssembly инструмент coincidence (совпадение) Coincidence и указываем совпадающие грани в модели:

По просьбе инструмента выбираем «первый» и «второй» объекты для операции (после выбора грани мышкой, она подсвечивается в графической области).

Грани соответствующих деталей теперь совпадают.

Следующая операция — это задание концентричности патрона абажура и цоколя лампы. Для этого запускаем инструмент concentricity (концентричность) Concentric и указываем цилиндрические части деталей, которые должны быть концентричны.

В результате мы получили необходимое нам взаимное расположение деталей.

Так же в модели были заданы размерные ограничения, которые определяли изменение углов между сочлененными компонентами:

Тем, кто не хочет создавать 80 ограничений с нуля, предлагаем загрузить готовую модель с ограничениями  с нашей страницы Sample Models и перейти к шагу 3.

Шаг 3. Установка света

Так же, для фотореалистичной анимации необходимо было правильно расположить источники света и настроить их параметры:

В качестве источников света использовались два источника прожекторного типа (spotlight), один из которых светил из лампы, а другой засвечивал саму лампу. А также направленный источник, для подсветки всей сцены. Материал (polished silver) для всей модели был выбран из стандартного набора, поставляемого в комплекте с Flamingo.

Шаг 4. Анимация и рендеринг

По выбранному сценарию предполагалось, что в финальной анимации лампа должна выполнять три действия: поиск шарика, слежение за шариком, «радость». Решено было делать три отдельные анимации, а затем их «склеить».

Еще одним аспектом при создании анимации было то, что на выходе мы имеем последовательный набор кадров, отрисованных рендером программы Flamingo, которые мы получали, запустив процесс рендеринга кнопкой render из окна Assembly Animation.

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

Последовательность анимации:

  1. Поиск. Этот этап анимации был создан путем задания начальных и конечных величин углов интересующих нас сочленений. Затем «проиграли» кадры в обратном порядке, для возврата механизма в первоначальное положение.
  2. Слежение. На этом этапе было создано дополнительное ограничение, которое позволяло совместить центр шара с осью лампы. При этом выключались угловые ограничения из первого этапа, и конструкция всецело управлялась перемещением шара.
  3. «Радость». Завершающий этап, в котором помимо отключения угловых ограничений из первого этапа, так же, отключалось ограничение фиксации основания лампы и создавалось дополнительное ограничение расстояния между основанием и подложкой. Это ограничение и анимировалось в заданных пределах, и по отработанной схеме запускалось в обратном порядке.

В результате проведенных манипуляций мы получили три набора изображений (для каждого из них мы использовали разные префиксы), которые осталось только объединить в один набор и создать на его основании AVI или MPEG файл.

Шаг 5. Создание ролика по серии статических образов

Существует много бесплатных программ для решения этой задачи. Мы предпочитаем использовать ffmpeg. Для этого достаточно перейти в папку с образами (которые имеют имена Render_0001.bmp, Render_0002.bmp и т.д.) и выполнить команду

ffmpeg -f image2 -i Render1_%04d.bmp Episode1.mpg

Затем три ролика можно склеить в один командой:

copy /B Episode1.mpg+Episode2.mpg+Episode3.mpg Movie.mpg


Вот что у нас получилось:


Заключение

В настоящем практическом руководстве мы рассмотрели возможность создания собственного мультфильма по трехмерной модели механизма с двигающимися частями. Подобным образом с помощью подключаемого модуля RhinoAssembly и любого рендеринг-плагина можно создать высококачественные ролики, демонстрирующие предметы в движении (автомобиль с открывающимися дверями и раскладывающейся крышей, трансформируемая мебель, промышленный робот и др.) Некоторые из таких роликов можно найти на сайте Videos.

Разработчики подключаемого модуля RhinoAssembly ответят на все ваши вопросы по условиям его приобретения и использования, а также с благодарностью выслушают ваши советы по его возможному улучшению и развитию. Пишите по адресу Rhino@DrivingDimensions.com или воспользуйтесь онлайн-форумом пользователей плагинов Driving Dimensions: User Forums

Об авторе

Илья Татарников обладает 8-летним опытом проектирования промышленных изделий с помощью САПР и тестирования ПО САПР. Окончил Новосибирский Государственный Технический Университет по специальности «Средства поражения и боеприпасы». С 2006 по 2008 гг. Работал в компании ProPro Group, где занимался техническим сопровождением клиентов, обучением, подготовкой учебных и демонстрационных материалов. Участвовал в работах по обеспечению качества разрабатываемого ПО. С 2008 г. работает в компании ЛЕДАС менеджером по инженерному консалтингу и качеству программного обеспечения. Решает вопросы взаимодействия с клиентами, ведет работы по обеспечению качества разрабатываемого ПО, разрабатывает сценарии его промышленного использования, готовит демонстрационные материалы. Профессионально владеет инструментами трехмерного моделирования SolidWorks, SketchUp, Rhino, bCAD.

О компании ЛЕДАС

ЗАО «ЛЕДАС» — независимая софтверная компания, образованная в Новосибирском Научном Центре (Академгородке) Сибирского отделения Российской Академии Наук в 1999 г. Являясь лидером в области вычислительных технологий, основанных на аппарате математических ограничений, ЛЕДАС хорошо известен как поставщик программных компонентов PLM (систем управления жизненным циклом изделия): решателя геометрических ограничений для САПР (CAD/CAM/CAE), оптимизирующего процессора для систем управления проектами, планирования рабочей силы и организации собраний, интервальных технологий для организации баз знаний и совместного проектирования в САПР.

Компания также предоставляет услуги в области PLM+ERP: разработка ПО, консалтинг, распространение продуктов партнеров, образовательные тренинги. Подробная информация о компании ЛЕДАС доступна по адресу www.ledas.ru.

Названия RhinoAssembly, RhinoDirect, DrivingDimensions и LGS 3D являются торговыми марками ЗАО «ЛЕДАС». Все другие упомянутые торговые марки являются собственностью их соответствующих владельцев.

Поделиться:


Читайте также: