Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні.doc
Скачиваний:
8
Добавлен:
06.02.2016
Размер:
8.15 Mб
Скачать

Роботазreactor 2

При створенні анімаційних сцен розробники тривимірної графіки нерідко потрапляють в ситуацію, коли сцена виглядає «мертвою». Неначебто і текстури підібрані непогано, і джерела світла правильно розставлені, а анімація все одно виглядає мляво. Причина криється в тому, що всі об'єкти реального життя постійно змінюються — штори слабо рухаються, по озеру біжать дрібні хвилі і т.д.

Розробнику тривимірної графіки дуже важко відтворити таку картину. Динаміка рухів в сцені повинна підкорятися законам фізики, інакше картина буде нереалістичною. Зі всього різноманіття подібних задач можна виділити декількох основних: симуляція властивостей матерії, зіткнення пружних тіл і моделювання рідин. Алгоритм рішення цих проблем настільки складний, що його розробкою займаються цілі дослідницькі інститути. При моделюванні складних анімаційних сцен зручно користуватися вбудованим в 3ds max 7 модулем reactor 2. Використовуючи даний модуль при створенні динаміки в сценах 3ds max 7, можна моделювати сцени, в яких присутні пружні і гнучкі тіла, а також водні поверхні.

Спробуємо створити падіння тіл за допомогою модуля reactor 2. В даному прикладі працюватимемо з групами об'єктів Rigid Bodies (Тверді тіла) і Soft Bodies (Гнучкі тіла). нескладно здогадатися, що падаючий об'єкт буде гнучким, а об'єкт, на який він падатиме, — твердим. Для створення твердого тіла використовуємо об'єкт Quad Patch (Чотирикутний фрагмент), для створення гнучкого — стандартний примітив Teapot (Чайник).

Перейдіть на вкладку Create (Створення) командної панелі, в категорії Geometry (Геометрія) виберіть рядок Patch Grids (патч-поверхні) і натискуйте кнопку Quad Patch (Чотирикутний фрагмент). Перемкніться на вкладку Modify (Зміна) командної панелі і встановіть для створеного об'єкту достатні параметри Width (Ширина) і Length (Довжина). Створіть у вікні проекції чайник, для чого перейдіть на вкладку Create (Створення) командної панелі, в категорії Geometry (Геометрія) виберіть рядок Standard Primitives (Стандартні примітиви) і натискуйте кнопку Teapot (Чайник). Розташуйте цей об'єкт над поверхнею. На панелі інструментів reactor натискуйте кнопку Create Rigid Body Collection (Створити групу твердих тіл) (мал. 4.79). В настройках цього допоміжного об'єкту натискуйте кнопку Pick (Занести), а потім виділіть об'єкт Quad Patch (Чотирикутний фрагмент). Ви побачите, що об'єкт занесений в список твердих тіл (мал. 4.80).

Мал. 4.79. Кнопка Create Rigid Body Collection (Створити групу твердих тіл) на панелі інструментів reactor

Мал. 4.80. Сверток RB Collection Properties (Властивості групи твердих тіл) настройок допоміжного об'єкту Rigid Body Collection (Група твердих тіл)

Тепер перетворюваний чайник в Soft Bodies (Гнучкі тіла). Виділіть об'єкт Teapot (Чайник), перейдіть на вкладку Modify (Зміна) командної панелі і виберіть із списку Modifier List (Список модифікаторів) модифікатор FFD 4x4x4.

Це модифікатор потрібен для того, щоб при падінні чайник правильно деформувався (мал. 4.81).

Мал. 4.81. Чайник після використання модифікатора FFD 4x4x4

Тепер застосуємо до чайника ще один модифікатор — reactor SoftBody. Зробити це можна, вибравши модифікатор із списку Modifier List (Список модифікаторів) або ж натискуючи кнопку Apply reactor SoftBody Modifier (Застосувати модифікатор reactor SoftBody) на панелі інструментів reactor. В свитку Properties (Властивості) настройок модифікатора задайте наступні значення: Mass (Маса тіла) — 1, Stiffness (Жорсткість) — 0,18, Damping (Амортизація тіла) — 0,2, Friction (Коефіцієнт тертя) — 0,5. Встановіть перемикач в положення FFD Based (На основі FFD) (мал. 4.82).

Мал. 4.82. Настройки модифікатора reactor SoftBody

Однією з переваг і одночасно недоліків модуля reactor 2 є дуже велика кількість настройок, в яких легко заплутатися навіть досвідченому користувачу. З цієї причини при моделюванні зручно використовувати основні параметри з файлів прикладів, що входять в поставку модуля, що підключається.

На панелі інструментів reactor натискуйте кнопку Create Soft Body Collection (Створити групу гнучких тіл). В настройках цього допоміжного об'єкту натискуйте кнопку Pick (Занести), а потім виділіть об'єкт Teapot (Чайник). Ви побачите, що об'єкт занесений в список гнучких тіл (мал. 4.83).

Мал. 4.83. Сверток Properties (Властивості) настройок допоміжного об'єкту Soft Body Collection (Група твердих тіл)

Виділіть об'єкт Quad Patch (Чотирикутний фрагмент). Перейдіть на вкладку Utilities (Утиліти) командної панелі і натискуйте кнопку reactor. В свиті Properties (Властивості) встановите перемикач в положення Use Mesh (Використовувати оболонку). В свиті Preview & Animation (Попередній перегляд і анімація) натискуйте кнопку Create Animation (Створення анімації) (мал. 4.84).Якщо в свиті Utils (Утиліти) встановлений прапорець Analyze Before Simulation (Проаналізувати перед прорахунком), то програма спочатку проведе аналіз задачі і, якщо помилок не буде, почне прорахунок. Інакше вона видасть повідомлення, наприклад, про те, що тіло не відноситься до групи Soft Body Collection (Група гнучких тіл) (мал. 4.85).

Мал. 4.84. Настройки модуля reactor

За відсутності помилок програма почне прорахунок анімаційної сцени. Якщо в свертку Preview & Animation (Попередній перегляд і анімація) встановити прапорець Update Viewports (Обновляти вигляд у вікнах проекцій), то протягом прорахунку ви зможете спостерігати зміну положення об'єктів в сцені. Після обробки даних можна буде відтворити анімацію. Для падаючого тіла буде створена велика кількість ключових кадрів. Одержана анімація виглядатиме таким чином: чайник, падаючи, трохи деформується так, ніби він гумовий, підстрибне і знову впаде.

Мал. 4.85. Помилка, знайдена програмою в поточній сцені

Створення води

Процес створення тривимірного зображення води за допомогою модуля reactor 2 дуже вдало реалізований. Шляхом нескладних операцій можна швидко і легко змоделювати реалістичну водну поверхню. Наскільки це просто, судіть самі. Створіть у вікні проекції об'єкт Plane (Площина). Натискуйте кнопку Create Water (Створити воду) (мал. 4.86) на панелі інструментів reactor і створіть об'ємну деформацію у вікні проекції.

Мал. 4.86. Кнопка Create Water (Створити воду) на панелі інструментів reactor

Мал. 4.87. Кнопка Water (Вода) в списку reactor категорії Space Warps (Об'ємні деформації)

Мал. 4.88. Кнопка Bind to SpaceWarp (Пов'язати з об'ємною деформацією) на основній панелі інструментів

Натискуйте кнопку Bind to Space Warp (Пов'язати з об'ємною деформацією) на основній панелі інструментів (мал. 4.88), клацніть на створеній об'ємній деформації Water (Вода) і, не відпускаючи кнопку миші, перемістіть покажчик миші на об'єкт Plane (Площина). Вода готова. Коли об'єкт буде пов'язаний з об'ємною деформацією, він на одну секунду підсвітиться. Щоб на площині з'явилися спотворення, характерні для водної поверхні, постарайтеся, щоб об'ємна деформація і об'єкт Plane (Площина) співпадали за розміром, а також по тому, як розташовані (мал. 4.89).

Мал. 4.89. Розташовує об'єкту Plane (Площина) і об'ємної деформації Water (Вода) у вікнах проекцій

Щоб переконатися, що створений об'єкт має всі властивості води, необхідно створити якийсь об'єкт типа Rigid Body (Тверде тіло) і «кинути» його у воду. Створіть у вікні проекції об'єкт, наприклад стандартний примітив Teapot (Чайник), і розташуєте його над поверхнею води. На панелі інструментів reactor натискуйте кнопку Create Rigid Body Collection (Створити групу твердих тіл). В настройках цього допоміжного об'єкту натискуйте кнопку Pick (Занести), а потім виділіть об'єкт Teapot (Чайник). Об'єкт буде занесений в список твердих тіл (мал. 4.90). Щоб деформація води при падінні в неї об'єкту була краще помітна, тіло потрібне зробити важким. Виділіть об'єкт Teapot (Чайник). Перейдіть на вкладку Utilities (Утиліти) командної панелі і натискуйте кнопку reactor. В свертку Properties (Властивості) вкажіть значення параметра Mass (Маса об'єкту) рівної 50 (мал. 4.91).

Мал. 4.90. Сверток RB Collection Properties (Властивості групи твердих тіл) настройок допоміжного об'єкту Rigid Body Collection (Група твердих тіл)

Мал. 4.91. Сувій Properties (Властивості) настройок модуля reactor

Тепер необхідно набудувати об'єкт Water (Вода). Він містить наступні параметри:

  Subdivisions X (Розбиття по осі X) і Subdivisions У (Розбиття по осі У) — чим більше значення даних параметрів, тим більше точно прораховується поверхня;

  Wave Speed (Швидкість хвиль);

  Min Ripple (Мінімальне спотворення) і Max Ripple (Максимальне спотворення) — задають хвилі на поверхні води;

  Density (Густина) — визначає густину рідини;

  Viscosity (В'язкість) — при зміні значення даного параметра рідина може перетворитися, наприклад, з води в клей;

  Landscape (Віддзеркалення) — якщо задіювати цю функцію і вибрати яке-небудь тіло, що відноситься до групи Rigid Body (Тверде тіло), то хвилі, натрапляючи на нього, відбиватимуться.

Щоб на водній поверхні виникли спотворення, збільште значення параметрів Min Ripple (Мінімальне спотворення) і Max Ripple (Максимальне спотворення) в 10 разів, а також зменште параметр Density (Густина) до 0,7.

В свертку Preview & Animation (Попередній перегляд і анімація) настройок модуля reactor натискуйте кнопку Create Animation (Створення анімації). Якщо в свертку Utils (Утиліти) встановлений прапорець Analyze Before Simulation (Проаналізувати перед прорахунком), то програма спочатку проведе аналіз задачі і, якщо помилок не буде, почне прорахунок. Інакше вона видасть повідомлення, наприклад, про те, що тіло не відноситься до групи Soft Body Collection (Група гнучких тіл). За відсутності помилок програма почне прорахунок анімаційної сцени. Якщо в свиті Preview & Animation (Попередній перегляд і анімація) встановлений прапорець Update Viewports (Обновляти вигляд у вікнах проекцій), то протягом прорахунку ви зможете спостерігати зміну положення об'єктів в сцені. Після обробки даних можна буде відтворити анімацію. Одержана анімація виглядатиме таким чином: чайник падає у воду і деформує її поверхню — від об'єкту, що впав, розходяться хвилі.

Тип дії Fracture (Руйнування)

В даному прикладі розглянемо роботу з одним з найцікавіших типів Actions (Дії), з яким працює модуль reactor, — Fracture (Руйнування). Його задача — полегшити моделювання сцени, що ілюструє руйнування об'єкту. Наприклад, за допомогою Fracture (Руйнування) можна змоделювати сцену, в якій падаючий з великої висоти табурет розлітається на частини, ударившися об землю.

Спробуємо створити подібну сцену. Табурет зробимо з п'яти примітивів Box (Паралелепіпед), чотири з яких виконуватимуть роль ніжок, а п'ятий — сидіння (мал. 4.92). Тепер необхідно зробити площину, на яку падатиме об'єкт. Створіть у вікні проекції об'єкт Plane (Площина). На панелі інструментів reactor натискуйте кнопку Create Rigid Body Collection (Створити групу твердих тіл). В настройках цього допоміжного об'єкту натискуйте кнопку Pick (Занести), а потім виділіть об'єкт Plane (Площина). Ви побачите, що об'єкт занесений в список твердих тел. Виділіть також всі об'єкти, що становлять табурет, і занесіть їх в цей список.

Мал. 4.92. Табурет, створений з паралелепіпедів

Елементи, що становлять табурет, групувати не треба — Fracture (Руйнування) не працює із згрупованими об'єктами.

Потім на панелі інструментів reactor натискуйте кнопку Create Fracture (Поруйнувати) (мал. 4.93). В настройках цього допоміжного об'єкту натискуйте кнопку Pick (Занести), а потім виділіть всі об'єкти Box (Паралелепіпед), складові табурету (мал. 4.94).

Якщо перед натисненням кнопки Create Fracture (Разрушеніть) виділити всі об'єкти Box (Паралелепіпед), то вони автоматично будуть занесені в список тіл, що піддаються дії.

Настройки розбиття об'єктів знаходяться в свертку Properties (Властивості) допоміжного об'єкту Fracture (Руйнування). Для кожного елемента, занесеного в список дії, можна вказати один з чотирьох варіантів розбиття:

  Normal (Звичайний) — при деякому значенні імпульсу елемент «відламується»;

  Unbreakable (що не розбивається) — елемент залишиться цілим;

  Keystone (Основа) — якщо імпульс у момент удару буде достатній для того, щоб елемент був зруйнований, то розламається все тіло;

  Break at time (Розбити в указаний час) — елемент буде зруйнований у вказаний користувачем час.

Мал. 4.93. Кнопка Create Fracture (Поруйнувати) на панелі інструментів reactor

Мал. 4.94. Сувій Properties (Властивості) настройок допоміжного об'єкту Fracture (Руйнування)

Основні параметри розбиття — це Impulse (Імпульс зіткнення) і Energy Loss (Втрата енергії), характеризуючий величину втрати енергії при ударі. Вкажемо для всіх елементів варіант розбиття Normal (Звичайний), решту настройок залишимо за замовчанням. Кожному елементу табурета необхідно задати масу 11 кг. Для цього необхідно виділити об'єкт, перейти на вкладку Utilities (Утиліти) командної панелі і натискувати кнопку reactor. Потім в свертку Properties (Властивості) вказати значення параметра Mass (Маса об'єкту).

В 3ds max 7 досить часто зустрічаються фізичні величини. На перший погляд, це ускладнює роботу, тому що не завжди на око можна визначити, наприклад, коефіцієнт тертя або величину втрат енергії при ударі. Проте, з другого боку, з'являється можливість точно описати фізичну задачу.

Перейдіть до свитку Preview & Animation (Попередній перегляд і анімація). В процесі роботи над складною сценою зручно використовувати команду Preview in Window (Попередній перегляд у віконному режимі). При її виконанні з'являється вікно, усередині якого буде апаратний візуалізований перший кадр (мал. 4.95). Щоб програти анімацію, потрібно в списку Simulation (Імітація), що розкривається, вибрати рядок Play/Pause (Програти/Пауза). Тут же можна вказати промальовування сітчастої поверхні для кожного об'єкту, по якій модуль прораховує взаємодії.

Мал. 4.95. Вікно reactor Real-Time Preview (Попередній перегляд в реальному часі)

Якщо результат, який ви бачите у вікні попереднього перегляду, вас влаштовує, натискуйте кнопку Create Animation (Створення анімації). Якщо ж в сверток Utils (Утиліти) встановлений прапорець Analyze Before Simulation (Проаналізувати перед прорахунком), то програма спочатку проведе аналіз задачі і, якщо помилок не буде, почне прорахунок. Інакше вона видасть повідомлення, наприклад, про те, що тіло не відноситься до групи Soft Body Collection (Група гнучких тіл) (див. мал. 4.85).

За відсутності помилок програма почне прорахунок анімаційної сцени. Якщо в свиті Preview & Animation (Попередній перегляд і анімація) встановлений прапорець Update Viewports (Обновляти вигляд у вікнах проекцій), то протягом прорахунку ви зможете спостерігати зміну положення об'єктів в сцені. Після обробки даних можна буде відтворити анімацію. Одержана анімація виглядатиме таким чином: табурет летить, падає на площину і розбивається.

Імітація тканини

Довгий час програма 3ds max мала великий недолік — в ній був відсутній засіб імітації тканини. З появою модуля reactor ця задача стала розв'язуватися швидко і просто. В даному прикладі розглянемо створення сцени, в якій стіл покриватиметься скатертиною.

Спочатку змоделюємо стіл. Створіть у вікні проекції стандартний примітив Box (Паралелепіпед). Перейдіть на вкладку Modify (Зміна) командної панелі і в настройках паралелепіпеда вкажіть наступні значення параметрів: Length (Довжина) - 100 і Width (Ширина) - 100, Height (Висота) - 5, Length Segs (Кількість сегментів по довжині) — 11, Width Segs (Кількість сегментів по ширині) — 11, Height Segs (Кількість сегментів по висоті) — 1 (мал. 4.96). Клацніть правою кнопкою миші на назві вікна проекції і в контекстному меню виберіть режим відображення об'єктів Edged Faces (Контури граней). В цьому режимі буде видна сітчаста оболонка об'єкту, що необхідне для виконання подальших операцій з примітивом Box (Паралелепіпед). Щоб надалі можна було змінювати форму півсфери, конвертуйте об'єкт в Editable Mesh (Редагована поверхня). Для цього клацніть правою кнопкою миші на об'єкті і виконайте команду Convert To > Convert to Editable Mesh (Перетворити > Перетворити в редаговану поверхню) (мал. 4.97). Перейдіть на вкладку Modify (Зміна) командної панелі. Розкрійте рядок Editable Mesh (Редагована поверхня) в стеку модифікаторів, клацнувши на плюсі, і перемкнетеся в режим редагування Polygon (Полігон).

Мал. 4.96. Настройки об'єкту Box (Паралелепіпед)

Виділіть чотири полігони, як показано на мал. 4.98, при цьому вони стануть червоними.

Клацніть на кнопці Extrude (Видавлювання) в свертку Edit Polygons (Редагування полігонів) настройок об'єкту на командній панелі або виберіть команду Extrude Polygons (Видавлювання полігонів) в контекстному меню і видавіть полігони на деяку відстань, щоб у столу з'явилися ніжки (мал. 4.99). Вийдіть з режиму редагування Polygon (Полігон). За допомогою операції Rotate (Обертання) поверніть об'єкт навкруги осі X на 180°, щоб ніжки були направлені вниз. Створіть у вікні проекції стандартний примітив Plane (Площина). Перейдіть на вкладку Modify (Зміна) командної панелі і в настройках площини вкажіть наступні значення параметрів: Length (Довжина) — 150 і Width (Ширина) — 150, Length Segs (Кількість сегментів по довжині) — 28, Width Segs (Кількість сегментів по ширині) — 28 (мал. 4.100).

Мал. 4.97. Вибір команди Convert To > Convert to Editable Mesh (Перетворити > Перетворити в редаговану поверхню) в контекстному меню

Мал. 4.98. Виділені полігони

Мал. 4.99. Ніжки столу

Мал. 4.100. Настройки об'єкту Plane (Площина)

Мал. 4.101. Розміщення об'єктів в сцені

Мал. 4.102. Кнопка Create Deforming Mesh Collection (Створити групу об'єктів, що деформують поверхню) на панелі інструментів reactor

Мал. 4.103. Настройки допоміжного об'єкту Deforming Mesh Collection (Група об'єктів, що деформують поверхню)

Розмістіть створену площину щодо столу так, щоб вона була вирівняна в площині XY по центру столу і розміщувалася над ним (мал. 4.101). Потім виділіть стіл і натискуйте кнопку Create Deforming Mesh Collection (Створити групу об'єктів, що деформують поверхню) на панелі інструментів reactor (мал. 4.102). В настройках цієї групи ви побачите, що стіл занесений в неї (мал. 4.103). Виділіть площину, перейдіть на вкладку Modify (Зміна) командної панелі і виберіть із списку Modifier List (Список модифікаторів) модифікатор reactor Cloth. В настройках модифікатора вкажіть значення параметра Friction (Тертя) рівним 2, а також встановіть прапорець Avoid Self-Intersections (Уникати внутрішніх перетинів), що дозволить одержати тривимірну поверхню тканини, яка при деформації не перетинатиме сама себе (мал. 4.104).

Ви також можете застосувати до об'єкту модифікатор reactor Cloth, натискуючи кнопку Apply reactor Cloth Modifier (Застосувати модифікатор reactor Cloth) на панелі інструментів reactor.

Виділіть площину і натискуйте кнопку Create Cloth Collection (Створити групу об'єктів, що імітують тканину) на панелі інструментів reactor (мал. 4.105). В настройках цієї групи ви побачите, що площина занесена в неї (мал. 4.106). Виділіть всі елементи столу. Перейдіть на вкладку Utilities (Утиліти) командної панелі і натискуйте кнопку reactor. В свертку Properties (Властивості) встановите значення параметра Friction (Тертя) рівним 5. В свертку Preview & Animation (Попередній перегляд і анімація) натисніть кнопку Create Animation (Створення анімації). Якщо в свертку Utils (Утиліти) встановлений прапорець Analyze Before Simulation (Проаналізувати перед прорахунком), то програма спочатку проаналізує задачу і, якщо помилок не буде, почне прорахунок. Інакше вона видасть повідомлення, наприклад, про те, що тіло не відноситься до групи Cloth Collection (Група об'єктів, що імітують тканину). За відсутності помилок програма почне прорахунок анімаційної сцени. Якщо в свиті Preview & Animation (Попередній перегляд і анімація) встановити прапорець Update Viewports (Обновляти вигляд у вікнах проекцій), то протягом прорахунку ви зможете спостерігати зміну положення об'єктів в сцені. Після обробки даних можна буде відтворити анімацію — ви побачите, що скатертина опускається на стіл і її краї змінюють своє положення так, як це відбувається з тканиною в реальному житті (мал. 4.107).

Мал. 4.104. Настройки модифікатора reactor Cloth

Мал. 4.105. Кнопка Create Cloth Collection (Створити групу об'єктів, що імітують тканину) на панелі інструментів reactor

Мал. 4.106. Настройки допоміжного об'єкту Cloth Collection (Група об'єктів, що імітують тканину)

Мал. 4.107. Результат прорахунку сцени за допомогою модуля reactor 2

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]