LifeEXE | Unreal Engine | CG
2.1K subscribers
566 photos
810 videos
715 links
Download Telegram
Media is too big
VIEW IN TELEGRAM
📱 Всем привет, всем привет! 📱

В 🎮nreal Engine имеется плагин, который позволяет делать избирательную цветокоррекцию прямо в 3D-пространстве сцены ⬇️

🔗 Color Correct Regions

CCR позволяет размещать в сцене специальные регионы, внутри которых можно применять свои настройки цветокоррекции. Это работает в реальном времени и не требует постобработки!

💡 Главное отличие от Post Process Volume ⬇️

Post Process Volume накладывает эффект на камеру, когда игрок заходит в объем — меняется картинка целиком.

Color Correct Regions
меняет цвет самих объектов, находящихся внутри региона — остальная сцена и камера остаются неизменными.

Как включить ⬇️

1️⃣Edit > Plugins > Color Correction Regions > Restart
2️⃣ Необходимо установить Custom Depth Stencil Path в Enabled With Stencil в настройках проекта Edit > Project Settings > Rendering

💡 Для удобства рекомендую использовать панель Color Grading (Window > Color Grading) — это специализированный интерфейс для работы с цветом в ваших сценах. Панель позволяет управлять настройкам Color Correction Regions и Post Process Volume.

📌 Демонстрация работы плагина в прикреплённом видео


🔤🔤🔤🔤🔤🔤🔤

#ccr #gamedev #tips_and_tricks #UEtips #unrealengine #ue5 #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19761🦄11
📱 Всем вечерний привет! 📱

При отображении массива структур в Unreal Engine спецификатор TitleProperty позволяет настроить текст, который выводится в заголовке каждого элемента.

Поддерживается структурное форматирование в стиле FText::Format для комбинирования нескольких параметров в одной строке ⬇️

USTRUCT(BlueprintType)
struct FWeaponStats
{
GENERATED_BODY();

UPROPERTY(EditAnywhere, BlueprintReadWrite)
FName Name;

UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 Damage;

UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 Ammo;
};

...

UPROPERTY(EditAnywhere)
TArray<FWeaponStats> WeaponsLame;

UPROPERTY(EditAnywhere, Meta = (TitleProperty = "{Name} - {Damage} DMG"))
TArray<FWeaponStats> Weapons;


🔤🔤🔤🔤🔤🔤🔤

#gamedev #tips_and_tricks #UEtips #unrealengine #ue5 #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
120🔥531111🦄2
Media is too big
VIEW IN TELEGRAM
🆒 Всем привет, всем привет! 🆒

Мини tip для 🎮nreal Engine — отображение статистики по кадру и памяти можно аккуратно выводить в тулбар самого окна редактора 😎

🔤Edit > Editor Preferences
🔤Performance > Show Frame Rate And Memory

💡 Ctrl+Shift+H выводит FPS в HUD вьюпорта. Больше хоткеев в последнем видео на канале — TOP-50 UNREAL ENGINE HOTKEYS

🔤🔤🔤🔤🔤🔤🔤

🤝 Поддержать:
Patreon | Boosty | PayPal

Ресурсы:
GitHub | Itch | X | Wiki | LifeEXE School

#tips_and_tricks #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
21🔥1212🦄11
▶️ Всем привет, всем привет! ▶️

Непостоянная рубрика: Воскресный C++ 🦊

Типизация и применение std::string_literals в современном C++

📕 Полноценная статья доступна для подписчиков Boosty и Patreon


using namespace std::string_literals; — это директива в C++, которая позволяет использовать суффикс s для создания объектов std::string напрямую из строковых литералов.

Эта возможность появилась в стандарте C++14.

В «классическом» C++ строковый литерал "Hello" имеет тип const char* — C-style массив символов, а не std::string➡️

#include <string>

int main()
{
auto str1 = "Hello"; // Тип: const char*

using namespace std::string_literals;
auto str2 = "Hello"s; // Тип: std::string
return EXIT_SUCCESS;
}


⁉️ ЗАЧЕМ ЭТО НУЖНО ⁉️

1️⃣ КОНКАТЕНАЦИЯ СТРОК

Без string_literals нельзя просто взять и сложить два const char*➡️

std::string result = "Hello" + ", world";

// ОШИБКА компиляции!
// компилятор выдаст что-то такое ->
// error: invalid operands to binary expression

💡 Почему? Потому что в C++ нельзя складывать два указателя (адреса памяти). Это не имеет математического смысла. Указатели можно вычитать в контексте одного массива, но не складывать.

А вот с суффиксом s это работает, так как вызывается перегруженный operator+ для класса string ➡️

#include <print>
#include <string>

int main()
{
using namespace std::string_literals;

auto result = "Hello"s + ", world"s;
std::println("{}", result);

return EXIT_SUCCESS;
}


2️⃣ ПЕРЕГРУЗКА ФУНКЦИЙ (Вот тут бывает больно!)

Что будет выведено в консоль? ➡️

#include <print>
#include <string>

void process(bool param)
{
std::println("bool");
}

void process(const std::string& str)
{
std::println("string");
}

int main()
{
using namespace std::string_literals;

process("hello"); // ?
process("hello"s); // ?

return EXIT_SUCCESS;
}


Ответ может удивить:
😂 process("hello") выведет bool
😉 process("hello"s) выведет string

Почему так? У компилятора есть два пути➡️

1️⃣От const char* к std::string через конструктор класса — это User-defined conversion.

2️⃣ От указателя к bool (любой не null указатель = true) — это Standard conversion.

🔗Пример в Compiler Explorer

В C++ стандартные преобразования имеют приоритет. Поэтому строка молча превращается в true, и вы попадаете не в ту функцию — суффикс s решает эту проблему.

💡 В продакшн коде таких семантически далёких перегрузок лучше избегать. Но на реальных сигнатурах с дефолтами и несколькими параметрами такое легко пропустить. Поэтому это еще один из способов отстрелить себе ногу в С++

📕 Больше информации, ньюансов и примеров со ссылками на Compiler Explorer в полноценной статье на Boosty и Patreon


🔤🔤🔤🔤🔤🔤🔤

🤝 Поддержать:
Patreon | Boosty | PayPal

Ресурсы:
GitHub | LifeEXE School | Itch | X | Wiki | Курс по UE

#cpp #tips_and_tricks #code #lifeexe #lifeexecode #lifeexeEDU
Please open Telegram to view this post
VIEW IN TELEGRAM
527🔥1873👍1🦄1
Media is too big
VIEW IN TELEGRAM
📱 Всем привет, всем привет! 📱

В Unreal Engine есть мощная команда консоли — dumpGPU

Она позволяет сдампить сырые бинарные данные промежуточных ресурсов с детализацией до конкретного прохода рендер-графа (render graph pass) ➡️

🔗 GPUDump Viewer Tool

Результат дампа генерируется в виде HTML-страницы, которую можно открыть в любом браузере.

Самая интересная фишка инструмента — встроенный вьюер текстур. Он работает на базе WebGL и позволяет вам писать кастомные пиксельные шейдеры прямо в браузере. Это дает возможность визуализировать каналы текстур, проверять значения и распаковывать данные именно так, как вам нужно для отладки 🔥

Примеры из видео ⬇️

vec3 texel = fetchTexel(uv);
display.rgb = 1.0 - texel;


vec3 texel = fetchTexel(uv);
display.rgb = texel * 0.5 + vec3(uv.x, uv.y, 0.0) * 0.5;


🔤🔤🔤💶

#rendering #debug #gpu #tips_and_tricks #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
👌171612🔥6👍2🦄11
📱 Всем привет, всем привет! 📱

Мини tip для 🎮nreal Engine — мета спефицикатор ReadOnlyKeys позволяет блокировать редактирование ключей ассоциативного массива в блюпринтах 😎

Обычная TMap — ключи можно случайно изменить ⬇️
UPROPERTY(EditAnywhere)
TMap<ECharStat, float> RegularStats;


✔️ Ключи заблокированы! Можно менять только значения ⬇️
UPROPERTY(EditAnywhere, meta = (ReadOnlyKeys))
TMap<ECharStat, float> StatsWithReadOnlyKeys;


🔤🔤🔤🔤🔤🔤🔤

🤝 Поддержать:
Patreon | Boosty | PayPal

Ресурсы:
GitHub | LifeEXE School | Itch | X | Wiki | Курс по UE

#code #tips_and_tricks #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3687🦄31❤‍🔥1
📱 Всем вечерний привет! 📱

Мини tip для 🎮nreal Engine — для вывода в консоль сообщений из блюпринтов с цветовым кодированием Error или ⚠️Warning достаточно добавить подстроку Warning: или Error:

💡 Работает в любой позиции строки, не только в начале

‼️ Напоминаю, что вывод сообщений с конкретным verbosity должен быть семантически корректным (не просто для классной подсветки), иначе можно завалить тесты или статический анализатор в продакшне

Подробнее обо всех тонкостях тестирования в бесплатном курсе на моём ютуб канале — Тестирование в Unreal Engine

#code #tips_and_tricks #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥321262🦄2
📱 Всем привет, все привет! 📱

Cетап материала в 🎮nreal Engine для эффекта «сплющивания» геометрии при контакте с поверхностями 🫠

В основе лежит использование Distance Fields — материал считывает расстояние до ближайшей поверхности и через World Position Offset деформирует вершины меша.

💡 Обязательно установите Affect Distance Field Lighting в false в настройках самого меша

#material #shader #distancefields #tips_and_tricks #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥3087🍾1🦄1
▶️ Всем привет, всем привет! ▶️

Непостоянная рубрика: Воскресный C++ 🦊

➡️Raw String Literals: префикс R

📕 Полноценная статья доступна для подписчиков Boosty и Patreon


Raw String Literals (префикс R)
— это необработанные строковые литералы (raw string literals), появившиеся в C++11.

Внутри R"(...)" все символы интерпретируются буквально — не нужно экранировать специальные символы и переносы строк ⬇️
R"(HelloWorld)" // Базовый синтаксис
R"delimiter(HelloWorld)delimiter" // С delimiter


⁉️ ЗАЧЕМ ЭТО НУЖНО ⁉️

1️⃣ РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ

const std::regex pattern("\\d{3}-\\d{2}-\\d{4}");
const std::regex pattern(R"(\d{3}-\d{2}-\d{4})");


2️⃣ МНОГОСТРОЧНЫЙ JSON

const auto config = R"({
"server": {
"host": "localhost",
"port": 8080
},
"debug": true
})"s;


3️⃣ ПУТИ WINDOWS

const auto path1 = "C:\\Program Files\\MyApp\\config.ini"s;
const auto path2 = R"(C:\Program Files\MyApp\config.ini)"s;


✔️ Raw string literals — это compile-time фича. Все три варианта генерируют ИДЕНТИЧНЫЙ машинный код ➡️

const auto s1 = "hello\\nworld"s;
const auto s2 = R"(hello\nworld)"s;
const auto s3 = std::string("hello\\nworld");


⚠️ ВАЖНО: R"(\n)" — это буквально два символа \ и n, а не перенос строки!

💡 Предыдущая статья «Типизация и применение std::string_literals в современном C++»

📕 Больше информации, ньюансов и примеров со ссылками на Compiler Explorer в полноценной статье на Boosty и Patreon


🔤🔤🔤🔤🔤🔤🔤

🤝 Поддержать:
Patreon | Boosty | PayPal

Ресурсы:
GitHub | LifeEXE School | Itch | X | Wiki | Курс по UE

#cpp #tips_and_tricks #code #lifeexe #lifeexecode #lifeexeEDU
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥3111🦄7👍2
📱 Всем привет, все привет! 📱

Отличный тред от Joe Wintergreen с подборкой изящных приемов для разработчиков игр ➡️

🔗Cheap Visual Tricks Behind Various Games

Иногда самые сложные визуальные эффекты в играх решаются удивительно простыми и изящными хитростями ➡️

🎯 Фейковая тень от вентилятора с помощью простого вращающегося меша с полупрозрачной текстурой

🎯 Создание «отражений» путем дублирования всей комнаты и размещения её в перевернутом виде под стеклянным полом

🎯 Использование хитростей с геометрией для оптимизации рендеринга в старых тайтлах

Такие приемы — отличное напоминание о том, что геймдев — это не только про мощные движки, но и про смекалочку 😉

#gamedev #tips_and_tricks #graphics #games #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥27139🦄11
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Всем привет, все привет! 📱

Quick tip — в блюпринт-классе через меню можно удалить все переменные с нулевым счетчиком ссылок на блюпринт графе в 🎮nreal Engine ⤴️

#bp #tips_and_tricks #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥28👍1510🦄11
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Всем привет, все привет! 📱

Quick tip — в блюпринт-классе через меню можно визуально отобразить спецификаторы доступа (access specifiers) к членам класса в 🎮nreal Engine ⤴️

#bp #tips_and_tricks #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍22🔥961🦄1
📱 Всем привет, все привет! 📱

Quick tip — новый таб Home 🏠 в редакторе, который был добавлен с последним обновлением 🎮nreal Engine можно убрать, добавив в конфиг Config/DefaultEngine.ini настройку ➡️

[SystemSettings]
HomeScreen.EnableHomeScreen=false


#tips_and_tricks #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍21🤩87🦄11
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Всем привет, все привет! 📱

🎮nreal Engine quick tip — в блюпринт-классе в панели Details функции можно визуально сделать её компактной ⤴️

#bp #tips_and_tricks #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍317🔥522🦄1
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Всем привет, все привет! 📱

🎮nreal Engine quick tip — небольшой VFX‑трюк для «дешёвого» динамического света➡️

🔤modulate умножает цвет сцены
🔤маска глубины ограничивает эффект по геометрии — имитирует радиус освещения
🔤значения выше 1 можно зажать clamp’ом, чтобы контролировать яркость

#vfx #tips_and_tricks #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25109👏2👍1🦄11
📱 Всем привет, все привет! 📱

Материал топографического контурного эффекта из Arknights: Endfield на 🎮nreal Engine ➡️

🔗 hiRes
🔤Terrain — Noise + World Position Offset для деформации меша
🔤Contour Lines — Height + Frac для генерации линий

Автор ➡️

🔗 Kurie

#vfx #tips_and_tricks #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥2310👍7🫡1🦄1
▶️ Всем привет, всем привет! ▶️

Непостоянная рубрика: C++ по понедельникам 🦊

➡️std::string_view — легковесный взгляд на строки

📕 Полноценная статья доступна для подписчиков Boosty и Patreon


std::string_view — это легковесный неизменяемый объект из C++17, который смотрит на строковые данные, не владея ими. Внутри это просто указатель и размер.

⁉️ ЗАЧЕМ ЭТО НУЖНО ⁉️

1️⃣ Универсальность без копий

Одна функция принимает любые строковые типы без аллокаций ➡️
void printLength(std::string_view sv)
{
std::println("Length: {}", sv.size());
}

int main()
{
using namespace std::string_view_literals;

printLength("hello");
printLength("world"s);
printLength("raw string"sv);
}


2️⃣ Подстроки без выделения памяти

substr у string_view не копирует строку — просто создаёт новый «вид» с другим указателем и длиной ➡️
std::string_view text = "one,two,three";

process(text.substr(0, 3)); // 0 аллокаций
process(text.substr(4, 3)); // 0 аллокаций
process(text.substr(8, 5)); // 0 аллокаций

// std::string::substr() — каждый вызов выделяет память!


‼️ Для тех, кто хочет поддержать канал — можно приобрести коллекции со статьями по строками в современном C++ и вообще все статьи по ссылкам ➡️

🟢 Boosty — cтроки в современном C++
🟢 Patreon — cтроки в современном C++

🟢 Boosty — все статьи по C++ и Unreal Engine
🟢 Patreon — все статьи по C++ и Unreal Engine

🔤🔤🔤🔤🔤🔤🔤

🤝 Поддержать:
Patreon | Boosty | PayPal

Ресурсы:
GitHub | Itch | X | Wiki | Курс по UE

#cpp #tips_and_tricks #code #lifeexe #lifeexecode #lifeexeEDU
Please open Telegram to view this post
VIEW IN TELEGRAM
1122🔥14👍7🦄2
This media is not supported in your browser
VIEW IN TELEGRAM
🔝 Всем вечерний привет! 🔝

Подборка визуальных техник для отображения игрока за препятствиями ➡️

🔗 Tossdown

#leveldesign #tips_and_tricks #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
29👍15🔥13🦄1
🆒 Всем воскресный привет! 🆒

Лучшая оптимизация — это та, которую игрок не замечает


#mario #gamedev #tips_and_tricks #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41107❤‍🔥2👍2🦄2211
🔝 Всем привет, всем привет! 🔝

Пошаговое руководство о том, как реализовать эффект взрыва и радиального размытия в одной Niagara cистеме в 🎮nreal Engine ➡️

💥 Let's Incorporate Radial Blur!

#vfx #niagara #tips_and_tricks #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
101812🔥9🦄1