Здесь собраны наиболее часто задаваемые вопросы, связанные с использованием игрового движка(BGE)
Внимание! Посты в этой теме размещаются только в форме "вопрос-ответ"! Вопросы без ответа будут удаляться. Для вопросов, не освещённых в этой теме, есть тема "Вопросы по созданию игр."
- Вопрос: как сделать вращение камеры мышкой?
- Ответ: с помощью актуатора Mouse - Look
- Вопрос: как сделать управление мышкой не от первого, а от третьего лица?
- Ответ: то же самое что и в предыдущем вопросе, только актуатор MouseLook вешаем на логику персонажа, и к этому персонажу с помощью Parent прикрепляем камеру.
- Вопрос: как сделать динамические тени?
- Ответ: создаём лампочку Spot или Sun и смотрим картинку. Возможно, источник света придется прикрепить к персонажу с помощью Vertex Parent, чтобы персонаж не выбегал за пределы освещенной области.
- Вопрос: как сделать сохранение и загрузку уровня?
- Ответ: вариант первый - учить Python и использовать стандартные функции языка для сохранения нужных значений, вариант второй - учить Python и использовать
globalDict
блендера:- Код: Выделить всё
from bge import logic
# Записываем что нужно:
logic.globalDict['HAZBAHIE'] = 'bla bla bla'
logic.globalDict['patrony'] = 120
# Сохраняем данные в файл:
logic.saveGlobalDict()
# Загружаем данные из файла:
logic.loadGlobalDict()
# Получаем нужное значение:
print(logic.globalDict['patrony'])
# Удаляем значение вообще:
logic.globalDict.pop('HAZBAHIE')
# Удаляем всё:
logic.globalDict = {}
- Вопрос: как обмениваться данными между несколькими сценами?
- Ответ: вариант первый - с использованием
globalDict
, как описано в предыдущем вопросе, он общий для всей игры. При этом не надо писатьloadGlobalDict
отдельно для каждой сцены - данные хранятся с самой загрузки до выхода из игры.
Вариант второй - просто с использованием переменных внутриbge.logic:
- Код: Выделить всё
logic.blablabla = 'razdvatri'
print(logic.blablabla)
- Вопрос: как включить систему частиц в BGE?
- Ответ: её там нет
Но частицы можно имитировать с помощью добавления объектов с другого слоя, или с помощью аддона easyEmit.
Видео:phpBB [media]
Аддон: http://blenderartists.org/forum/showthread.php?241656-easyEmit-*Update*-13-06-2013
- Вопрос: не работает анимация костей! Что делать?
- Ответ:
0) Удалить актуатор IPO (F-Curve): он не для костей(в поздних версиях удален)
1) Убедиться, что анимируемый объект - потомок костей (Ctrl+P)
2) Выделить кости в Object Mode
3) Создать актуатор Action
4) Найти в списке название нужной анимации (можно узнать, например, через окно DopeSheet или методом научного тыка)
5) Задать начальный и конечный кадр, выставить тип анимации и так далее
- Вопрос: объекты проходят сквозь стены, как лечить?
- Ответ:
1) Постараться не использовать Loc в актуаторе Motion или хотя бы уменьшить значения
2) Увеличить параметр Margin у стен и у объектов (только не переборщите, иначе объекты будут «висеть» в воздухе)
3) Сделать стены «толстыми», а не одной гранью
- Вопрос: объект слишком скользит по земле (в том числе когда отталкивается от стены), как лечить?
- Ответ:
0) Вспоминать школьный курс физики про инерцию и трение
1) Увеличить это самое трение для земли и для объекта в материале
2) Не использовать Loc в актуаторе Motion :D
- Вопрос: грань рисуется только с одной стороны, что делать?
- Ответ: В свойствах материала нужно отжать галочку Backface Culling
- Вопрос: что такое GLSL, зачем он нужен и как его использовать?
- Ответ: «GLSL — язык высокого уровня для программирования шейдеров — программ для одной из ступеней графического конвейера, используемая в трёхмерной графике для определения окончательных параметров объекта или изображения.», - говорит нам Википедия. Что это даёт в блендере:
-возможность использовать динамические тени (см. вопрос 1)
-использовать ноды
-использовать многие настройки материалов (без них не будут отображаться текстуры, кстати)
-делать более красивое освещение, близкое к тому, что рендерит Blender Render (для простых сцен, да)
Включить GLSL можно на панели Properties (вызывается кнопкой N) во вкладке Display и выбрав режим отображения Textured (см. рисунок). Настроить его можно в панели Scene.
- Вопрос: У меня нет ни настроек GLSL в панели Scene, нет ни Margin у объекта, ни вообще настроек игровой физики, ни статиков, ни динамиков, нет даже меню Game!!! Что делать???
- Ответ: включить Blender в режим Game.
- Вопрос: как сохранить игру в exe?
- Ответ: включить аддон Save As Runtime (File - User Preferences - Add-Ons - в поиск пишем
runtime
- ставим галочку напротив аддона) и File - Export - Save As Runtime. После чего копируем папку 2.5x (например, 2.59) из папки с блендером в папку с экспортированной игрой (если Linux) и проверяем, работает ли.
- Вопрос: как сделать «медленный» Parent, то есть чтобы потомок немного запаздывал за родителем?
- Ответ: Включить на потомке Slow Parent и настроить Offset.