К основному содержанию
скилл CX Codex

unreal-engine-cpp-pro — скилл для Claude Code: гайд по C++ в Unreal

Скилл для разработки на C++ в Unreal Engine 5.x: правила работы с UObject, сборщиком мусора, отражением и производительностью.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add sickn33/agentic-awesome-skills --skill unreal-engine-cpp-pro -a claude-code
Открыть на GitHub

Что делает unreal-engine-cpp-pro

Скилл учит агента писать C++-код для Unreal Engine 5 по стандартам Epic Games. Он покрывает гигиену UObject (обязательная обёртка указателей в UPROPERTY для отслеживания сборщиком мусора), систему отражения (UCLASS, USTRUCT, UFUNCTION), паттерны производительности: отключение тика по умолчанию (bCanEverTick = false), использование таймеров вместо Tick, кэширование компонентов в BeginPlay, чтобы не вызывать GetComponentByClass в горячих циклах. Агент знает префиксы имён (U для UObject, A для AActor, F для структур), умеет работать с интерфейсами и мягкими ссылками (TSoftClassPtr), чтобы не форсировать цепочки загрузки.

Включает чек-лист перед коммитом: нужен ли тик, обёрнуты ли UObject* в UPROPERTY, не вызывают ли жёсткие ссылки лишние загрузки. LoadSynchronous() блокирует игровой поток — агент это знает и советует асинхронную загрузку для критичных путей. Для отладки предлагает UE_LOG с кастомными категориями, экранные сообщения и Visual Logger для AI-систем.

Какие задачи решает

  • написать Actor или Component для UE5 по стандартам Epic
  • отключить тик и перейти на таймеры для производительности
  • обернуть указатели UObject в UPROPERTY, чтобы сборщик мусора их видел
  • заменить жёсткие ссылки на TSoftClassPtr и не форсировать загрузку
  • закэшировать компоненты в BeginPlay, не искать их каждый кадр

Примеры запросов агенту

  • создай Actor с компонентом здоровья для UE5, без тика
  • реализуй интерфейс взаимодействия по правилам unreal-engine-cpp-pro
  • замени жёсткие ссылки на оружие на TSoftClassPtr с асинхронной загрузкой

Как установить unreal-engine-cpp-pro

1Через Skills CLI (Vercel)

npx skills add sickn33/agentic-awesome-skills --skill unreal-engine-cpp-pro -a claude-code

2Вручную: положить файлы

~/.claude/skills/unreal-engine-cpp-pro/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/unreal-engine-cpp-pro/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора101

Весь набор →
superpowers-lab Задаёт протокол для проверки экспериментальных воркфлоу из репозитория superpowers-lab в изолированном окружении перед их переносом в проект. CX Codex +1 1 400установок multi-agent-brainstorming Задаёт последовательное дизайн-ревью с ролями автора, критиков и арбитра. Нужен, чтобы проверить допущения и возражения до перехода к реализации. CX Codex +1 1 400установок context-compression Скилл управляет сжатием контекста в длинных сессиях агента, когда разговор превышает лимит токенов. Вместо наивного удаления текста сохраняет структурированные резюме с файлами, решениями и состоянием. CX Codex +1 1 400установок test-driven-development Внедряет строгий цикл разработки через тестирование: сначала падающий тест, затем минимальный рабочий код и рефакторинг. Пригодится при исправлении багов и добавлении новой логики. CX Codex +1 1 400установок security-auditor Скилл превращает ИИ-кодер в эксперта по безопасности: проводит аудиты, анализирует уязвимости, проверяет SDLC и соответствие стандартам вроде OWASP, GDPR и PCI-DSS. CX Codex +1 1 400установок lint-and-validate Скилл запускает настроенные линтеры и проверку типов, отличая сбои в коде от незапущенных утилит. Пригодится после правок кода перед сдачей задачи агентом. CX Codex +1 1 300установок architect-review Скилл для случаев, когда агенту нужно оценить архитектуру целиком: риски, компромиссы, план проверки. CX Codex +1 1 300установок langgraph Скилл для построения продакшн-grade агентов с явной структурой. Помогает проектировать граф-топологию, управлять состоянием, добавлять циклы и ветвления, сохранять прогресс через checkpointer'ы и встраивать человека в цикл решений. CX Codex +1 1 300установок

Похожие

unreal-cpp-gameplay gamedev-skills Учит агента писать геймплейный C++ под Unreal Engine 5: макросы рефлексии, классы Gameplay Framework, зависимости модуля в *.Build.cs. CX Codex +1 5 300установок unreal-enhanced-input gamedev-skills Помогает настроить систему ввода Enhanced Input в Unreal Engine 5. Полезен при сборке ассетов действий, привязке событий в C++ или Blueprints и отладке управления. CX Codex +1 5 200установок unreal-engine DSTN2000 Скилл обучает ассистента исследовать структуру проекта Unreal Engine перед написанием кода. Он находит файлы .uproject, сканирует ассеты и настраивает C++, Enhanced Input или GAS. CX Codex +1 511установок unreal-engine-skills-for-claude-code Epic Games Плагин даёт Claude доступ к запущенному Unreal Editor через MCP: акторы, блюпринты, материалы, Niagara, Sequencer и другие инструменты. ★ 1 634звёзд репо ue-cpp-foundations quodsoler Направляет агента при написании кода C++ для Unreal Engine 5.8: помогает настроить макросы рефлексии, сборщик мусора, подсистемы и умные указатели. CX Codex +1 1 400установок ue-game-features quodsoler Настраивает модульный геймплей и плагины Game Features для Unreal Engine 5.8. Помогает писать действия UGameFeatureAction и внедрять компоненты в акторы. CX Codex +1 1 100установок

Рядом в теме «Геймдев и 3D: Unity, Unreal, Godot, Blender»

Всё по теме «Геймдев и 3D: Unity, Unreal, Godot, Blender» →

Вопросы о unreal-engine-cpp-pro

Как установить unreal-engine-cpp-pro в Claude Code?

Выполни npx skills add sickn33/agentic-awesome-skills --skill unreal-engine-cpp-pro -a claude-code. Скилл ляжет в ~/.claude/skills/unreal-engine-cpp-pro/SKILL.md.

Что делает unreal-engine-cpp-pro?

Учит агента писать C++ для Unreal Engine 5 по стандартам Epic: обёртка указателей в UPROPERTY, отключение тика по умолчанию, кэширование компонентов, мягкие ссылки вместо жёстких, чтобы не форсировать загрузку, и чек-лист перед коммитом.

Почему unreal-engine-cpp-pro советует отключать тик?

Тик вызывается каждый кадр и съедает производительность. Скилл учит ставить bCanEverTick = false по умолчанию и переходить на таймеры (GetWorldTimerManager()) или событийную логику, когда это возможно.

Исходный текст

SKILL.md · MIT
---
name: unreal-engine-cpp-pro
description: "Expert guide for Unreal Engine 5.x C++ development, covering UObject hygiene, performance patterns, and best practices."
risk: safe
source: self
date_added: "2026-02-27"
---

# Unreal Engine C++ Pro

This skill provides expert-level guidelines for developing with Unreal Engine 5 using C++. It focuses on writing robust, performant, and standard-compliant code.

## When to Use
Use this skill when:
- Developing C++ code for Unreal Engine 5.x projects
- Writing Actors, Components, or UObject-derived classes
- Optimizing performance-critical code in Unreal Engine
- Debugging memory leaks or garbage collection issues
- Implementing Blueprint-exposed functionality
- Following Epic Games' coding standards and conventions
- Working with Unreal's reflection system (UCLASS, USTRUCT, UFUNCTION)
- Managing asset loading and soft references

Do not use this skill when:
- Working with Blueprint-only projects (no C++ code)
- Developing for Unreal Engine versions prior to 5.x
- Working on non-Unreal game engines
- The task is unrelated to Unreal Engine development

## Core Principles

1.  **UObject & Garbage Collection**:
    *   Always use `UPROPERTY()` for `UObject*` member variables to ensure they are tracked by the Garbage Collector (GC).
    *   Use `TStrongObjectPtr<>` cautiously for a scoped strong reference outside a reflected UObject graph; do not routinely root objects manually. Manual `AddToRoot()` requires deliberate paired `RemoveFromRoot()` lifecycle management.
    *   Understand the `IsValid()` check vs `nullptr`. `IsValid()` handles pending kill state safely.

2.  **Unreal Reflection System**:
    *   Use `UCLASS()`, `USTRUCT()`, `UENUM()`, `UFUNCTION()` to expose types to the reflection system and Blueprints.
    *   Minimize `BlueprintReadWrite` when possible; prefer `BlueprintReadOnly` for state that shouldn't be trampled by logic in UI/Level BPs.

3.  **Performance First**:
    *   **Tick**: Disable Ticking (`bCanEverTick = false`) by default. Only enable it if absolutely necessary. Prefer timers (`GetWorldTimerManager()`) or event-driven logic.
    *   **Casting**: Avoid `Cast<T>()` in hot loops. Cache references in `BeginPlay`.
    *   **Structs vs Classes**: Use `F` structs for data-heavy, non-UObject types to reduce overhead.

## Naming Conventions (Strict)

Follow Epic Games' coding standard:

*   **Templates**: Prefix with `T` (e.g., `TArray`, `TMap`).
*   **UObject**: Prefix with `U` (e.g., `UCharacterMovementComponent`).
*   **AActor**: Prefix with `A` (e.g., `AMyGameMode`).
*   **SWidget**: Prefix with `S` (Slate widgets).
*   **Structs**: Prefix with `F` (e.g., `FVector`).
*   **Enums**: Prefix with `E` (e.g., `EWeaponState`).
*   **Interfaces**: Prefix with `I` (e.g., `IInteractable`).
*   **Booleans**: Prefix with `b` (e.g., `bIsDead`).

## Common Patterns

### 1. Robust Component Lookup
Avoid `GetComponentByClass` in `Tick`. Do it in `PostInitializeComponents` or `BeginPlay`.

```cpp
void AMyCharacter::PostInitializeComponents() {
    Super::PostInitializeComponents();
    HealthComp = FindComponentByClass<UHealthComponent>();
    check(HealthComp); // Fail hard in dev if missing
}
```

### 2. Interface Implementation
Use interfaces to decouple systems (e.g., Interaction system).

```cpp
// Interface call check
if (IsValid(TargetActor) && TargetActor->Implements<UInteractable>()) {
    IInteractable::Execute_OnInteract(TargetActor, this);
}
```

### 3. Soft References (synchronous illustration)
Avoid hard references (`UPROPERTY(EditDefaultsOnly) TSubclassOf<AActor>`) for massive assets which force load orders. Use `TSoftClassPtr` or `TSoftObjectPtr`.

```cpp
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TSoftClassPtr<AWeapon> WeaponClassToLoad;

void AMyCharacter::Equip() {
    if (WeaponClassToLoad.IsPending()) {
        WeaponClassToLoad.LoadSynchronous(); // Or use StreamableManager for async
    }
}
```

## Debugging

*   **Logging**: Use `UE_LOG` with custom categories.
    ```cpp
    DEFINE_LOG_CATEGORY_STATIC(LogMyGame, Log, All);
    UE_LOG(LogMyGame, Warning, TEXT("Health is low: %f"), CurrentHealth);
    ```
*   **Screen Messages**:
    ```cpp
    if (GEngine) GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Died!"));
    ```
*   **Visual Logger**: extremely useful for AI debugging. Implement `IVisualLoggerDebugSnapshotInterface`.

## Checklist before PR

- [ ] Does this Actor need to Tick? Can it be a Timer?
- [ ] Are all `UObject*` members wrapped in `UPROPERTY`?
- [ ] Are hard references (TSubclassOf) causing load chains? Can they be Soft Ptrs?
- [ ] Did you clean up verified delegates in `EndPlay`?

## Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

The actor files are illustrative and require replacing `MYGAME_API`, generating project headers and building in the target engine. `LoadSynchronous()` can stall the game thread; use the target version's streamable async loading API for latency-sensitive paths. Prefer reflected `TObjectPtr` members where supported. [Epic object-pointer guidance](https://dev.epicgames.com/documentation/en-us/unreal-engine/object-pointers-in-unreal-engine).

© sickn33 · MIT · sickn33/agentic-awesome-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой