Blender – уроки моделирования (урок №12)
Содержание
В прошлом уроке мы научились двигать объект, нажатием на кнопку, так же мы теперь умеем сохранять игры в свойственных им форматах.
В этом уроке мы продолжим совершенствовать свои навыки по созданию игр – будем работать с логическим блоками и создадим более интересное и привычное управление нашего объекта.
Blender | Определяемся с логикой #
В этом уроке хоть и будет присутствовать теория, ну куда без нее, но все же это более практичный урок. Поэтому открывайте файл, в который вы сохранили результаты прошлой совей работы – продолжаем.
С логическими блоками, которые формируют стратегию поведения объекта, мы уже знакомы. По завершению прошлого урока у Вас должно было получиться что-то на подобии вот такого.
Так у меня в примере. Напомню, что кубик двигается в две стороны по оси Y. Это указано в блоке Action (действие). Это действие происходит в ответ на событие, обозначенное в первом блоке Sensor (сенсор) – нажатие на клавиши. Но про все, про это я рассказывал в прошлом уроке. А вот роль второго блока была не до конца освещена – пришла пора исправить этот момент. Так для чего же нужен второй блок – Controllers (контроллеры). Что они все же контролируют?
Правильно, контролируют они взаимосвязь между сенсором и действием, которое этот сенсор должен вызвать. Ключевым здесь является – должен вызвать. Давайте разбираться.
Но прежде буквально пара слов о теории. Мы создаем логику управления объекта. Естественно, она должна быть логичная (простите за каламбур), а самая логическая логика – математическая. Поэтому перед дальнейшим чтением урока освежите у себя в памяти этом предмет. Пускай ее изучением занимаются целые институты, профессора пишут работы. Нам это все не надо и в сложность ее вникать мы не станем. Вспомним мы буквально два союза из этого предмета: And (здесь логическое "и") Or (здесь логическое "или"). Помните, чем они отличаются?
Если стоит логическое "и" (And – появляется по умолчанию), то, для того, что бы произошло действие (Action), нужно, чтобы сработали все сенсоры, подключенные к данному к котроллеру. Если же стоит логическое "или" (or – выбираем из всплывающего списка), то для того, чтобы произошло действие (Action), необходимо, чтобы сработал хотя бы один из сенсоров, подключенных к контроллеру. Как понять, подключен ли сенсор к контроллеру? Эту связь Вы устанавливаете сами. Тянете мышкой ниточку из одной точки в другую – связь установлена.
Логическое "или" (or) #
Начну с "или" – чисто психологический выбор. Мне всегда нравится иметь альтернативу (и пару троек запасных путей).
Почему бы не иметь альтернативу, как двигать вперед наш кубик – нажатием на клавишу S или Up. Заметьте, что кубику будет все равно, на что Вы нажмете, он начнется двигаться в одну и ту же сторону, сработает одно действие – оно у нас уже прописано. Поэтому добавляем еще один контроллер, выбираем его тип – Keyboard (клавиатура), в поле Key (клавиша) ставим Up. Далее связываем новый сенсор с контроллером, который обрабатывает событие от нажатия на кнопку S. Поэтому всегда советую: всему (в том числе и логическим блокам) давать осмысленное названия, чтобы потом иметь представление о том, с чем работаете, и как это работает. Что особенно актуально, когда возвращаешься к отложенной работе через какое-то время, а, вернувшись, и посмотрев на сцену, понимаешь, что успел основательно позабыть, о чем эта сцена, что с чем связано и как взаимодействует – хоть новую работу начинай.
Но я увлекся. Подключили сенсор к контроллеру? Теперь можно проиграть анимацию – нажать на P в любом из окон проекций и убедиться, что кубик не движется, если нажать S или Up, а если нажать сразу обе клавиши – поедет. Ну, конечно же, мы And в контроллере не изменили на Or. Теперь измените. И вот нажатие на две разные кнопки дают одинаковый результат. Вот так работают логические блоки. Там есть и другие выражения: "исключающая или" и другие, но про них мы здесь говорить не станем, а продолжим создавать управление нашего пока слабоуправляемого объекта.
Локальные и глобальные системы координат в Blender #
Я уже несколько раз упоминал о локальных и мировых координатах, давайте теперь, попробуем в них разобраться с точки зрения создания игр.
У нас есть сцена. Через нее проходят оси координат. И все понятно ось Y показывает направление по Y, так же и со всеми другими координатными осями. Значит, оси сцены будут глобальными или мировыми осями координат (кому как больше нравится). Локальные оси координат, следуя логике вещей, должны принадлежать конкретному объекту в сцене. Да, верно – каждый объект сцены имеет свои оси координат – локальные системы координат. В чем же различие? Если говорить очень просто, то направление глобальных систем координат не изменяются, а локальных – могут поменяться. В общем случае – локальная ось Y объекта сцены не направлена по глобальной оси Y сцены. Вот Вам объектное построение мира в действии. Опять отвлекусь и поясню, что каждый элемент мира, может быть миром для другого мирового пространства. Эффект коробки в коробке.
Но пора переходить к примерам. Начинаем.
Добавляем еще два контроллера (можно и четыре, если понравилась идея с альтернативным управлением), на кнопки A и D, чтобы вращать наш объект. Вот теперь начинается самое интересное. При нажатии на боковые клавиши, наш объект начинает именно вращаться, а не двигаться, там, вправо или влево (в зависимости от нажатой клавиши). Вращаться он будет относительно оси Z. Отмечаем это в графе Rot (Rotation – вращение).
Получилось довольно сложное управление. Здесь только один совет – будьте предельно внимательны и не спешите, все же мы создаем программное управление в виртуальном мире. Чтобы не запутаться, где перед, а где у нашего кубика зад, предлагаю сделать из него некое подобие машинки – вытянуть капот.
Вот теперь видно. Запускаем анимацию (в данном случае жмем P). И смотрим, как движется наш импровизированный автомобиль, если зажать вперед и вбок, то получится как в том мультике, где лошадка бегала по кругу, здесь же носится машинка, но мы того и хотели, мы молодцы.
Обратите внимание, что направление движения мы ставили Y, а наш же автомобильчик ездит по кругу. Он движется относительно своей локальной оси Y, которая при повороте смещается относительно глобальной оси Y сцены. Посмотрим, как это можно исправить. В данном примере никакой практической ценности от этого трюка не будет, но может случиться так, что Вам нужно будет, чтобы объект двигался по глобальной оси сцены. За ось (глобальную или локальную) отвечает кнопочка L сбоку выбранной оси в блоке Action (действие – третий логический блок). Измените настройки Вашей машинке, как у меня на следующем рисунке и посмотрите, что из этого получится.
Я просто выключил в двух местах кнопку L, и теперь уже машинка по кругу не движется, а просто вращается относительно уже глобальной оси Y нашей сцены.
Сейчас мы создали простое управление объектом – для создания простенького автосимулятора самое то. Осталось смастерить трассу и сделать игрушку на прохождение. Правда, без противников, но ведь можно на одной клавиатуре двоим играть. Хотя это я увлекся – слишком маленькая трасса для симулятора. Надо разобраться.
И снова иерархии #
Помните, я говорил об иерархии объектов в сцене? А что именно, помните? В частности, я говорил то, что дочерние объекты повторяют манипуляции родительских. Это из оперы "яблочко от вишенки недалеко катится". Почему бы не сделать камеру дочерним объектом нашей машинки, а после настроить ее так, как будто мы зависли где-то над крышей нашей машинки? Пробуем. Делаем. Как создаются родительские и дочерние объекты, помните? – выделяются оба объекта и нажимается Ctrl + P. Подробнее смотрите в соответствующем уроке.
Теперь, когда камера неотлучно следует за машинкой, можно создавать трассу любой сложности, а кто нас ограничивает?
Создание трассы – тема для целого отдельного урока. Но, я надеюсь, что Вы внимательно ознакомились с предложенным в этой серии статей материалом и знаний у Вас уже достаточно, чтобы собрать и текстурировать подходящую трассу.
Я, как всегда, чтобы не отвлекать внимание от главной темы нашего урока, соберу очень простенькую модель трассы, которую Вы, если захотите, можете использовать как заготовку для Вашей гоночной дороги.
Трассу создавать можно несколькими вариантами: как я – на быструю руки соорудил из плоскости, но лучше рисовать по профилю, помните, мы создавали кольцо – точно по такому же принципу создается профиль и путь трассы. Экспериментируйте на здоровье.
Развернутый ответ на комментарий #
Сейчас пришло время развернуто, с примером, ответить на достаточно серьезное замечание, которое прозвучало к одному из уроков данной серии. Точно так же и друг, читавший материал урока про текстурирование, но не видя комментария о логотипе, сказал, что в этой части урока я учу Вас забивать гвозди микроскопом. Ответь мне было нечего. Тогда нечего. Но вот пришло время показать, что не зря я Вас научил создавать логотипы.
Еще тогда я писал про панели к играм – пришло время продемонстрировать, как это делается. К слову сказать, двумерные объекты в играх называются спрайты. Сейчас мы создадим один такой спрайт на базе уже готового логотипа. Вот так он выглядит.
Как этот логотип мы создавали – посмотрите урок, там все подробно описано. Поэтому я в примере делать логотип прозрачным не стану, да раз и помещаем какое-то изображение на панель инструментов, то и не за чем делать его еще и прозрачным.
Теперь просто делаем плоскость, на которой располагается логотип дочерней к камере. И все – логотип всегда следит за камерой, как бы наша машинка не вращалась
Вот такая маленькая претензия на Вашу будущую большую игру. Не NFS, конечно, но, возможно, и лучше.
Теперь пара слов о отображении объектов – они, когда запускается игровой движок, отображаются в том же режиме, в котором отображаются объекты в окне проекции, в котором движок запускается. Напомню, что эти режимы отображения объектов бывают следующие:
- Boundin Box (образующая коробка) – при этом режиме все объекты превращаются в коробки. Виден общий концепт сцены.
- Wireframe (каркас) отображаются не границы объектов, его структура.
- Solid (сплошной) – объекты имеют свою форму и через них уже не видно других объектов сцены.
- Shaded (затененный) – в сцене появляется тень.
- Textured (текстурированный) – объекты выглядят так же как и при рендеринге.
Подведем итоги по урокам Blender #
Вот и пришло время прощаться. На этом я завершаю цикл уроков посвященных базовым возможностям Blender, и отпускаю Вас в свободное плавание по просторам возможностей этого действительно безграничного по функционалу редактору. Тяжело оставаться один на одни с чем-то неизученным и не до конца понятным. А вспомните свое состояние, когда Вы первый раз запустили Blender. Какая была Ваша реакция на два открытых окна, и сколько всего Вы умеете теперь, а сколько осталось за полем зрения наших статей. Например, я ни слова не сказал о скелетной анимации, о том, как создавать несколько уровневые игры – все это достаточно объемный и интересный материал, разобраться в котором можно и самостоятельно.
Прощаясь с Вами сейчас, насовсем работу не прекращаю, и, если Вам захочется увидеть урок на какую-либо тему, пишите в комментариях, мы обязательно отреагируем или виде развернутого комментария, либо дополнительного урока в этот цикл. Еще раз желаю успехов и самостоятельности. До новых встреч.
Приложение к статье Blender – уроки моделирования (урок №12)
Рекомендуем также почитать
- Статья Blender – уроки моделирования (урок №1)
- Статья Blender – уроки моделирования (урок №2)
- Статья Blender – уроки моделирования (урок №3)
- Статья Blender – уроки моделирования (урок №4)
- Статья Blender – уроки моделирования (урок №5)
- Статья Blender – уроки моделирования (урок №6)
- Статья Blender – уроки моделирования (урок №7)
- Программа Blender 2.4
- Статья Blender – уроки моделирования (урок №8)
- Статья Blender – уроки моделирования (урок №9)
- Статья Blender – уроки моделирования (урок №10)
- Статья Blender – уроки моделирования (урок №11)
- Видео:
Видео
04:52
Мультимедиа
|
BenQ PU9730: обзор инсталляционного двухлампового проектора23 января 20159890 2 |
02:16
Авто Hi-Tech
|
Видеосвидетель 5410 FHD 2CH: обзор видеорегистратора с двумя камерами31 декабря 201413321 0 |
02:38
Авто Hi-Tech
|
Видеосвидетель 4410 FHD G: обзор видеорегистратора31 декабря 201412751 0 |
Cвежие новости
Apple обменивается исками с Ericsson, в 2022-м году сохранится дефицит микросхем
Apple обменивается исками с Ericsson, в 2022-м году сохранится дефицит микросхем
Google готовит Android 11 и думает о запуске собственного процессора
Google хочет, чтобы новый дизайн платформы напоминал медиаадаптер Chromecast
ТОП-3 тарифов на интернет для загородных домов и коттеджей
ТОП-3 выгодных тарифов на интернет для загородных домов и коттеджей от провайдеров
ONYX BOOX Note – новый ридер с экраном 10,3"
Букридер с ридер с экраном 10,3" весит всего 325 граммов
MMO Project Genom – обновление Авалон
Обновление Project Genom – новая территория более 90 квадратных виртуальных километров
Искусственный интеллект научили думать по-собачьи
Ученые разработали систему на базе алгоритмов глубокого обучения, которая может действовать как собака.
HyperX анонсировала старт поставок модулей памяти Predator DDR4 RGB
HyperX Predator DDR4 RGB представлена как в виде отдельных модулей 8 ГБ, так и комплктами 16 ГБ и 32 ГБ
Отзывы
2 Оставить отзывОчень благодарен автору за подробный и вразумительный цикл статей.
ПРОШУ пожалуйста >>> Объясните в чем дело? Короче нет вращения и никак не реагирует плоскость на правую кнопку, не могу с ней работать >>>
Добавить отзыв