Игровой движок Godot Engine 3D Камера и трансформации объектов: движение, вращение, создание 3D игры
Ойындар
Мои игры в Google Play - play.google.com/store/apps/de...
Мои игры на Yandex Games - yandex.ru/games/developer?nam...
Мои игры в App Store - apps.apple.com/ru/developer/p...
Все мои игры на Godot - pn.studio ВАЖНО! ВСЕ НОВЫЕ МАТЕРИАЛЫ БУДУТ ВЫХОДИТЬ НА ЯНДЕКС ДЗЕН
y2u.ru?zen
| -- СПАСИБО -- | #Godot3D #GodotEngine #Godot Побочка: skanersoft.ru
- - - - - - - - -
Друзья, поддерживать канал и скачивать исходники вы можете на сервисе по поддержке творческих проектов Patreon: goo.gl/rGBT1L
Все Патроны смотрят видео раньше других, без рекламы и с исходниками! + ответы на вопросы в конце каждого видео!
Сотрудничество: goo.gl/cbMSz3
=== ИНФОРМАЦИЯ ===
График выхода уроков: onjs.ru
Патреон: goo.gl/rGBT1L
Канал на KZread: goo.gl/fpOJLf
Наш чат в Discord: / discord
Группа ВК: skaner.soft
Инстаграм: / skanersoft
Автор идеи и ведущий: skaner.game
Партнерская программа: goo.gl/dnLFNR
=== ТЕХНОЛОГИИ ===
Операционная система: Ubuntu 18.04
Запись видео: OBS
Обработка звука: Audacity
Монтаж: KDEnlive
Музыку можно найти в группе ВКонтакте
GitHub с некоторыми проектами (исходники НЕ ВСЕ там): github.com/SkanerSoft/SkanerS...
=== ПЛЕЙЛИСТЫ ===
GDScript Book (обучение GDScript)
• GDScript Book - изучен...
Создание игр на Godot Engine
• Playlist
Написание игр и приложений на NW.js
• Playlist
Основы создания игр на JavaScript с нуля + интересные решения для ваших игр
• Создание игр на JavaSc...
Интересные решения на JavaScript
• Playlist
Истории игровых движков
• История движка
Создание "арканоида" на чистом JavaScript с нуля
• Как создать Arkanoid н...
Создание 3D игр на C++
• Playlist
Программирование в Lazarus
• Playlist
Теги для поиска моих видео - #SkanerSoft и #Skaner
Друзья, копипаст должен быть адекватным! #ЗаЗдоровыйКод
Так же, теперь видео можно искать по тегам: #GodotEngine #GodotLessons и #SkaneLikerGodot
-- добавлено в 2020 году --
ДРУГ, ПОДДЕРЖИ ПРОЕКТ!
PATREON - / skaner
БУСТИ - boosty.to/game3d
KZread - / @skanersoft
Пікірлер: 162
Не получается сложить dir и delta. Не получается запихнуть аргумент Vector3 в метод look_at. Автор либо маг, либо монтажный обманщик
@anktosproject189
3 жыл бұрын
отвечу вам вместо владельца канала, вы накосячили! скорее всего вы используете более новую версию движка (или старую) если новее то дело всё в том, что такой префикс как "delta" больше не используется ибо работает не корректно, вместо него нужно использовать префикс "_delta", также нужно записать и в строке, где "dir * _delta", в этом случае всё работает правильно, так же, как и на видео. Ещё добавлю про "Vector3" в "look_at", всё работает правильно, скорее всего вы совершили ошибку там, где написано "player", туда нужно написать название которое у вас написано на конкретном узле, в нашем случае это игрок (квадратик), если название игрока в столбе узлов записано "HeraChiva", то вместо " $'../player' " нужно написать " $'../HeraChiva' "! Иначе при старте, ваш обзор будет стоять на месте и квадратик не будет реагировать, т.к. из-за ошибки написания скрипта система не сможет обрабатывать ваши запросы. Надеюсь понятно объяснил.
@user-ym1nf4ue6c
3 жыл бұрын
@@anktosproject189 написал значит func _delta(): rotation.y += 5 Не работает(ошибку не выдаёт). Пробовал и 10 и 50 и 90 вписывать, не помогает. А вот если написать func _ready(): То работает, но только один раз, что оно и логично
@aip1249
3 жыл бұрын
Ты скорей всего перепутал точку и запятую,и написал Vector3(0.1.0) а надо так Vector3(0,1,0) Попробуй может получится
@aip1249
3 жыл бұрын
@@anktosproject189 delta используется а _delta проста ошибка
@appledraw2787
3 жыл бұрын
@@user-ym1nf4ue6c Я новичок, но думаю надо было написать не: "func _delta():", а надо _delta передать в качестве аргумента то есть в "()". "func process(_delta):"
Ошибка со следящей камерой в версии 4.2.1: нужно заменить translation на global_transform.origin, ввиду изменений самого движка. Автор видео расписал все правильно, просто код поменялся по прошествии времени. Теперь функия выглядит примерно так: func _process(delta): look_at($"../Ваш объект".global_transform.origin, Vector3(0,1,0)) Пришлось потратить 8 часов что бы понять)
@user-pe3qr6my6d
3 ай бұрын
Спасибо! Ты сохранил 8 часов моей жизни)
@CharlyAndDio
2 ай бұрын
Спасибо!
@andron-straid
Күн бұрын
Ваш комментарий спас судьбы многих начинающих разработчиков. Премного благодарствую!
Бажественно. Гениально. Джва года ждал. Хотелось бы проект какого-то шутера для примера со всеми вышеперечисленным, и самое главное тайм коды каждой возможности в видео.
@user-np1hh3pt7y
5 жыл бұрын
или хоррора :-)
Поглядел ролики думаю блин как классно паренек все объясняет,речь поставлена все класс...начал делать по примеру ролика-вообще ничего не работает из функций так как ролик уже старый а версия годота новая,в общем актуальность серии уроков под большим вопросом ну а в целом спасибо
Круто! Спасибо за видео! Я все очень хорошо понял!
благодарю за отличное видео и понятное объяснение!) как вы и говорили в новой версии есть небольшие отклонения, но если знать английский и главное читать, что пишет система, то по вашим видео легко можно научиться работать с этим движком. С меня лайк и подписка!
Дельный видос, лайк. )
Очень крутой урок, спасибо большое.
Последний пример напомнил мне резидент ивл 2
Ура, наконец видео вышло!
сижу на godot engine 4.1.1 все работало дошёл до момента с камерой если в look_at писать ($'../(ваше название)'.translation, Vector3(0,1,0)) ничегот работать не будет, но если поменнять translation на position камера магическим образом начнёт следовать за кубиком
@live5531
3 ай бұрын
боже спасибо тебе огромное
@immuimmu5071
3 ай бұрын
я так понимаю translation в 4й версии заменили на position... потому что у меня вообще нет никакого translation даже в документации
@RiVOtheProtogen
4 күн бұрын
Короче если имеются какие-то проблемы с изменением параметров акторов, посмотрите название этих параметров в Инспекторе (как в случае с translate в новых версиях godot её переименовали на position)
Для тех кто тоже не знает куда зашел автор на 10:39. сверху справа кнопка Проект, там и будет это окно
приятный движок. Видео тоже хорошее, но раздражает то, что автор склеивает картинку, когда куда-то переходит. Щас буду сам искать список действий к которому резко перескачили на 10:36
@keliigis3118
Жыл бұрын
Нашел?
@DepthGuardian739
8 ай бұрын
Ты нашел?
@haryz846
5 ай бұрын
У меня такая же проблема
Да, интересно.
про нормализацию можно было упомянуть, а то при движении наискосок скорость будет выше чем просто по одной из осей.
@SkanerSoft
4 жыл бұрын
А что именно тут надо нормализовать?
@valdemarconst7038
4 жыл бұрын
@@SkanerSoft когда пользователь жмет вперед и вправо вектор направления движения равен (1, 0, -1) и длина такого вектора больше, чем когда он жмет на одно из направлений (пр. 0, 0, -1). в 2д может быть наглядней нарисуте вектора (0, 1) и (1, 1). Длина второго больше а значит при расчете скорости наискосок персонаж будет двигаться быстрее. Решением является метод .normilized() у любого вектора, который приведет его длину к единице. Теперь движение с одинаковой скоростью в любом направлении. Если хотите проверить, выводите конечную скорость в консоль без нормализации направления и с нормализацией. Во втором случае одна будет постоянной. Очень много игр, где разрабы не продумали эту банальную вещь, когда наискосок бежать быстрее, чем просто прямо) И это успешные популярные проекты. И информация об этом есть в документации в разделе с математикой.
@SkanerSoft
4 жыл бұрын
А, понял) Ну да, это логично)) Где-то я делал её именно для этого) Спасибо за ценное замечание!
Шикарно
Вопрос : Я напечатал такой же код из 6:26 и когда я запускаю проект то куб начинает вращаться быстрее заданного значения 0.1 но когда я зажимаю окно проекта то куб вращается с правильно заданной скоростью 0.1 как на видео. Как это исправить? Появляется предупрежнедение: The argument 'delta' is never used in the function '_process'. If this is intended, prefix it with an underscore: '_delta' аргумент дельта никогда не использует процесс Но при использовании "_delta" ситуация таже. Версия годот 3.3.4 в версии 3.3.3 было также.
Можно ли вызывать эту проверку не каждый кадр а от другх событий?
Очешуенные уроки, очешуенный игровой редактор! Плюс, запускается на линуксе и есть в стиме!
@danyaalexandrov385
3 жыл бұрын
дааааааа это огромный плюс, и весит немного: 1,5ГБ, я например со старого ноута с линукс мятой и вообще не глючит :3
Я не совсем понимаю то значит слова "выйти на уровень выше" 15:08 объясните пожалуйста
Не знаю , по делу или нет :) Очень хотелось бы видео про материалы в godot. Будет ли про это видео?
Круто
вопросы по делу, на неделе начал годо смотреть, опыта мало, так вот: 2 вопроса 1. как наложить 2д интерфейс поверх 3д игры 2. персонаж двигается на WSAD, надо привязать камеру к мыше чтобы можно было смотреть чуть дальше, но приэтом персонаж всегда оставался в кадре, как это оптимизировать? (вид сверху)
@raitouyagami995
5 жыл бұрын
про интерфейс отпал вопрос, я перестал думать и тупо сделал xD
Почему камера фокусируется на объекте но движется намного медленнее?
krasauvchik)))
Я чтото по векторам ничего не понял. Можешь подробнее базу изложить?
ты лучший
Делаю как на видео, но с камерой кое что...она поворачивается за плейером...не знаю где отключить, удаляю камеру, ставлю новую, но все равно она за плейером поворачивается и все...что делать? У тебя вроде она стоит.
Вопрос такой: поддерживает годо возможность создания бесшовных миров? И если да то как это реализовано
Parser Error: Expected '(' for parent function call. выдаёт такую ошибку
Всем добрый день, подскажите как решить проблему)) в общем суть в чем, сделал скрол камеры для 2д игры, камере задал лимиты, все работает хорошо, скролится и за лимиты не выходит, но в камеру добавлены дочерние ноды типа лейбл и вот эта нода при скроле летает и за пределы лимитов и вообще повсюду, кто нибудь сталкивался с таким? заранее спасибо !!!🤗
👍
Помоги пожалуйста Я сменил на другие цвета объекты Поставил камеру Нажимаю запустить и куб(player) И платформа черные А фон серый Как исправить?
Устанавливаю камеру и все-равно серый экран. Что делать?
Я один который делаю всё как в видео, и всё равно выдаёт ошибку?
@tude2478
8 ай бұрын
Ты не один
@maxisgd478
6 ай бұрын
@@tude2478ты на какой версии Годот делаешь игру?
@user-yh5yt2bf4p
4 ай бұрын
У вас скорее всего не та версия года
@Stereopadness
2 ай бұрын
Нет, это просто закон подлоси всех сред разработки, игровых движков и тд
@user-zy8db9cv4s
2 ай бұрын
Это всё заговор разрабов! На заграничном упубе, то же самое. Давно поняли что их наеб..ли😂
Где исходник скачать?
Можно пожалуйста по подробней про delta значение/переменную или что это вообще
@bignumber9483
3 жыл бұрын
Delta это время, прошедшее между предыдущем и текущем кадром. Умножение на дельту позволяет избавится от привязки скорости выполнения задачи (в данном случае перемещении объекта) к фпс в игре.
в новой версии нету сриптов таких сделай гайд пж про новую версию
15:11 "Надо выйти на уровень выше"...чтобы камера следила за объектом player Объясните пожалуйста как это работает.
@FoxSlyme
4 жыл бұрын
Что именно тебе непонятно? Если ты имеешь ввиду фразу в кавычках, то объясняю: Представь себе дерево элементов. Каждый узел этого дерева может содержать дочерние элементы. Возьмём какой-нибудь абстрактный узел А, и добавим к нему *дочерние* узлы B, C, D. При этом узел A называется *родительским* по отношению к любому из узлов B, C, или D. В данном случае узел A - это узел сцены "root", узлы B, C, D - это игрок "player", плоскость "MeshInstance2" и камера "Camera" соответственно. Так вот, скрипт привязан к объекту камеры, поэтому, чтобы сослаться на игрока, нам нужно сначала обратиться к родительскому элементу ("Надо выйти на уровень выше"...), т.е. сцене, а потом обратиться к одному из его дочерних элементов, а именно - к тому, который является игроком. Чтобы тебе было легче представлять, сравни эту систему с папками на компьютере.
Ребята привет! Спасибо автору за уроки!!! у меня GODOT4. И движение камеры не работает как показано в уроке. работает с таким кодом look_at($'../player'.get_transform().origin, Vector3(0,1,0)) никто не пояснит это правильно? при чем если убрать вектор3 то все равно будет работать.
@user-jd8ds1tc5h
10 ай бұрын
спасибо, действительно работает.
Движение не работает, проверь код. У меня работает только движение вниз(назад) extends MeshInstance func _process(delta): var dir = Vector3() if Input.is_action_pressed("ui_left"): dir.x = -1 if Input.is_action_pressed("ui_right"): dir.x = 1 if Input.is_action_pressed("ui_up"): dir.z = -1 if Input.is_action_pressed("ui_down"): dir.z = 1 if dir: translate(dir)
@VursPZ
4 жыл бұрын
Так же кста.Ты не нашёл решение?
Здравствуйте, а можно писать на lua в этом движке, есть ли информация?
@user-fl2ie2qt6b
3 жыл бұрын
На Lua писать нельзя! В стандартной комплектации поддерживаются: GDscript, NativeScript и Визуальное программирование! Единственный сторонний язык который поддерживается, это C#, но для того чтобы писать на нём нужна MONO версия движка!
Сканер,а ты можешь сказать когда примерно будет новый видос?
@SkanerSoft
5 жыл бұрын
Сегодня
@darsplay4667
5 жыл бұрын
@@SkanerSoft урааа!Тогда буду ждать
Надо расти над собой в блендере. Потому что такой автомат - это фу. Крайне советую пройти вот эти видеоуроки по моделированию жигулей. Они медленные и размерные. В реальном времени, без ускорялок и тд. При чём надо не просмотреть их, а именно повторить. Тогда будет толк. Заодно у тебя будут жигули в конце)) Моя первая модель была похожа на твой автомат и представляла собой бутылку. Мою вторую я делал смотря этот плейлист параллельно. Заняло это уже около трёх дней.ХЗ сколько в часах, часа по 2-4 каждый день. И вышло уже совсем непостыдно. Позволило поверить в себя. И да, моделирование отнимает ОЧЕНЬ много времени, так что пара часов на модельку у меня выходит если, я ножик моделю, в лучшем случае. Обычно куда больше, все выходные, например. Так что не стыдись, что у тебя два часа ушло. Два часа - это ниочём. Вот ссылка на плейлист по моделированию жигулей, мне он очень помог. И старайся моделить по картинкам-референсам, потому что глаза тебя обманут и на глазок выходит фигня какая-то. kzread.info/dash/bejne/a5au28epe8y8kaQ.html Также смотри канал Криворукого Моделлера. Для текстурирования скачай Сабстенс-пейнтер, не мучайся.
@filinshein
4 жыл бұрын
Дружище, видео по ссылке не доступно :(
Что делать если не запускается из-за Imput
Автор ссылается на уроки по 2D, а где их посмотреть можно?
@SkanerSoft
4 жыл бұрын
Автор тормоз и уроки удалил 2D
@samarkanone9853
3 жыл бұрын
@@SkanerSoft ААА вотоно шо. А то я все переискал, жаль конечно.
Народ, с проблемой столкнулся я. Не подскажете как получить ноду сцены , на которую наведён курсор ?
@f-16fightingfalcon99
3 жыл бұрын
у меня так же нашел решение ?
Что означает символ доллара $, в каких случаях его использовать?
@user-yk5gz8kc3e
3 жыл бұрын
незнаю
@user-yk5gz8kc3e
3 жыл бұрын
тоже хотелось бы узнать
@ruspacesheep
3 жыл бұрын
документацию для кого придумали мммм?
Жесть какая-то. У меня ошибка возникла, что типа пробел и таб используется? Это пипец. Код не работает только из-за того, что там таб или пробел вместе используются?
@SkanerSoft
3 жыл бұрын
Отступы табами
15:44 как доллар сделать синим?
Спасибо за урок, но почему у меня ошибка The argument 'delta' is never used in the function '_process'. ?
@SkanerSoft
4 жыл бұрын
Потому что не ошибка а предупреждение, что переменная нигде не используется. Просто движок тебя информирует, а не пугает)
@FoxSlyme
4 жыл бұрын
@@SkanerSoft видимо пугает, раз человек боится
10:40 где открыть настройки проекта
@user-bm8ew5fy6b
3 жыл бұрын
Управление в Годо можно настроить открыв пункт Проект в верхней панели редактора. Далее Настройки проекта, вкладка Список действий.
У меня возникла проблема, умножение не работает. Все сделал также как автор, но кубик как бегал так и продолжает бегать.
@dmitryefimov9041
3 жыл бұрын
ок, все заработало
Почему-то при нажатии на D, куб двигается вправо, но когда отпускаю, не перестает, и так со всеми клавишами. Что делать?
@captain_t0rch688
3 жыл бұрын
Я короче переписал код по своему, все работает, и без всяких векторов и диров) Типо если клавиша D нажата, то двигать куб влево. Я молодец для начала?
@haryz846
5 ай бұрын
@@captain_t0rch688 Да)
помогите пожалуйста, код введён правильно и куда надо но мой куб всё равно не перемещается
@stintav
2 жыл бұрын
не отвечайте я просто не тому объекту код писал
Прикольные уроки думал уже помочь автору деньжатами, но смутил то факт, что нет уроков по 2D godot причем такое чувство что они были, только по какой-то причине их удалили или скрыли, например в первом видео про 3д постоянные отсылки: " все как с вами делали в 2д". Так чтот лучше посмотрю на каналы с более полными курсами и поддержу их)
У меня тут проблема, написал всё как на экране 13:43 но этот кубик не двигается, в чём проблема?
@z.gustav9147
3 жыл бұрын
Отмена, я понял в чём дело: я писал штуки вообще чему-то другому, правда даже не знаю чему...
Делаю все как показано в видео. Пишу скрипт, но ничего не происходит, или выбивает ошибку. Что мне делать. Ошыбка: unexpected token: Identifier: rotate z.
@SkanerSoft
4 жыл бұрын
Зайди на сайт скачай пример без лишнего кода
@user-cx6lw7nq5l
4 жыл бұрын
На сайт godot?
вопрос почему когда ты зажимаешь у тебя двигаеться а у меня надо много раз кликать где ты это настроил?
@user-xc9yh3os7d
4 жыл бұрын
у тебя наверное написано if Input.is_action_just_pressed() ,надо написать if Input.is_action_pressed()
@tatarin_nbg
3 жыл бұрын
@@user-xc9yh3os7d спасибо у меня была такая же проблема)
А как добавить новую строку в скрипте не могу понять ДА Я ТУПОЙ ЧУУУТЬ ЧУТЬ
dir.normalize() же?
@appledraw2787
3 жыл бұрын
Это я так думаю приводит значение в значение от 0 до 1
Если поставить SPEED = 0.1, то можно и записать if dir: translate(dir*SPEED)
@arabian1797
4 жыл бұрын
Но тогда скорость будет зависить от мощности пк.
@ivayloivanov5766
4 жыл бұрын
@@arabian1797 А почему не будет когда есть дельта? Я правду хочу понять почему. Смотрел примеры, там тоже другой вариант . А чём разница?
@arabian1797
4 жыл бұрын
@@ivayloivanov5766 итак. Функция _process имеет в себе значение delta - это время между кадрами (сколько милисекунд проходит между каждым fps) Если не учитывать это время, то на слабых машинах игра будет медленей, чем на мощных. Такое присутствует в фортнайте, например, из-за чего на мощных пк быстрее стрельба.
@arabian1797
4 жыл бұрын
@@RajPolinovsky я не создатель ролика...
@ivayloivanov5766
4 жыл бұрын
@@arabian1797 Спасобо!
Я вообще запутался. В свойство Scale 2 клетки это 1 еденица измерения. А в translation одна клетка
Внимание вопрос, сделал все по уроку, куб едет только вверх, в чем прикол?
@FoxSlyme
4 жыл бұрын
может, ты скопировал код движения вверх, но не изменил для остальных сторон?
@stounhold1339
3 жыл бұрын
Такая же хрень
У меня кнопка движения не зажимается что делать?
@amebow
4 жыл бұрын
Input.is_action_pressed ? Я тут ошибку допустил и написал is_action_just_pressed -тоже не зажималось, а первый вариант правильный
+
Привет что делать если у сцены все объекты чёрные?
@Makcimm85
4 ай бұрын
Чёрные объекты в версии godot 4, потому что надо закинуть на сцену WorldEnvironment, и потом в инспекторе свойств создать "новый Environment". После этого сцена будет нормальной. Там же небо можно создавать, туман и тд. Можно так же закинуть источник света, и он осветит с нужной стороны сцену, даже без WorldEnvironment.
Это какой язык?
@lepik_official
11 ай бұрын
GDScript
У меня персонаж даже не останавливается я не знаю с чем это связоно
Скрипт камеры создает ошибку! Что делать!?
@NarekYTs
8 ай бұрын
translation на position менять
@user-gu1ul4rm1m
8 ай бұрын
потому что у тебя godot engine 4 (там немного изменили )
у меня не работает.
dir.x = 1 не работет
при запуске проекта всё черно белое. как исправить?
@user-pt5pz6qu6z
2 ай бұрын
в настройке проекта поставить главную сцену
@Alkatras_st
2 ай бұрын
@@user-pt5pz6qu6z можешь поподробнее объяснить?
непонятно, вроде бы пытаюсь вникать, но либо что-то пропустил, либо еще что-то
а почему я нажимаю играть а у меня серый екран
@graynd_pinger
6 ай бұрын
камеру поставь
А почему форум не сделаешь на своём сайте? Русскоязычного форума по годоту нет. Можешь быть первым.
@SkanerSoft
5 жыл бұрын
godot-engine.ru/pages/social/?act=community
@user-sw9ff1ow8h
5 жыл бұрын
@@SkanerSoft Спасибо, не заметил как-то. Хотя, вроде, просматривал сайт.
Почему ты называешь годо, а не годот?
@SkanerSoft
3 жыл бұрын
Так принято)
@captain_t0rch688
3 жыл бұрын
@@SkanerSoft Вот я хочу создать простенькую мобильную игру аля "собирай палки в лесу для костра чтобы костер не потух" с воксельными модельками, при этом комп - ведро. Godot будет лучшим вариантом в качестве движка по сравнению с Юнити?
@SkanerSoft
3 жыл бұрын
Для твоей задачи Godot идеален)
имхо, в современных реалиях нужно не изобретать колесо и писать перемещение с нуля, а пользоваться готовыми поведениями. все-таки не основы программирования в годот, а освоение движка. ни в коем случае не дизлайк, а пожелание. а то как было перемещение 10 лет назад, так оно и осталось. хотя есть готовые аддоны
11:38 ну ведь начал делать правильно с отниманием/сложением, а потом показал плохой пример
гонимый движок , из жопы дракона не советую
@SkanerSoft
3 жыл бұрын
XD