Як створити стратегію у blender. Візуальне управління GE – логічні блоки Сенсор, Актуатор та Контролер

Видання друге, перероблене та доповнене


Цей урок розповість вам, як з нуля (ну, в Blender, звичайно) створити просту тривимірну гру. Абсолютно без будь-якого програмування мовами, хоча це можливо. Вам необхідно мати базові знання про Blender. Я розраховую на те, що ви вже непогано знаєтеся на інтерфейсі, і на дрібницях на кшталт наведення курсору, натискання лівої кнопки миші, відпускання лівої кнопки миші, натискання і відпускання кнопки G для переміщення і наступного клацання і т.п. я затримуватись не буду.

Для тих, хто має індивідуальну непереносимість російського перекладу:

Російські картинки
Англійські картинки


Щоб отримати доступ до функцій ігрового движка, потрібно переключити рендер на ігровий движок.

Далі ви можете зробити зручний інтерфейс, але в Blender вже все заготовлено. Вибравши макет "Game Logic", ви отримаєте зручний інтерфейс.

Увімкніть режим відображення текстури (Texture), щоб гра виглядала як нам треба.


Запустити гру ви можете, навівши курсор на потрібний 3D-вид (якщо ви встигли зробити їх кілька) і натиснувши P (англійською, російською З, між Щ і Х:)). Можна запустити гру і через меню Гра - Запустити ігровий движок (Game - Start Game Engine). Якщо ви спробуєте запустити гру зараз, нічого цікавого не відбудеться, буде лише сірий кубик на сірому фоні. Натисніть Esc, щоб вийти із гри. Але це не допоможе, якщо ви задіяєте в грі цю клавішу, то будьте обережні;)

Перед запуском гри ви можете натиснути Shift+Пробіл або Ctrl+Вгору/Вниз, щоб розгорнути вікно, над яким знаходиться курсор, на весь екран і щоб не перевіряти гру на маленькому, ледь помітному 3D-віконці. Також ви можете натиснути T або N, щоб приховати ліву та праву панель 3D-виду відповідно.

Ви можете сховати «сміття» на кшталт пустушок, 3D-курсора, сітки тощо, натиснувши N (попередньо навівши курсор на 3D-вид) і в панелі, що з'явилася, у вкладці Відображення (Display) вибравши Тільки візуалізується (Only Render). При цьому фон змінить колір на той, що встановлений у світових налаштуваннях (World).


У цій же панелі через меню Затінення ви можете включити GLSL замість мультитекстурного, що дозволяє робити більш красиву графіку (наприклад, тіні).

Створення матеріалів для гри в цілому збігається зі створенням для Blender Internal Render (поки що це рендер за замовчуванням, але незабаром його замінить Cycles), але є обмеження. Наприклад, не працюють усі процедурні текстури, трасування променів (і, як наслідок, немає тіней у деяких ламп), гало. Рекомендується створювати UV-текстури. Нема частинок, але їх можна імітувати за допомогою великої кількостіоб'єктів (ні, копіювати вручну не треба; їх додавання під час гри розглядається нижче). Без GLSL обмежень ще більше, а освітлення зовсім негарне.

Стаття буде корисна початківцям розробникам ігор. У ній ми розглянемо переваги та способи створення та рендерингу тривимірних об'єктів для ізометричних 2D-ігор на прикладі Blender. У статті не буде якихось складних операцій, достатньо початкових знань 3D-редактора. Для прикладу рендерингу та анімації я взяв вежу з Dune2, і щоб їй було не так нудно однією, доповнив двома спорудами з Desert Strike.

Переваги такого підходу порівняно з відмальовуванням у 2D: швидкість та зручність створення анімацій, простота модернізації моделей (наприклад, для створення апгрейдів будівель), досить хороші результати за низьких витрат часу.

Недоліки: зниження «душевності» зображень та, власне, необхідність знання 3D-моделювання.

Початок роботи, підготовка сцени

За промовчанням "порожній" файл Blender створюється з трьома об'єктами: камерою, джерелом світла та кубиком у центрі. Почнемо налаштування з камери, у її властивостях переключимося з режиму Perspective на Orthographic, потім вкажемо для неї панелі Properties наступні параметри:

Transform
X: 12.0
Y: -12.0
Z: 12.0

(Як бачите, координати мають вигляд N, -N, N, при цьому N може бути будь-яким, адже у нас ортогональна камера)

Rotation
X: 54.8°
Y: 0°
Z: 45°

Якщо все зроблено правильно, то глянувши на сцену через камеру (для цього потрібно натиснути Num0), ми побачимо наш кубик в ізометрії.

Спробувавши відрендерити ( F12) Першу ізометричну пробу, ви переконаєтеся, що грані куба освітлені дуже нерівномірно. Займемося ж світлом! По-перше, у властивостях світу (вкладка World) включимо Ambient Occlusion і вкажемо йому необхідне значення Factor (у прикладі встановлено 0.5). По-друге, змінимо тип джерела світла з Point на Sun. Це потрібно, щоб усі тіні були спрямовані в один бік та не залежали від положення об'єкта щодо джерела світла.


Приклад рендеру із джерелом світла Point


Приклад рендеру із джерелом світла Sun

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

Кубики наші рендеряться на негарному сірому фоні, який звичайно ж потрібно відключити, щоб не мучитися потім з вирізанням фону об'єктів. Для цього у вкладці Render знайдіть розділ Shading і змініть режим Alpha зі Sky на Transparent (якщо ви використовуєте рендер Blender Render) або поставте галочку Transparent у розділі Film (Cycles Render).

З налаштуванням ми закінчили, перейдемо до створення об'єктів, наприклад тієї самої вежі. Думаю, не варто докладно розглядати процес її моделювання, відразу скористаємося тими перевагами, які дає нам тривимірний об'єкт.


Башта бадьоро обертається

У багатьох стратегіях використовують візуальне відображення будівництва будівель: спочатку зводиться фундамент, потім стіни і так далі. Спробуємо зробити щось подібне. Виділимо всі об'єкти в сцені ( A), потім дублюємо їх ( Shift-D) і перемістимо в другий шар ( Mта вибрати потрібний шар). Операцію можна повторювати стільки разів, скільки нам потрібно фази будівництва. Перейдемо в другий шар і зруйнуємо вежу.


Повторимо необхідну кількість разів, et voila!

Постпроцесинг

На початку статті серед недоліків такого підходу я згадав відсутність відчуття «ламповості». На щастя, його можна частково повернути, скориставшись постпроцесингом і вбудованим у Blender двигуном Freestyle. Не розглядатиму його докладно, просто покажу, на що він здатний.


Приклади роботи Freestyle

Сподіваюся, я довів, що створення елементів для двовимірних ігор у «тривимірності» у багатьох випадках швидкий та зручний процес. Дякую за увагу!

Blender – програма для створення анімованої комп'ютерної графіки та виробництва відео. Це, по суті, 3D-редактор, який підтримується багатьма користувачами завдяки відкритому вихідному коду. Але на даному 3D-редакторі завдяки вбудованому ігрового двигуна"Blender Game Engine", можна створювати і ігри будь-якого типу, спрямованості та жанру. Як виявляється, ігри на ньому можна створювати не вдаючись до скриптової мови, яка, до речі, є (Python) для деяких потреб. Стверджують, що ігри на ньому можна створювати за п'ять хвилин. Є довідки та посібники як з користування, і зі створення ігор. Можна ще розраховувати на велике ком'юніті користувачів Blender'а, до яких можна звернутися по допомогу. 3D-графіка має всі навороти OpenGL, різні високі дозволи, підтримка практично всіх популярних аудіо та відео форматів.

Підтримуються всі основні формати 2D графіки: TGA, JPG, PNG, OpenEXR, DPX, Cineon, Radiance HDR, Iris, SGI Movie, IFF, AVI та Quicktime GIF, TIFF, PSD, MOV та ін.

Підтримуються всі основні формати 3D графіки: 3D Studio, AC3D, COLLADA, FBX Export, DXF, Wavefront OBJ, DEC Object File Format, DirectX, Lightwave, MD2, Motion Capture, Nendo, OpenFlight, PLY, Pro Engineer, Radiosity, Raw Triangle, Softimage, STL, TrueSpace, VideoScape, VRML, VRML97, X3D Extensible 3D та ін.

Є можливість використовувати фізичний двигун Bullet Physics Library. Графіка в іграх може бути будь-якої складності, залежить від ваших умінь. Програма є абсолютно безкоштовною.

Для операційних систем: Windows 2000, XP, Vista, Mac OS X (PPC та Intel), Linux (i386), Linux (PPC), FreeBSD 5.4 (i386), SGI Irix 6.5, Sun Solaris 2.8 (sparc).




Graphical logical editor для визначення interactive behavior без програмування. Collision detection and dynamics simulation now support Bullet Physics Library. Бульба є відкритим джерелом з'єднання походження і міцні динамічні library розроблені для Play Station 3. Типи типів: Convex polyhedron, box, sphere, cone, cylinder, capsule, compound, and static triangle mesh with auto deactivation mode. Відтворення послідовності виявлення для RigidBody simulation. Support for in-game activation dynamic constraints. Full support for vehicle dynamics, including spring reactions, stiffness, damping, tyre friction etc. Python scripting API для sophisticated control and AI, fully defined advanced game logic. Увімкнути всі OpenGLTM lighting modes, включаючи transparencies, Animated and reflection-mapped textures. Спосіб для multimaterials, multitexture and texture blending modes, per-pixel lighting, dynamic lighting, mapping modes, GLSL vertexPaint texture blending, toon shading, animated materials, support for Normal Maping and Parallax Mapping. Playback of games і interactive 3D вміст без compiling або preprocessing. Audio, використовуючи SDL toolkit. Multi-layering Scenes for overlay interfaces.



 

Можливо, буде корисно почитати: