Управління камерою в blender game engine

Далеко не рідкісними бувають ситуації, коли сцена занадто велика для повноцінного її огляду за допомогою нерухомої камери. Тому необхідно, щоб камера рухалася, стежачи за об'єктами, або на сцені були присутні кілька камер, між якими можна було б перемикатися. Припустимо, ми придумали гру, в якій куля повинна подолати перешкоди, перестрибуючи їх, не штовхаючи при цьому (інакше перегородки впадуть). Шлях, який куля повинна пройти дуже довгий. Якщо камера весь час залишається на місці, то варто кулі трохи просунутися вперед, як стане важко або неможливо їм управляти.

1. Зв'язок батько-нащадок (Ctrl + P)

Даний зв'язок широко використовується в Blender для того, щоб зміни об'єкта-«батька» відразу приводили до змін об'єктів-«дітей» (але не навпаки). Якщо «предок» змінює своє положення, розмір, поворот, то слідом за ним ці властивості змінюються і у «нащадка». Для прикладу описаного вище, це означає, що якщо встановити кулю як батько, а камеру в якості нащадка, то будь-яке переміщення кулі, в тому числі і в режимі гри, змусить камеру рухатися за ним.

Зв'язок встановлюється так:

  1. Спочатку виділяється нащадок (в даному випадку, камера).
  2. Потім (з затиснутою клавішею Shift) виділяється предок (в даному випадку, куля).
  3. Для установки зв'язку батько-нащадок слід натиснути комбінацію клавіш Ctrl + P (якщо в подальшому буде потрібно зняти зв'язок, то слід виділити обидва предмети і натиснути Alt + P).

Однак запустивши режим гри можна зіткнутися з проблемою: куля не тільки рухається, але і повертається. Слідом за ним буде крутитися і камера, вид з камери при цьому буде варіювати від дивного до ще більш дивного. Щоб камер не крутилася, її можна прив'язати ні до цілого об'єкта, а до його будь-якій вершині. Вершина - це точка. Крапки не крутяться. Тоді послідовність дій буде такою:

  1. Виділити камеру.
  2. Виділити шар-батько (з затиснутим Shift).
  3. Переключитися в режим редагування.
  4. Виділити будь-яку вершину кулі.
  5. Натиснути Ctrl + P. Вибрати Make vertex parent (зробити вершину батьком).
  6. Вийти з режиму редагування.

Є ще один спосіб постійно стежити за обраним об'єктом: використовувати активатор Camera. Зробити це можна в такий спосіб. Для камери додати пов'язані між собою сенсор Always. контролер і активатор Camera. В поле OB активатора прописати ім'я того об'єкта, за яким планується стежити.

Спочатку настройки Height (висота камери над об'єктом), Min і Max (мінімальне і максимальне відстані від камери до об'єкта) дорівнюють нулю. Однак краще їх змінити. Якщо потрібно, щоб камера дивилася на об'єкт більше збоку, ніж зверху, то Height не повинна мати велике значення.

Активатор Camera забезпечує більш плавне стеження за об'єктом, ніж зв'язок батько-нащадок. При різких рухах об'єкта камера рухається більш м'яко; якщо об'єкт нерухомий, камера все одно продовжує трохи рухатися і повертатися (по осі X або Y). Недоліком цього способу спостереження є те, що якщо об'єкт крутиться, то камера іноді прокручується так, що управляти об'єктом стає незручно.

3. Спостереження за різними об'єктами

Буває, що на 3D-сцені спочатку необхідно стежити за одним об'єктом, а потім за іншим. Щоб реалізувати таку можливість, можна створити для камери не одну групу сенсорів, контролерів і активаторів Camera. Кожен активатор може приводитися в дію натисканням клавіші або клацанням миші. Тоді в режимі гри можна буде перемикати вид з одного об'єкта на інший.

4. Огляд сцени з різних камер

Там, де необхідно не стежити за конкретним об'єктом, а просто оглядати сцену з різних точок зору, то можливо доречніше встановити кілька камер і передбачити можливість перемикатися між ними в режимі гри. Для установки камери використовується активатор Scene -> Set Camera.

  1. Використовуючи можливості ігрового движка Blender, створіть сцену, в якій об'єкт може переміщатися по площинах, розташованим вертикально по відношенню один до одного.
  2. Встановіть стеження за об'єктом за допомогою зв'язку батько-нащадок. Збережіть файл.
  3. Встановіть стеження за об'єктом за допомогою активатора Camera. Збережіть файл під іншим ім'ям.
  4. Відкрийте обидва файли і порівняйте рух камери за об'єктом.
  5. Створіть 3D-сцену з декількома об'єктами. Задайте можливість в режимі гри перемикати вигляд камери з одного об'єкта на інший.
  6. Додайте на нову сцену дві площини, розмістивши на них з будь-якого об'єкту. Розтягнули їх таким чином, щоб одна площина була добре видна в одній камері, при цьому друга виднілася вдалині. У другій камері повинна бути добре видна інша площина, а перша - десь далеко. Організуйте можливість перемикання між камерами за допомогою клацання лівою кнопкою миші по площині далеко.