Бажественно. Гениально. Джва года ждал. Хотелось бы проект какого-то шутера для примера со всеми вышеперечисленным, и самое главное тайм коды каждой возможности в видео.
Для тех кто тоже не знает куда зашел автор на 10:39. сверху справа кнопка Проект, там и будет это окно
Поглядел ролики думаю блин как классно паренек все объясняет,речь поставлена все класс...начал делать по примеру ролика-вообще ничего не работает из функций так как ролик уже старый а версия годота новая,в общем актуальность серии уроков под большим вопросом ну а в целом спасибо
благодарю за отличное видео и понятное объяснение!) как вы и говорили в новой версии есть небольшие отклонения, но если знать английский и главное читать, что пишет система, то по вашим видео легко можно научиться работать с этим движком. С меня лайк и подписка!
Ошибка со следящей камерой в версии 4.2.1: нужно заменить translation на global_transform.origin, ввиду изменений самого движка. Автор видео расписал все правильно, просто код поменялся по прошествии времени. Теперь функия выглядит примерно так:
func _process(delta):
look_at($"../Ваш объект".global_transform.origin, Vector3(0,1,0))
Пришлось потратить 8 часов что бы понять)
Ваш комментарий спас судьбы многих начинающих разработчиков. Премного благодарствую!
Круто! Спасибо за видео! Я все очень хорошо понял!
сижу на godot engine 4.1.1 все работало дошёл до момента с камерой если в look_at писать ($'../(ваше название)'.translation, Vector3(0,1,0)) ничегот работать не будет, но если поменнять translation на position камера магическим образом начнёт следовать за кубиком
я так понимаю translation в 4й версии заменили на position... потому что у меня вообще нет никакого translation даже в документации
Короче если имеются какие-то проблемы с изменением параметров акторов, посмотрите название этих параметров в Инспекторе (как в случае с translate в новых версиях godot её переименовали на position)
Дельный видос, лайк. )
Последний пример напомнил мне резидент ивл 2
приятный движок. Видео тоже хорошее, но раздражает то, что автор склеивает картинку, когда куда-то переходит. Щас буду сам искать список действий к которому резко перескачили на 10:36
Ура, наконец видео вышло!
Ну классно!!!
Очень крутой урок, спасибо большое.
большое спасибо
про нормализацию можно было упомянуть, а то при движении наискосок скорость будет выше чем просто по одной из осей.
@@Godot3D когда пользователь жмет вперед и вправо вектор направления движения равен (1, 0, -1) и длина такого вектора больше, чем когда он жмет на одно из направлений (пр. 0, 0, -1). в 2д может быть наглядней нарисуте вектора (0, 1) и (1, 1). Длина второго больше а значит при расчете скорости наискосок персонаж будет двигаться быстрее. Решением является метод .normilized() у любого вектора, который приведет его длину к единице. Теперь движение с одинаковой скоростью в любом направлении. Если хотите проверить, выводите конечную скорость в консоль без нормализации направления и с нормализацией. Во втором случае одна будет постоянной. Очень много игр, где разрабы не продумали эту банальную вещь, когда наискосок бежать быстрее, чем просто прямо) И это успешные популярные проекты.
И информация об этом есть в документации в разделе с математикой.
А, понял) Ну да, это логично)) Где-то я делал её именно для этого) Спасибо за ценное замечание!
Очешуенные уроки, очешуенный игровой редактор!
Плюс, запускается на линуксе и есть в стиме!
дааааааа это огромный плюс, и весит немного: 1,5ГБ, я например со старого ноута с линукс мятой и вообще не глючит :3
Надо расти над собой в блендере. Потому что такой автомат - это фу. Крайне советую пройти вот эти видеоуроки по моделированию жигулей. Они медленные и размерные. В реальном времени, без ускорялок и тд. При чём надо не просмотреть их, а именно повторить. Тогда будет толк. Заодно у тебя будут жигули в конце)) Моя первая модель была похожа на твой автомат и представляла собой бутылку. Мою вторую я делал смотря этот плейлист параллельно. Заняло это уже около трёх дней.ХЗ сколько в часах, часа по 2-4 каждый день. И вышло уже совсем непостыдно. Позволило поверить в себя. И да, моделирование отнимает ОЧЕНЬ много времени, так что пара часов на модельку у меня выходит если, я ножик моделю, в лучшем случае. Обычно куда больше, все выходные, например. Так что не стыдись, что у тебя два часа ушло. Два часа - это ниочём.
Вот ссылка на плейлист по моделированию жигулей, мне он очень помог.
И старайся моделить по картинкам-референсам, потому что глаза тебя обманут и на глазок выходит фигня какая-то.
ua-cam.com/video/9bzyepKiVaA/v-deo.html
Также смотри канал Криворукого Моделлера.
Для текстурирования скачай Сабстенс-пейнтер, не мучайся.
Для тех, кто как и я , не понял что за хрень эта дельта:
В цикле _process есть аргумент delta . Если вывести его содержимое на экран то получим ничто иное как межкадровое время. То есть количество времени прошедшее между отрисовкой кадров. При 60 фпс дельта будет равна ~0.01666 (1/60)
Представим код, в котором в каждом кадре вы прибавляете к переменной 10. Х +=10
При частоте 60 кадров в секунду , через секунду переменная будет равна 600. А при 30 вы получите 300 .
Для того чтобы избежать такое неравенство (а на слабых компьютерах часто может проседать фпс), надо использовать в расчетах умножение на дельту. По сути, грубо говоря мы как бы указываем в коде сколько надо прибавить или убавить за межкадровое время. В нашем случае : Х += 10*delta, и при 60 фпс и при 30 фпс, результат будет ~20.
Отсутствие дельты будет сильно влиять на отображение анимации при низком фпс.
Ну и на последок напомню, что если вы работаете в _physics_process , то пересчитывать на дельту не надо.
Шикарно
Да, интересно.
Я один который делаю всё как в видео, и всё равно выдаёт ошибку?
Нет, это просто закон подлоси всех сред разработки, игровых движков и тд
Это всё заговор разрабов! На заграничном упубе, то же самое. Давно поняли что их наеб..ли😂
ты лучший
Круто
krasauvchik)))
Короче вместо translation используйте position
Не знаю , по делу или нет :) Очень хотелось бы видео про материалы в godot. Будет ли про это видео?
вопросы по делу, на неделе начал годо смотреть, опыта мало, так вот:
2 вопроса
1. как наложить 2д интерфейс поверх 3д игры
2. персонаж двигается на WSAD, надо привязать камеру к мыше чтобы можно было смотреть чуть дальше, но приэтом персонаж всегда оставался в кадре, как это оптимизировать? (вид сверху)
Ребята привет!
Спасибо автору за уроки!!!
у меня GODOT4. И движение камеры не работает как показано в уроке.
работает с таким кодом look_at($'../player'.get_transform().origin, Vector3(0,1,0))
никто не пояснит это правильно? при чем если убрать вектор3 то все равно будет работать.
Движение не работает, проверь код. У меня работает только движение вниз(назад)
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)
Прикольные уроки думал уже помочь автору деньжатами, но смутил то факт, что нет уроков по 2D godot причем такое чувство что они были, только по какой-то причине их удалили или скрыли, например в первом видео про 3д постоянные отсылки: " все как с вами делали в 2д". Так чтот лучше посмотрю на каналы с более полными курсами и поддержу их)
Вопрос : Я напечатал такой же код из 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 было также.
Можно ли вызывать эту проверку не каждый кадр а от другх событий?
👍
10:40 где открыть настройки проекта
Управление в Годо можно настроить открыв пункт Проект в верхней панели редактора. Далее Настройки проекта, вкладка Список действий.
Можно пожалуйста по подробней про delta значение/переменную или что это вообще
Delta это время, прошедшее между предыдущем и текущем кадром. Умножение на дельту позволяет избавится от привязки скорости выполнения задачи (в данном случае перемещении объекта) к фпс в игре.
Parser Error: Expected '(' for parent function call. выдаёт такую ошибку
Я чтото по векторам ничего не понял. Можешь подробнее базу изложить?
в новой версии нету сриптов таких сделай гайд пж про новую версию
Используйте версию 3.1.2
У меня персонаж даже не останавливается я не знаю с чем это связоно
Почему камера фокусируется на объекте но движется намного медленнее?
15:11 "Надо выйти на уровень выше"...чтобы камера следила за объектом player
Объясните пожалуйста как это работает.
Что именно тебе непонятно?
Если ты имеешь ввиду фразу в кавычках, то объясняю:
Представь себе дерево элементов. Каждый узел этого дерева может содержать дочерние элементы. Возьмём какой-нибудь абстрактный узел А, и добавим к нему *дочерние* узлы B, C, D. При этом узел A называется *родительским* по отношению к любому из узлов B, C, или D.
В данном случае узел A - это узел сцены "root", узлы B, C, D - это игрок "player", плоскость "MeshInstance2" и камера "Camera" соответственно. Так вот, скрипт привязан к объекту камеры, поэтому, чтобы сослаться на игрока, нам нужно сначала обратиться к родительскому элементу ("Надо выйти на уровень выше"...), т.е. сцене, а потом обратиться к одному из его дочерних элементов, а именно - к тому, который является игроком.
Чтобы тебе было легче представлять, сравни эту систему с папками на компьютере.
Я вообще запутался. В свойство Scale 2 клетки это 1 еденица измерения. А в translation одна клетка
Вопрос такой: поддерживает годо возможность создания бесшовных миров? И если да то как это реализовано
непонятно, вроде бы пытаюсь вникать, но либо что-то пропустил, либо еще что-то
Почему-то при нажатии на D, куб двигается вправо, но когда отпускаю, не перестает, и так со всеми клавишами. Что делать?
Я короче переписал код по своему, все работает, и без всяких векторов и диров) Типо если клавиша D нажата, то двигать куб влево. Я молодец для начала?
Устанавливаю камеру и все-равно серый экран. Что делать?
Делаю как на видео, но с камерой кое что...она поворачивается за плейером...не знаю где отключить, удаляю камеру, ставлю новую, но все равно она за плейером поворачивается и все...что делать? У тебя вроде она стоит.
Что делать если не запускается из-за Imput
Если поставить SPEED = 0.1,
то можно и записать
if dir:
translate(dir*SPEED)
@@arabian1797
А почему не будет когда есть дельта?
Я правду хочу понять почему.
Смотрел примеры, там тоже другой вариант .
А чём разница?
@@ivayloivanov5766 итак.
Функция _process имеет в себе значение delta - это время между кадрами (сколько милисекунд проходит между каждым fps)
Если не учитывать это время, то на слабых машинах игра будет медленей, чем на мощных.
Такое присутствует в фортнайте, например, из-за чего на мощных пк быстрее стрельба.
Всем добрый день, подскажите как решить проблему)) в общем суть в чем, сделал скрол камеры для 2д игры, камере задал лимиты, все работает хорошо, скролится и за лимиты не выходит, но в камеру добавлены дочерние ноды типа лейбл и вот эта нода при скроле летает и за пределы лимитов и вообще повсюду, кто нибудь сталкивался с таким? заранее спасибо !!!🤗
У меня возникла проблема, умножение не работает. Все сделал также как автор, но кубик как бегал так и продолжает бегать.
Где исходник скачать?
Я бы написал так (dir * speed * delta)
А как добавить новую строку в скрипте не могу понять ДА Я ТУПОЙ ЧУУУТЬ ЧУТЬ
Спасибо за урок, но почему у меня ошибка The argument 'delta' is never used in the function '_process'. ?
Здравствуйте, а можно писать на lua в этом движке, есть ли информация?
На Lua писать нельзя! В стандартной комплектации поддерживаются: GDscript, NativeScript и Визуальное программирование! Единственный сторонний язык который поддерживается, это C#, но для того чтобы писать на нём нужна MONO версия движка!
Народ, с проблемой столкнулся я. Не подскажете как получить ноду сцены , на которую наведён курсор ?
dir.x = 1 не работет
помогите пожалуйста, код введён правильно и куда надо но мой куб всё равно не перемещается
у меня не работает.
Привет что делать если у сцены все объекты чёрные?
Чёрные объекты в версии godot 4, потому что надо закинуть на сцену WorldEnvironment, и потом в инспекторе свойств создать "новый Environment". После этого сцена будет нормальной. Там же небо можно создавать, туман и тд.
Можно так же закинуть источник света, и он осветит с нужной стороны сцену, даже без WorldEnvironment.
вопрос почему когда ты зажимаешь у тебя двигаеться а у меня надо много раз кликать где ты это настроил?
у тебя наверное написано if Input.is_action_just_pressed() ,надо написать if Input.is_action_pressed()
имхо, в современных реалиях нужно не изобретать колесо и писать перемещение с нуля, а пользоваться готовыми поведениями. все-таки не основы программирования в годот, а освоение движка. ни в коем случае не дизлайк, а пожелание. а то как было перемещение 10 лет назад, так оно и осталось. хотя есть готовые аддоны
У меня тут проблема, написал всё как на экране 13:43 но этот кубик не двигается, в чём проблема?
Отмена, я понял в чём дело: я писал штуки вообще чему-то другому, правда даже не знаю чему...
Почему ты называешь годо, а не годот?
@@Godot3D Вот я хочу создать простенькую мобильную игру аля "собирай палки в лесу для костра чтобы костер не потух" с воксельными модельками, при этом комп - ведро. Godot будет лучшим вариантом в качестве движка по сравнению с Юнити?
Внимание вопрос, сделал все по уроку, куб едет только вверх, в чем прикол?
может, ты скопировал код движения вверх, но не изменил для остальных сторон?
Делаю все как показано в видео. Пишу скрипт, но ничего не происходит, или выбивает ошибку. Что мне делать. Ошыбка: unexpected token: Identifier: rotate z.
У меня кнопка движения не зажимается что делать?
Input.is_action_pressed ? Я тут ошибку допустил и написал is_action_just_pressed -тоже не зажималось, а первый вариант правильный
Я не смогу делать игры я не умею программировать😢😢😢
А почему форум не сделаешь на своём сайте? Русскоязычного форума по годоту нет. Можешь быть первым.
@@Godot3D Спасибо, не заметил как-то. Хотя, вроде, просматривал сайт.
+
11:38 ну ведь начал делать правильно с отниманием/сложением, а потом показал плохой пример
Жесть какая-то. У меня ошибка возникла, что типа пробел и таб используется? Это пипец. Код не работает только из-за того, что там таб или пробел вместе используются?
Не получается сложить dir и delta. Не получается запихнуть аргумент Vector3 в метод look_at. Автор либо маг, либо монтажный обманщик
отвечу вам вместо владельца канала, вы накосячили!
скорее всего вы используете более новую версию движка (или старую)
если новее то дело всё в том, что такой префикс как "delta" больше не используется ибо работает не корректно, вместо него нужно использовать префикс "_delta", также нужно записать и в строке, где "dir * _delta", в этом случае всё работает правильно, так же, как и на видео. Ещё добавлю про "Vector3" в "look_at", всё работает правильно, скорее всего вы совершили ошибку там, где написано "player", туда нужно написать название которое у вас написано на конкретном узле, в нашем случае это игрок (квадратик), если название игрока в столбе узлов записано "HeraChiva", то вместо " $'../player' " нужно написать " $'../HeraChiva' "! Иначе при старте, ваш обзор будет стоять на месте и квадратик не будет реагировать, т.к. из-за ошибки написания скрипта система не сможет обрабатывать ваши запросы. Надеюсь понятно объяснил.
@@anktosproject189 написал значит
func _delta():
rotation.y += 5
Не работает(ошибку не выдаёт).
Пробовал и 10 и 50 и 90 вписывать, не помогает. А вот если написать func _ready():
То работает, но только один раз, что оно и логично
Ты скорей всего перепутал точку и запятую,и написал Vector3(0.1.0) а надо так Vector3(0,1,0)
Попробуй может получится
@@anktosproject189 delta используется а _delta проста ошибка
@@АрсенийАлексеев-н2г Я новичок, но думаю надо было написать не: "func _delta():", а надо _delta передать в качестве аргумента то есть в "()". "func process(_delta):"