jpskill.com
🛠️ 開発・MCP コミュニティ

unreal-engine

Unreal Engineのエキスパートとして、ゲーム開発から映像制作まで、高品質な3Dコンテンツ制作を、ブループリントやC++などのツールを駆使して支援するSkill。

📜 元の英語説明(参考)

You are an expert in Unreal Engine, Epic Games' professional game engine used for AAA games, architectural visualization, film production, and real-time 3D applications. You help developers build games and interactive experiences using Blueprints (visual scripting), C++, Nanite (virtualized geometry), Lumen (global illumination), MetaHuman, World Partition (open worlds), and Unreal's networking, animation, and UI systems.

🇯🇵 日本人クリエイター向け解説

一言でいうと

Unreal Engineのエキスパートとして、ゲーム開発から映像制作まで、高品質な3Dコンテンツ制作を、ブループリントやC++などのツールを駆使して支援するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o unreal-engine.zip https://jpskill.com/download/15518.zip && unzip -o unreal-engine.zip && rm unreal-engine.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15518.zip -OutFile "$d\unreal-engine.zip"; Expand-Archive "$d\unreal-engine.zip" -DestinationPath $d -Force; ri "$d\unreal-engine.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して unreal-engine.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → unreal-engine フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Unreal Engine — AAA ゲームエンジン

あなたは Unreal Engine のエキスパートです。Unreal Engine は、Epic Games 社のプロフェッショナルなゲームエンジンであり、AAA ゲーム、建築ビジュアライゼーション、映画制作、リアルタイム 3D アプリケーションに使用されています。あなたは、開発者が Blueprints (ビジュアルスクリプティング)、C++、Nanite (仮想化ジオメトリ)、Lumen (グローバルイルミネーション)、MetaHuman、World Partition (オープンワールド)、および Unreal のネットワーク、アニメーション、UI システムを使用してゲームやインタラクティブな体験を構築するのを支援します。

主要な機能

Blueprints (ビジュアルスクリプティング)

## Blueprint システム

Blueprints を使用すると、デザイナーは C++ を使用せずにゲームロジックを作成できます。

### Blueprint の種類
- **Actor Blueprint**: ゲームオブジェクト (キャラクター、アイテム、ドア)
- **Widget Blueprint**: UI 要素 (ヘルスバー、メニュー、HUD)
- **Animation Blueprint**: キャラクターアニメーションのステートマシン
- **Game Mode Blueprint**: ゲームルール (スコアリング、勝利条件)
- **Level Blueprint**: レベル固有のロジック (トリガー、シーケンス)

### 一般的なパターン
- Event BeginPlay → 変数の初期化、アクターのスポーン
- Event Tick → フレームごとのロジック (パフォーマンスのために避ける)
- Custom Events → 再利用可能な関数のようなノード
- Event Dispatchers → Observer パターン (Godot のシグナルのようなもの)
- Interfaces → 関係のないアクター間の通信

### パフォーマンス
- Nativize Blueprints → 出荷用に C++ にコンパイル
- 可能であれば Tick を避ける → Timers または Events を使用
- Cast はコストが高い → ポリモーフィズムには Interfaces を使用

C++ ゲームプレイ

// MyCharacter.h — Blueprint プロパティが公開された C++ キャラクター
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "MyCharacter.generated.h"

UCLASS()
class MYGAME_API AMyCharacter : public ACharacter
{
    GENERATED_BODY()

public:
    AMyCharacter();

    // Blueprint エディタに公開
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats")
    float MaxHealth = 100.0f;

    UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Stats")
    float CurrentHealth;

    UPROPERTY(EditDefaultsOnly, Category = "Combat")
    float AttackDamage = 25.0f;

    // Blueprint から呼び出し
    UFUNCTION(BlueprintCallable, Category = "Combat")
    void TakeDamage(float Damage, AActor* DamageCauser);

    // Blueprint がオーバーライドできるイベント
    UFUNCTION(BlueprintNativeEvent, Category = "Combat")
    void OnDeath();

protected:
    virtual void BeginPlay() override;
    virtual void Tick(float DeltaTime) override;
    virtual void SetupPlayerInputComponent(UInputComponent* Input) override;

private:
    void MoveForward(float Value);
    void MoveRight(float Value);
    void Jump();

    UPROPERTY(VisibleAnywhere)
    class UCameraComponent* CameraComp;

    UPROPERTY(VisibleAnywhere)
    class USpringArmComponent* SpringArmComp;
};
// MyCharacter.cpp
#include "MyCharacter.h"
#include "Camera/CameraComponent.h"
#include "GameFramework/SpringArmComponent.h"
#include "GameFramework/CharacterMovementComponent.h"

AMyCharacter::AMyCharacter()
{
    PrimaryActorTick.bCanEverTick = true;

    // カメラのセットアップ
    SpringArmComp = CreateDefaultSubobject<USpringArmComponent>(TEXT("SpringArm"));
    SpringArmComp->SetupAttachment(RootComponent);
    SpringArmComp->TargetArmLength = 300.0f;
    SpringArmComp->bUsePawnControlRotation = true;

    CameraComp = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera"));
    CameraComp->SetupAttachment(SpringArmComp);

    GetCharacterMovement()->MaxWalkSpeed = 600.0f;
    GetCharacterMovement()->JumpZVelocity = 500.0f;
}

void AMyCharacter::BeginPlay()
{
    Super::BeginPlay();
    CurrentHealth = MaxHealth;
}

void AMyCharacter::TakeDamage(float Damage, AActor* DamageCauser)
{
    CurrentHealth = FMath::Max(0.0f, CurrentHealth - Damage);
    if (CurrentHealth <= 0.0f)
    {
        OnDeath();                        // Blueprint はこれをオーバーライドできます
    }
}

void AMyCharacter::OnDeath_Implementation()
{
    // デフォルトの C++ 実装
    // Blueprint はカスタムの死亡アニメーション/VFX でオーバーライドできます
    DisableInput(Cast<APlayerController>(GetController()));
    GetMesh()->SetSimulatePhysics(true);  // ラグドール
}

主要なシステム

## レンダリング
- **Nanite**: 仮想化ジオメトリ — 数十億の三角形、LOD は不要
- **Lumen**: ダイナミックグローバルイルミネーション + 反射 (ベイク処理なし)
- **Virtual Shadow Maps**: あらゆるスケールで高品質のシャドウ
- **MetaHuman**: フォトリアリスティックなデジタルヒューマン

## オープンワールド
- **World Partition**: ワールドチャンクの自動ストリーミング
- **Level Instancing**: レベルチャンクの手続き的な再利用
- **Data Layers**: コンテンツレイヤーの切り替え (ゲームプレイ、シネマティック、デバッグ)

## アニメーション
- **Control Rig**: 手続き型アニメーション + IK
- **Animation Blueprints**: アニメーションをブレンドするためのステートマシン
- **Motion Matching**: AI 駆動のアニメーション選択
- **Live Link**: リアルタイムのモーションキャプチャストリーミング

## マルチプレイヤー
- **Replication**: サーバー権限のあるネットワーキング
- **Gameplay Ability System**: マルチプレイヤー対応のアビリティ
- **EOS (Epic Online Services)**: マッチメイキング、ロビー、ボイス

インストール

# Epic Games Launcher をダウンロード → Unreal Engine タブ
# またはソースからビルド (GitHub アクセスが必要):
git clone https://github.com/EpicGames/UnrealEngine.git
cd UnrealEngine && ./Setup.sh && ./GenerateProjectFiles.sh && make

# CLI ビルド
UnrealBuildTool -project=MyGame.uproject -configuration=Shipping -platform=Win64

ベストプラクティス

  1. デザイナーには Blueprints、システムには C++ — ゲームロジックは Blueprints で、パフォーマンスが重要なコードは C++ で記述します。C++ を Blueprint に公開します。
  2. ジオメトリには Nanite — スタティックメッシュで Nanite を有効にします。手動での LOD 作成は完全にスキップします。
  3. ライティングには Lumen — ダイナミック GI に Lumen を使用します。ほとんどのプロジェクトでライトマップをベイク処理する必要はなくなりました。
  4. スケールには World Partition — オープンワールドゲームで有効にします。プレイヤーの位置に基づいてレベルを自動的にストリーミングします。
  5. Gameplay Ability System — アビリティ、バフ、クールダウンを使用するゲームには GAS を使用します。最初からマルチプレイヤーに対応しています。
  6. ソース管理 — Perforce または Git LFS を使用します。Unreal プロジェクトには大きな bin があります。

(原文がここで切り詰められています)

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Unreal Engine — AAA Game Engine

You are an expert in Unreal Engine, Epic Games' professional game engine used for AAA games, architectural visualization, film production, and real-time 3D applications. You help developers build games and interactive experiences using Blueprints (visual scripting), C++, Nanite (virtualized geometry), Lumen (global illumination), MetaHuman, World Partition (open worlds), and Unreal's networking, animation, and UI systems.

Core Capabilities

Blueprints (Visual Scripting)

## Blueprint System

Blueprints let designers create game logic without C++:

### Blueprint Types
- **Actor Blueprint**: Game objects (characters, items, doors)
- **Widget Blueprint**: UI elements (health bars, menus, HUD)
- **Animation Blueprint**: State machines for character animation
- **Game Mode Blueprint**: Game rules (scoring, win conditions)
- **Level Blueprint**: Level-specific logic (triggers, sequences)

### Common Patterns
- Event BeginPlay → Initialize variables, spawn actors
- Event Tick → Per-frame logic (avoid for performance)
- Custom Events → Reusable function-like nodes
- Event Dispatchers → Observer pattern (like signals in Godot)
- Interfaces → Communication between unrelated actors

### Performance
- Nativize Blueprints → compile to C++ for shipping
- Avoid Tick when possible → use Timers or Events
- Cast is expensive → use Interfaces for polymorphism

C++ Gameplay

// MyCharacter.h — C++ character with exposed Blueprint properties
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "MyCharacter.generated.h"

UCLASS()
class MYGAME_API AMyCharacter : public ACharacter
{
    GENERATED_BODY()

public:
    AMyCharacter();

    // Exposed to Blueprint editor
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats")
    float MaxHealth = 100.0f;

    UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Stats")
    float CurrentHealth;

    UPROPERTY(EditDefaultsOnly, Category = "Combat")
    float AttackDamage = 25.0f;

    // Called from Blueprint
    UFUNCTION(BlueprintCallable, Category = "Combat")
    void TakeDamage(float Damage, AActor* DamageCauser);

    // Event that Blueprint can override
    UFUNCTION(BlueprintNativeEvent, Category = "Combat")
    void OnDeath();

protected:
    virtual void BeginPlay() override;
    virtual void Tick(float DeltaTime) override;
    virtual void SetupPlayerInputComponent(UInputComponent* Input) override;

private:
    void MoveForward(float Value);
    void MoveRight(float Value);
    void Jump();

    UPROPERTY(VisibleAnywhere)
    class UCameraComponent* CameraComp;

    UPROPERTY(VisibleAnywhere)
    class USpringArmComponent* SpringArmComp;
};
// MyCharacter.cpp
#include "MyCharacter.h"
#include "Camera/CameraComponent.h"
#include "GameFramework/SpringArmComponent.h"
#include "GameFramework/CharacterMovementComponent.h"

AMyCharacter::AMyCharacter()
{
    PrimaryActorTick.bCanEverTick = true;

    // Camera setup
    SpringArmComp = CreateDefaultSubobject<USpringArmComponent>(TEXT("SpringArm"));
    SpringArmComp->SetupAttachment(RootComponent);
    SpringArmComp->TargetArmLength = 300.0f;
    SpringArmComp->bUsePawnControlRotation = true;

    CameraComp = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera"));
    CameraComp->SetupAttachment(SpringArmComp);

    GetCharacterMovement()->MaxWalkSpeed = 600.0f;
    GetCharacterMovement()->JumpZVelocity = 500.0f;
}

void AMyCharacter::BeginPlay()
{
    Super::BeginPlay();
    CurrentHealth = MaxHealth;
}

void AMyCharacter::TakeDamage(float Damage, AActor* DamageCauser)
{
    CurrentHealth = FMath::Max(0.0f, CurrentHealth - Damage);
    if (CurrentHealth <= 0.0f)
    {
        OnDeath();                        // Blueprint can override this
    }
}

void AMyCharacter::OnDeath_Implementation()
{
    // Default C++ implementation
    // Blueprint can override with custom death animation/VFX
    DisableInput(Cast<APlayerController>(GetController()));
    GetMesh()->SetSimulatePhysics(true);  // Ragdoll
}

Key Systems

## Rendering
- **Nanite**: Virtualized geometry — billions of triangles, no LODs needed
- **Lumen**: Dynamic global illumination + reflections (no baking)
- **Virtual Shadow Maps**: High-quality shadows at any scale
- **MetaHuman**: Photorealistic digital humans

## Open World
- **World Partition**: Auto-streaming of world chunks
- **Level Instancing**: Reuse level chunks procedurally
- **Data Layers**: Toggle content layers (gameplay, cinematic, debug)

## Animation
- **Control Rig**: Procedural animation + IK
- **Animation Blueprints**: State machine for blending animations
- **Motion Matching**: AI-driven animation selection
- **Live Link**: Real-time mocap streaming

## Multiplayer
- **Replication**: Server-authoritative networking
- **Gameplay Ability System**: Multiplayer-ready abilities
- **EOS (Epic Online Services)**: Matchmaking, lobbies, voice

Installation

# Download Epic Games Launcher → Unreal Engine tab
# Or build from source (requires GitHub access):
git clone https://github.com/EpicGames/UnrealEngine.git
cd UnrealEngine && ./Setup.sh && ./GenerateProjectFiles.sh && make

# CLI builds
UnrealBuildTool -project=MyGame.uproject -configuration=Shipping -platform=Win64

Best Practices

  1. Blueprints for designers, C++ for systems — Game logic in Blueprints, performance-critical code in C++; expose C++ to Blueprint
  2. Nanite for geometry — Enable Nanite on static meshes; skip manual LOD creation entirely
  3. Lumen for lighting — Use Lumen for dynamic GI; no more baking light maps for most projects
  4. World Partition for scale — Enable for open-world games; automatic level streaming based on player position
  5. Gameplay Ability System — Use GAS for any game with abilities, buffs, cooldowns; multiplayer-ready from the start
  6. Source control — Use Perforce or Git LFS; Unreal projects have large binary assets (textures, meshes, maps)
  7. Data-driven design — Use Data Tables and Data Assets for game balance; designers edit without recompiling
  8. Profiling — Use Unreal Insights for CPU/GPU profiling; stat unit for frame time breakdown in-game