Blender Game Engine примеры.

Список разделов Геймдев в Blender Игровой движок Blender

Описание: Все вопросы и обсуждения, касающиеся BGE
Модераторы: exooman, denis8424

  • 7

Сообщение #1 denis8424 » 16.02.2014, 12:49

Внимание, здесь вы можете только скачать пример, или поделиться им. Все вопросы задавайте здесь: "Вопросы по созданию игр."
Образец оформления:
Название: (должно отражать суть примера вкратце)
Автор: (если не знаете, так и пишите - "Не знаю")
Подробное описание: (Что делает, с помощью чего реализовано и т.п.)
Управление:(Если нужно просто запустить игру, так и пишите - "Просто запустить игру")
Версия Блендера

Все сообщения, оформление которых не соответствует вышеуказанным правилам будут редактироваться, или удаляться.
Все выкладываемые картинки должны быть формата .jpeg с качеством не выше 70%.
Все файлы должны быть сжаты, желательный формат - .7z, их размер не должен превышать 5 МБ, и они не должны содержать ресурсов(текстур, звуков и т.п.) не имеющих отношения к сути примера, или чрезмерного размера.
С претензиями обращайтесь к модераторам.
denis8424
Аватара
Сообщения: 718


  • 4

Вихрь: реализация поведения 'системы частиц' в BGE

Сообщение #21 denis8424 » 26.02.2014, 10:14

Автор: O.din13
Подробное описание: Пустышка добавляет плейны, с анимацией движения, подобного вихрю.
Управление: Пробел - запуск/останов, D,A или стрелки влево/вправо - перемещение "вихря"
Версия Блендера: 2.69
vihr3.blend.7z
(120.43 КБ) Скачиваний: 218
denis8424
Аватара
Сообщения: 718

  • 3

Ориентирование кости на объект/кость и смена объекта-цели

Сообщение #22 denis8424 » 14.03.2014, 12:40

Автор: O.din13
Подробное описание: кость меняет объект-цель с помощью актуаторов. Подобным же способом, возможно реализовать ориентирование кости на кость другого (или этого же) скелета, например, для стрельбы/удара в "голову" или "руку", или "корпус". Но! Цель менять не через актуатор (не позволяет указать целью кость), а через несколько заранее созданных констрейнов, которые переключать актуатором.
Управление: Стрелки клавиатуры: "влево-вправо" - переключают цель, а "вверх-вниз" - двигают цель-кубик.
Версия Блендера: 2.69
logicBoneTrackTo.blend.7z
(177.06 КБ) Скачиваний: 168
denis8424
Аватара
Сообщения: 718

  • 3

Стекло рефлекция отражение

Сообщение #23 denis8424 » 19.03.2014, 15:49

Автор: Мartinsh
Подробное описание: Примеры шейдеров. Отражение, прозрачность, преломление. Смотрите сами.
Управление: Меняйте сцены и запускайте игру.
Версия Блендера: 2.69 - работает, но преломление пишет ошибку в консоль.
1243-397_reflection_shad.blend.7z
(1.05 МБ) Скачиваний: 299
denis8424
Аватара
Сообщения: 718

  • 3

Пример зеркала без скрипта.

Сообщение #24 denis8424 » 19.03.2014, 16:01

Автор: Синяк
Подробное описание: На сцене нет зеркала, а есть еще один куб, который повторяет все действия в зеркальном отражении.
Управление: кнопки W,S,A,D
Версия Блендера: 2.69
Mirror no python.blend.7z
(52.13 КБ) Скачиваний: 198
denis8424
Аватара
Сообщения: 718

  • 4

Объект следит(поворачивается) за курсором мыши.

Сообщение #25 denis8424 » 19.03.2014, 16:23

Автор: FroST
Подробное описание: Скрипт переводит экранные координаты курсора в мировые координаты. С помощью скрипта за курсором мыши следит plane. А cube, с помощью логики, следит за Plane. Вот и получается, что куб следит за курсором.
Управление: мышь
Версия Блендера: 2.69
MouseSL.blend.7z
(43.21 КБ) Скачиваний: 242
denis8424
Аватара
Сообщения: 718

  • 3

Фэйковые ортогональные тени

Сообщение #26 denis8424 » 19.03.2014, 17:20

Автор: Redneck
Подробное описание:
1. Создаем игровую сцену (в моем случае просто лесенка из кубиков)
2. Создаем спот-лайт, помешаем его подальше от нашей сцены, направляем его в центр сцены, выставляем Lamp/ThisLayerOnly и Lamp/Falloff/Constant, подгоняем Shadow/ClipStart,ClipEnd, SpotShape/Size под сцену, индивидуально настраеваем Shadow/Bias и Shadow/Size.
3. Дублируем спот-лайт (shift+d), меняем его тип на Sun, переносим на второй слой (m).
4. На втором слое строим фоновую сцену (дальние объекты, упрощенные соседние локации, небо). В моем случае там тоже просто зеленая лесенка.
5. Делаем оба слоя видимыми. Вроде всё...
6. Выставляем у камеры ClipEnd, чтобы она доставала до фоновой сцены.
6.1. А можно и так: сделать фоновую сцену поменьше, сгруппировать ее и запарентить к камере.
7. Вам домашнее задание: запечь статические тени для второго слоя. При желании можно и для первого, но тогда надо как-то пересекать их с динамическими.
Управление: просто запустите игру
Версия Блендера: 2.69
ge-sun-shadows.blend.7z
(58.28 КБ) Скачиваний: 136
denis8424
Аватара
Сообщения: 718

  • 2

Пример использования шейдера эрозии

Сообщение #27 denis8424 » 19.03.2014, 22:29

Автор: 3DLabs, адаптировано Letun
Подробное описание: Шейдер заставляет "исчезать" меш по кусочкам. При желании можно использовать для эффекта сгорания а-ля DOOM3
Управление: Стрелочки Влево/Вправо
Версия Блендера: 2.69
erosion.blend.7z
(138 КБ) Скачиваний: 169
denis8424
Аватара
Сообщения: 718

  • 2

Обводка контура по краям, без применения фильтров.

Сообщение #28 denis8424 » 19.03.2014, 22:45

Автор: WIN64
Подробное описание: Простой способ сделать меши похожими на нарисованные. Каждый меш дублируется, затем дублю присваивается черный материал и выворачивают нормали внутрь.
Управление: Стрелочки Влево/Вправо поворот камеры.
Версия Блендера: 2.69
ObvodkaKontura.blend.7z
(589.75 КБ) Скачиваний: 160
denis8424
Аватара
Сообщения: 718

  • 4

Сообщение #29 dominatorus » 13.06.2014, 10:49

Автор: dominatorus
Подробное описание: Пример игры в стиле Tower Defence
Управление: Мышью расставляете турели, пробел - начать сначала
Версия Блендера: 2.70a
Вложения
tower_defence.blend.7z
(85.25 КБ) Скачиваний: 122
dominatorus
Аватара
Сообщения: 64

  • 3

Сообщение #30 dominatorus » 27.07.2014, 15:24

Автор: dominatorus
Подробное описание: Скрипт управления камерой в стиле RTS (без использования плоскостей по краям экрана)
Управление: Мышью или стрелками
Версия Блендера: 2.71
Вложения
RTSCamera.blend.7z
(63.38 КБ) Скачиваний: 179
dominatorus
Аватара
Сообщения: 64

  • 2

Сообщение #31 dominatorus » 14.08.2014, 20:23

Автор: dominatorus
Подробное описание: Скрипт движения от объекта к объекту по параболе
Управление: -
Версия Блендера: 2.71
Вложения
parab.blend.7z
(52.5 КБ) Скачиваний: 152
dominatorus
Аватара
Сообщения: 64

  • 2

Управление камерой мышкой от 3-го лица.

Сообщение #32 Bibo » 11.09.2014, 22:24

Автор: GetLocalPlayer
Подробное описание: Очередной скрипт на управление камерой мышкой. В особенности входит непроходимость сквозь препятствия(оные должны иметь атрибут camBlock) и восстановление "накрученной" колесиком дистанции по исчезновению препятствия.
Выполнен в двух вариантах:
        1. С применением 3-х сенсоров(1 - Mouse 'Movement'; 2 - Mouse 'Wheel Up/Down')
        2. С применением одного сенсора Always
Версия Блендера: 2.71
Вложения
Camera.7z
(180.68 КБ) Скачиваний: 170
OneSens.7z
(183.41 КБ) Скачиваний: 178
Bibo
Аватара
Сообщения: 514

  • 1

Упрощенный пример тумана войны для блочного ландшафта.

Сообщение #33 denis8424 » 25.12.2014, 20:56

Автор: я
Подробное описание: В примере используется список точек, в котором записывается видимость каждого блока ландшафта. В зависимости от видимости блок ландшафта изменяется, путем удаления старого блока и добавлением со скрытого слоя в его позицию нового. Пример упрощенный - тип ландшафта только один - просто плейн, иначе нужно писать еще и выбор конкретного добавляемого блока. Главное - используются сеты, позволяющие упростить и ускорить работу скрипта. Подробнее про сеты
Сделано "на коленке".
Управление: WASD
Версия Блендера: 2.72
fogOfWar.blend.7z
(126.09 КБ) Скачиваний: 140
denis8424
Аватара
Сообщения: 718

  • 1

Пример стен для стратегий.

Сообщение #34 denis8424 » 13.01.2015, 23:14

Автор: я
Подробное описание: Пример относится к типу блочных ландшафтов. Создан список всех возможных ячеек, в которых записана такая информация, как индекс ячейки, её координата, список соседних ячеек по горизонтали и вертикали(не по диагонали), а так же занята ли ячейка, и если занята, то каким объектом. Если ячейка свободна, то в её координату добавляется объект-блок стены, который 1) находит подходящую форму для себя и 2) отправляет соседним блокам сообщение(через их проперти), побуждающее их изменить свою форму. Блоки невидимы, свою форму они изменяют, подгружая со скрытого слоя подходящий объект стены.
Управление: левая клавиша мыши добавляет блок, правая - удаляет.
Версия Блендера: 2.72

wall.blend.7z
(214.54 КБ) Скачиваний: 139
denis8424
Аватара
Сообщения: 718

  • 1

Пример перемещения по точкам.

Сообщение #35 denis8424 » 13.01.2015, 23:55

Автор: я
Подробное описание: Создан список всех возможных координат клеток. Бот получает путь - список индексов клеток и последовательно двигается к каждой из них. Для разворота к следующей точке используется вектор направления от бота к координате клетки-цели. Достоинства - отсутствуют дополнительные объекты, возможен очень большой список клеток, можно легко менять путь во время игры, одна и та же клетка может быть посещена несколько раз.
Управление: Просто запустить игру(Р), Пробел - перезагрузка.
Версия Блендера: 2.72

64.blend.7z
Большеват.
(511.36 КБ) Скачиваний: 133
denis8424
Аватара
Сообщения: 718

  • 2

Динамичная подмена текстуры на примере двумерного персонажа

Сообщение #36 Bibo » 02.02.2015, 10:20

Автор: Гагояг
Подробное описание: На пример натолкнула игра Paint Man 2. В данном случае, визуальное представление персонажа есть плейн с натянутой текстурой. Изображение текстуры динамично подменяется, что дает анимацию.
Важно понимать, текстура, это глобальный и статичный объект. Мы не можем создать новую текстуру во время игрового процесса, мы только подменяем ресурс существующей текстуры(изображение, которое использует эта текстура). Из этого вытекает, что все объекты использующие данную текстуру, тоже подвергаются изменению. Данное явление будет наглядно если включить соседний слой, на котором расположено несколько фигур, которым назначена эта же текстура.
Управление: A, D, Space
Версия Блендера: 2.72
Вложения
Example.7z
(671.12 КБ) Скачиваний: 118
Bibo
Аватара
Сообщения: 514

  • 3

Сообщение #37 Flogger-K » 11.03.2015, 10:36

Автор: вроде как я
Подробное описание:
Данный пример показывает, как проигрывать анимацию потомков объекта с заменой мешей, также в пример включена подгрузка из другого файла.
Спойлер
В данном файле учтен собственный неудачный опыт с заменами мешей. Вещь эта довольно полезная, при условии, что вы меняете меш для объекта но коллижн (с физикой я связываться не рискнул). Замена меша осуществляется при изменении проперти, причем имя меша, "идущего на замену" "собирается" из кусочков. Этими кусочками могут быть строковые проперти или переменная, определенная в самом скрипте. Проигрывание анимации при смене проперти происходит по схеме - проверяются все потомки через функцию childrenRecursive, при этом потомки получают команду на проигрывание анимации. Причем имя анимации одинаково с именем ее носителя (это очень важно, иначе работать не будет, потoму как имя нужной анимации не будет найдено).
Также весьма важно заметить, что если вам нужно работать именно с мешами, а не объектами, то для сточки с .LibLoad в скобках надо писать вместо 'Scene' 'Mesh'. Для чего это нужно?
Схема создания юнита для моих требований примерно такая - создается "скелет" из подвижных и анимированных частей-плейнов (кубиков, треугольников, неважно). Все эти объекты меняют свои меши на "декорации" - затекстуренные и объемные меши из подгруженных файлов. При этом алгоритм создания имен подгружаемого меша примерно такой - "имя семейства"+"имя объекта"+"нация"+"степень повреждений". Главное - точно рассчитать создание имени нужного меша. Затем при повреждении или смене каких либо свойств меняются нужные вам меши потомков. К примеру при повреждении фюзеляжа самолета - меш "целого" фюзеляжа меняется на меш "поврежденного". Проигрывание анимации потомков полезно при проигрывании анимации групп объектов, которые имеют анимацию одинаковой длины и имеют одну цель - показать выпуск или уборку шасси - (если в скрипте прписывать анимацию с перечислением имен всех объектов - запариться можно - их может быть очень много). Однако, подобный способ лучше применять для нечасто повторяющихся операций. Постоянное проигрывание множества анимаций, запускаемый через цикл for in может затормозить игру.
Управление:
Открываем файл "1". Запускаем игру. Жмем пробел, смотрим. Файл с нaзванием "2" - для подгрузки, кроме подгружаемых объектов там ничего нет. Файл с длинным названием - исходник, из которого составлены номерные файлы, управление в нем так же - пробел.
Версия Блендера: 2.72b
Вложения
BlendExperiment.zip
(575.75 КБ) Скачиваний: 83
актуальная версия проекта - здесь:
https://yadi.sk/d/Uf_VyC-afW5z7
Мои блоги - здесь. http://flogger-k.blogspot.ru/
ВК: https://vk.com/floggerk
Flogger-K M
авиатор
Аватара
Сообщения: 456

  • 2

Пример интерфейса и кнопок с перезарядкой (на скриптах)

Сообщение #38 Bibo » 31.03.2015, 12:30

Автор: я
Подробное описание: Логическое продолжение этого примера. Весь код располагается в папке scripts:
Спойлер
interface.py - отвечает за инициализацию интерфейса. Выравнивание каркасов по краям экрана (чтение из файла interface.ini), определение соотношение сторон экрана. Определение необходимых объектов в сцене как кнопки. Определение функции замены иконки SetIcon.

game_cursor.py - определение и использование игрового курсора и всех его возможных действий. Работает по принципу MouseLook скриптов - системный курсор скрыт и возвращается к центру экрана, игровой курсор (моделька) в игровом пространстве сдвигается в зависимости от последнего смещения системного курсор. Не выходит за края экрана за счет определенного при инициализации интерфейса соотношения сторон.

mouse_events.py - определяет и записывает в качестве атрибута модуля bge.logic словарь, содержащий информацию о состояние курсора. Аналогичен словарю bge.logic.mouse.events за тем исключением, что состояния 1 и 3 независимы от FPS.

abilities.py - привязывает к определенным кнопкам набор параметров - времени перезарядки и подготовки, используемые в случае активации кнопки и иконку.

class_AbilityButton.py - содержит в себе класс, наследующий класс KX_GameObject. Фактически, определяет указанный при создании экземпляра объект (модель в сцене KX_GameObject) кнопкой и привязывает к ней свои действия (AbilitySet).

class_AbilitySet.py - определяет класс, который содержит в себе действия, которые необходимо совершить после использования кнопки. Имеет время подготовки (задержка перед совершением действий) и время перезарядки (время, до прошествии которого нельзя повторно совершить действие).
Файл interface.ini содержит параметры необходимые для инициализации интерфейса, среди которых имена иконок и их координаты.
Так как в blender-е фактически отсутствует возможность замены текстуры объекта во время игрового процесса, для замены иконок используется простой UV-скроллинг.

Данный пример не является идеальной наработкой, либо совершенной системой! Это только лишь громоздкий пример интерфейса и кнопок а-ля Warcraft, а так же преимущества скриптов пред кирпичами

Управление: Мышка
Версия Блендера: 2.73а
Вложения
Example.7z
(138.27 КБ) Скачиваний: 127
Bibo
Аватара
Сообщения: 514

  • 2

Нодовый материал, управляющий прозрачностью объекта в зависимости от расстояния до камеры.

Сообщение #39 denis8424 » 01.04.2015, 21:19

Автор: переработанная версия от John Hamilton
Подробное описание: В примере показано, как с помощью нодового материала изменять цвет объекта в зависимости от расстояния до камеры. Так можно реализовать туман, облака, а также более плавное исчезновение объектов для ЛОДов.
Сделано по этому видеоуроку:
phpBB [media]

Подробнее:
В сцене два материала - Material, который делает объект прозрачным при приближении его к камере и Material2, который делает объект прозрачным при отдалении от камеры.
Суть - нода Camera Data отправляет расстояние до камеры, которое в ноде Divide делится на желаемое расстояние и получившееся значение используется как фактор смешивания в ноде Mix. В Material после ноды Divide используется еще нода Invert, что бы инвертировать полученное значение. По идее можно просто поменять местами делитель и делимое в ноде Divide, но я оставил, как в оригинале.
Ноды Geometry, Texture, Camera Data находятся в меню Add -> Input
Ноды Invert и Mix находятся в меню Add -> Color. Нода Mix называется там MixRGB
Нода Divide это нода Add -> Converter -> Math
Управление: клавиши W, S
Версия Блендера: 2.72
Вложения
fakeBloom.blend.7z
(91.26 КБ) Скачиваний: 81
denis8424
Аватара
Сообщения: 718

  • 2

Пример таймера

Сообщение #40 maks-dll » 04.04.2015, 13:21

Автор: я
Подробное описание: заводим таймер и ждём) Если поменять проперти symbols на 4, будет видно десятые доли секунды, если 5 - то сотые, и т. д.
Управление: Просто запустить игру
Версия Блендера: 2.71
maks-dll
Сообщения: 62

Пред.След.

Вернуться в Игровой движок Blender

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 3 гостя