Аватар для Abomination_25
4 / 4 / 0
Регистрация: 13.12.2016
Сообщений: 246

Собственно по UE4 :)

21.02.2017, 14:39. Показов 2027. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь сейчас учить С++ и работать в UE4 - так вот, созрел такой вопрос.
Ведь изначально в UE4 есть уже созданная камера, которую можно прикрутить к любому персонажу, но как быть - если ты хочешь сам написать код для камеры? Просто хочется разобраться конкретно во всем: в создании камеры, в создании персонажа и написании кода, который позволит ему ходить, бегать, прыгать, приседать и пр. Так же, привязку как сделать на уровне кода, а не просто перетащив и attach к персонажу. Понимаю, что уже есть готовое все, ну может кто-то об этом задумывался?
Например, для того, чтобы персонаж бегал, я думаю, нужно:
1)Создать класс Player, имеющий такие характеристики как скорость и масса( для прыжка?).
2)Как-то привязать к классу модельку, чтобы видеть передвижение персонажа. Это вообще не знаю сделать как)
3)Создать функцию для передвижения и прыжка.
Так или что-то еще нужно?
А вот как сделать камеру - это мой главный вопрос.
Может кто-нибудь знающий подсказать?
Просто хочется все по-своему сделать,а не брать готовое - заодно и разберусь) Может конечно и нельзя такое сделать - надеюсь можно

Добавлено через 9 минут
Я бы посмотрел исходники и почитал как там делается,но не могу найти их. Поэтому подумал,а что если можно свой код создать для чего-нибудь? Понимаю, что слишком многого хочу - может если нельзя - тогда посоветуете что делать, а то как не создам проект, так очень много всего того, что я не понимаю - какие-то .h файлы подключаются везде, а где они сами - не найти и не понять, что у них внутри там - для чего та или иная функция, где хранится всё, благодаря чему персонаж двигается Можно ведь допустим создать свой .h файл, который позволяет двигаться персонажу и подключить допустим, к character - который я возьму у UE4?

Добавлено через 2 часа 35 минут
Я, как понимаю, существуют некоторые исходники, которые простому пользователю недоступны? И в них есть уже вот эти интересующие меня камера и передвижение персонажа? Где их можно скачать, чтобы посмотреть и разобраться в их коде?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.02.2017, 14:39
Ответы с готовыми решениями:

UE4 и C++
всем привет и спасибо за внимание. хочу вывести сообщение когда player подходит к неигрового персонажа. могу весь код показать. так. у...

Как получить компоненты из с++
Привет всем Я хочу получить компоненты из с++ в принтах я использовал GetComponentsByClass где указывал нужный мне класс и в цикле...

Как вернуть несколько значений из функции?
Как мне вернуть несколько значений из функции? (Значения в функцию не передаются параметрами)

17
8137 / 2927 / 490
Регистрация: 05.10.2013
Сообщений: 7,856
Записей в блоге: 211
21.02.2017, 15:03
Цитата Сообщение от Abomination_25 Посмотреть сообщение
Я, как понимаю, существуют некоторые исходники, которые простому пользователю недоступны?
Исходники UE4 полностью доступны любому пользователю. Вы можете их скачать с GitHub: Downloading Unreal Engine Source Code

Добавлено через 3 минуты
Проще всего скачать архив с исхониками в два клика: Downloading Unreal as a Zip from GitHub

Добавлено через 2 минуты
Цитата Сообщение от Abomination_25 Посмотреть сообщение
А вот как сделать камеру - это мой главный вопрос.
Вы хотите разобраться, как сам UE4 создаёт камеру с нуля (то есть как реализуется UE4 API для создания камеры)? Или как с помощью UE4 API создать камеру из скриптов на C++?
0
 Аватар для Abomination_25
4 / 4 / 0
Регистрация: 13.12.2016
Сообщений: 246
21.02.2017, 18:38  [ТС]
Скорее всего первое, а потом уже второе) Хочется сделать аналог камере) Как это возможно сделать? И можно поподробнее что такое API? Заранее спасибо, всегда отвечаете на мои вопросы

Добавлено через 7 минут
А чем отличается скаченный архив с github от того UE4, который я качал на сайте epicgames? с гитхаба - там полный доступ имеется ко всему?
0
8137 / 2927 / 490
Регистрация: 05.10.2013
Сообщений: 7,856
Записей в блоге: 211
21.02.2017, 19:01
Цитата Сообщение от Abomination_25 Посмотреть сообщение
И можно поподробнее что такое API?
API - расшифровывается, как Application Programming Interface. Переводится, как "интерфейс программирования приложений, интерфейс прикладного программирования". Информация из Вики: https://ru.wikipedia.org/wiki/API

В общем, программисты, которые сделали движок UE4 предоставил другим программистам-скриптерам (пользователям движка) набор классов, методов, объектов и описали все возможности, которые доступны скриптерам в документации. Вот всё что нам предоставили в открытой форме программисты движка и называется API.

Цитата Сообщение от Abomination_25 Посмотреть сообщение
А чем отличается скаченный архив с github от того UE4, который я качал на сайте epicgames? с гитхаба - там полный доступ имеется ко всему?
Вы с Epicgames скачали полный исходный код движка UE4? Или его скомпилированный установщик? На GitHub хранится полный код движка в виде файлов .h, .cpp и т.д. Вы можете вносить изменения в эти исходники, а потом собирать движок с нуля. Но чтобы это делать нужно быть очень матёрым программистом с большим опытом.

Если хочется понять, что такое камера и 3D графика, то нужно читать другие книги, где объясняют всё с самого нуля. Что такое матрицы и матричные преобразования. Наилучшее, что я встречал переведённое на русский - вот эта книга.
0
 Аватар для Abomination_25
4 / 4 / 0
Регистрация: 13.12.2016
Сообщений: 246
21.02.2017, 21:05  [ТС]
Спасибо, у меня уже был установленный лаунчер - я через него запускал UE4. А теперь скачал с GitHuba'а.
Я понимаю что рано мне еще собирать движок с нуля)А можно как-нибудь написать свою камеру и внедрить в UE4? Или же придется довольствоваться ихней и учить как она сделана?)
0
8137 / 2927 / 490
Регистрация: 05.10.2013
Сообщений: 7,856
Записей в блоге: 211
21.02.2017, 22:34
Цитата Сообщение от Abomination_25 Посмотреть сообщение
Я понимаю что рано мне еще собирать движок с нуля)А можно как-нибудь написать свою камеру и внедрить в UE4?
Имеется ввиду, что исходники в виде программы на C++ и собранное приложение в EXE - это не одно и тоже. То что вы скачали с сайта EpicGames, то есть лаунчер и потом движок UE4 - это уже собранные в EXE приложения. А на GitHub хранятся исходные коды лаунчера и движка на языке C++. Можно скачать эти исходники и переписать всё что вам хочется, как вам хочется. Допустим, они реализовали в движке камеру таким образом, а вам вдруг это не понравилось. Ну допустим вы прочитали книжку, как делать свой движок и свою камеру, вот эту Game Engine Architecture (Second Edition). Научились по ней, как делать свою камеру. Скачивайте исходники движка UE4 с GitHub, удаляете два файла Camera.h и Camera.cpp. Добавляете свои файлы и свою реализацию камеры. Открываете исходники движка и лаунчера в Visual Studio. Компилируете эти исходники и получаете установочные файлы лаунчера и движка. Устанавливаете и теперь в движке ваша реализация камеры. Это очень примерно я описал. Я бы, конечно, так делать не стал бы. Я работаю в Unity, там нет исходников движка. Меня устраивает камера в Unity. Для настройки поведения я бы написал скрипты. Но чтобы написать скипты, нужно чётко понимать какое поведение нужно.
0
 Аватар для Abomination_25
4 / 4 / 0
Регистрация: 13.12.2016
Сообщений: 246
21.02.2017, 23:08  [ТС]
Угу, спасибо) Понял, буду тогда пока пользоваться встроенными функциями в движке) Наверное просто стоит разобраться в из коде и всех этих манипуляциях) просто когда читаешь их любой код, то там очень много include'ов всяких .h файлов , то основные коды подключаются к чему-то и сложно понять как на самом деле все реализовано... Наверное я первый, кто такой фигнёй занимается.. все просто принимают это как должное , мол так сделали, значит так надо) А я думаю, как же это все устроено)
Ведь при создании проекта, нужно взять какие-то основы. Для меня это сам мир, камера , персонаж и возможность управлять персонажем. Допустим в коде я напишу что-то, но для того, чтобы вывести на экран нудно знать как работает их API? Например характеристик персонажа - это просто числа ,их не надо выводить, просто делаем их частью класса Персонажа. То есть их увеличение и прочее не требует ничего, ведь они в Персонаже лежат, а вот персонажа надо вывести на экран) Так же и взаимодействие его с окружение - стеной например : Он ведь не должен проходить сквозь нее, то есть нудно придумывать физику, но опять же как ее ввести на экран... Много вопросов, наверное пока пойду разбираться с UE4 документацией и уроками по нему..
0
8137 / 2927 / 490
Регистрация: 05.10.2013
Сообщений: 7,856
Записей в блоге: 211
22.02.2017, 00:01
Цитата Сообщение от Abomination_25 Посмотреть сообщение
все просто принимают это как должное , мол так сделали, значит так надо) А я думаю, как же это все устроено)
Это таже ситуация, как с cout и cin. Вы их подключаете с помощью include и пользуетесь, посмотрев в документации какие есть возможности. Обычно то что подлючается с помощью include стараются делать максимально гибким, и максимально подробно описывают в документации.

Добавлено через 4 минуты
Цитата Сообщение от Abomination_25 Посмотреть сообщение
Допустим в коде я напишу что-то, но для того, чтобы вывести на экран нудно знать как работает их API?
Это называется сокрытие реализации. Вам дают отрытый интерфейс в виде API-функций (методов/классов) и описывают в документации, для чего нужен тот или иной класс и его открытые методы. При этом вам как прикладному программисту не нужно знать внутреннюю реализацию этого API, то есть как оно внутри работает.
0
 Аватар для Abomination_25
4 / 4 / 0
Регистрация: 13.12.2016
Сообщений: 246
22.02.2017, 00:05  [ТС]
Пойду почитаю-ка документацию и доразберусь с интерфейсом как-нибудь) Спасибо)
0
8137 / 2927 / 490
Регистрация: 05.10.2013
Сообщений: 7,856
Записей в блоге: 211
22.02.2017, 00:14
Работа с движком - это как палка о друх концах. С одной стороны вам движок предоставляет богатый набор классов и их открытых методов, а так же различные вспомогательные программы, такие как редактор, настройка материалов, анимаций и многое другое. Но с другой вы ограничены только тем API, которое реализовали программисты движка. При этом они реализовали его максимально гибко, а многие программисты и компании со всего Мира тестируют это API в своих проектах и выявляют ошибки, а разработчики их исправляют и оптимизируют, выпускают новые версии с исправленными ошибками (иногда добавляют новые, которые потом буду выявлены и исправленны). Движок разрабатывается большим количеством людей долгое время, каждый год и каждый месяц, то есть понять всё в детялях, весь его исходный код, наверное, невозможно, так как там, скорее всего, сотни тысяч строк кода. Поэтому разработчики стараются делать встренные иструменты для облегчения работы и делать максимально гибкое и понятное API c максимально подробным описанием.

Добавлено через 2 минуты
Вы расплачиваетесь за все удобства движка большим весом приложения, большим требованием к железу, и возможно иногда сложно будет реализовать какие-то очень специфичные вещи, которых ещё нет в движке.
0
 Аватар для Гром
212 / 131 / 28
Регистрация: 20.03.2009
Сообщений: 1,123
Записей в блоге: 16
22.02.2017, 18:33
И здесь я вам об этом напишу: разберитесь сначала с языком программирования, а потом изучайте движки. Я прекрасно понимаю, каково это, когда руки чешутся начать скорее-скорее делать что-то крутое, но это так не работает.

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

Наберитесь терпения. Первый и самый главный этап - хорошо понять основы языка. Условия, циклы, функции, классы, разделение на файлы, исключения, стандартная библиотека (в первую очередь - контейнеры и алгоритмы STL), наследование, самые основы шаблонов. Когда вы будете довольно уверенно понимать эти и связанные с ними темы и сможете самостоятельно написать, ну например, текстовый морской бой против компьютера (с использованием простых команд типа "D1" для стрельбы по кораблю противника и "1/2/3" для ответа "мимо/ранил/потопил") с простейшим ИИ, с использованием полудесятка прилично спроектированных классов, стандартных контейнеров и файлом main.cpp длиной не более 10-20 строк - тогда можете быть уверены, что готовы продвигаться дальше.

Вот только тогда и начнется для вас второй этап - во-первых, более углубленное изучение языка, практик программирования (в т.ч. разных принципов проектирования), во-вторых, использование движков.

Конечно, вы можете начать что-то писать в UE прямо сейчас, но это путь в никуда. Когда вы упретесь в непроходимый барьер, вы в лучшем случае поймете, что придется на время отложить попытки идти вперед, вернетесь назад и все-таки начнете разбираться в том, что использовали. В худшем - разочаруетесь в игрострое вообще и программировании в частности, и просто забросите все это дело.
0
8137 / 2927 / 490
Регистрация: 05.10.2013
Сообщений: 7,856
Записей в блоге: 211
22.02.2017, 18:56
В случае с UE4 я бы всё-таки рекомендовал бы использовать пока только Blueprint. Так можно с встроенными инструментами UE4 постепенно знакомиться. Blueprint это очень простой визуальный язык и он наиболее популярен среди разработчиков на UE4. По нему очень много туториалов, как на русском, так и на английском - это в отличае от C++ в Unreal. Про C++ в UE4 - это вообще отдельная тема. Это крайне сложно, даже когда у меня был немалый опыт с C++. И это не как с Unity, где можно изучать C# прямо в движке и довольно комфортно. А в UE4 на C++ очень тяжело начать программировать.
0
 Аватар для Abomination_25
4 / 4 / 0
Регистрация: 13.12.2016
Сообщений: 246
26.02.2017, 11:22  [ТС]
Спасибо за ответы. Пока уже осваиваюсь по-немногу) Думаю, что пока буду читать с++ книги. А что посоветуете из практики в создании игр? Прямо только с++ программировать или подключить там графические библиотеки для отображения разного всего? Думаю буду читать с++ , учиться блупринту и писать маленькие игры в visual studio
0
8137 / 2927 / 490
Регистрация: 05.10.2013
Сообщений: 7,856
Записей в блоге: 211
26.02.2017, 13:52
Цитата Сообщение от Abomination_25 Посмотреть сообщение
А что посоветуете из практики в создании игр?
Традиционно - начните с написания демки классической змейки. Вам нужно будет научиться выводить квадрат на экран и стирать его. Это, конечно, нужно делать не в UE4.

Добавлено через 2 часа 2 минуты
Как пример, один человек для тренировки сделал простую игру (змейка в 3D) без движков, используя только C++, OpenGL и WinAPI: Battle Snake. У меня есть в планах портировать её на C#+OpenTK и JavaScript+WebGL
0
 Аватар для Abomination_25
4 / 4 / 0
Регистрация: 13.12.2016
Сообщений: 246
26.02.2017, 16:24  [ТС]
Ааа, спасибо, вот вопрос остается еще - то есть просто Visual StudiO И все? Не надо никакие библиотеки подключать графические: OpenGL и другие? В опенГЛ ведь есть вывод на экран изображений, а в с++ я не знаю как окно сделать даже
0
8137 / 2927 / 490
Регистрация: 05.10.2013
Сообщений: 7,856
Записей в блоге: 211
26.02.2017, 17:03
Цитата Сообщение от Abomination_25 Посмотреть сообщение
Не надо никакие библиотеки подключать графические: OpenGL и другие?
Надо.

Цитата Сообщение от Abomination_25 Посмотреть сообщение
а в с++ я не знаю как окно сделать даже
Начните с выбора на чём сделать окно. Из тех что я пробовал: WinAPI, FreeGLUT, GLUT, GLFW, Qt. Есть и другие варианты. Попробуйте разные варианты и выберите какой вам больше понравится. Можно на youtube искать и повторять. Чтобы создать окно на WinAPI нужно только подключить include <windows.h> А если на GLUT, то несложно найти, как подключать в интернете. Я недавно писал, как я подключал: Исходники Проектов на OpenGL
0
 Аватар для Abomination_25
4 / 4 / 0
Регистрация: 13.12.2016
Сообщений: 246
26.02.2017, 18:25  [ТС]
Спасибо) А вот вы написали "Надо." А какие лучше и проще подключить? Что посоветуете? Знаю, что очень много вопросов задаю,просто очень интересно узнать)
0
8137 / 2927 / 490
Регистрация: 05.10.2013
Сообщений: 7,856
Записей в блоге: 211
26.02.2017, 21:16
Цитата Сообщение от Abomination_25 Посмотреть сообщение
А вот вы написали "Надо." А какие лучше и проще подключить? Что посоветуете?
Если взять FreeGLUT, GLUT, GLFW, то подключается стандартно-одинаково, как все библиотеки: OpenGL недостатки по библиотекам (GLUT, GLAUX) Где скачать, как подключить, как работать в среде Visual Studio На сайте этих библиотек есть инструкции, как подключать. А так же можно через поиск в инете найти текстовые туторы или видео-инструкции.

Лично я решил использовать C# + OpenGL (библиотека OpenTK) и JavaScript + WebGL. Это всё OpenGL. Мне C# нравится больше, чем C++.

Добавлено через 2 часа 36 минут
А может лучше даже создать окно на WinAPI и посмотреть, как там на окне можно рисовать, например, с помощью GDI, OpenGL или DirectX. Часто студенты на GLUT создают окна и рисуют на них с помощью OpenGL. Некоторые скачивают Qt. Вариантов масса и все они непростые.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.02.2017, 21:16
Помогаю со студенческими работами здесь

Не создается проект
Была проблема с проблема с SDK, установил, не помогло. The project could not be compiled. Would you like to open it in Visual Studio?...

Аналог Blueprint из UE4
Всем привет =) Люди подскажите пожалуйста, в какую сторону мне копать чтобы можно было бы сделать подобие Blueprint из UE4? Пожалуйста не...

UE4 не создает проект
Была проблема с проблема с SDK, установил, не помогло. The project could not be compiled. Would you like to open it in Visual Studio?...

Бесконечная компиляция шейдеров
Компиляция шейдеров не заканчивается. При начале компиляции было 381 шейдер, Спустя 2 часа столько же и осталось.

Можно ли сделать 2д квест?
Сабж. Я не очень шарю в движках. Хочу сделать игру, по геймплею и структуре максимально похожую на Deponia. Возможно ли?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

Новые блоги и статьи
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг. Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя. Странные серые краски проникают и. . .
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
Множества в Python
py-thonny 11.06.2025
В Python существует множество структур данных, но иногда я сталкиваюсь с задачами, где ни списки, ни словари не дают оптимального решения. Часто это происходит, когда мне нужно быстро проверять. . .
Работа с ccache/sccache в рамках C++
Loafer 11.06.2025
Утилиты ccache и sccache занимаются тем, что кешируют промежуточные результаты компиляции, таким образом ускоряя последующие компиляции проекта. Это означает, что если проект будет компилироваться. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru