
0. 용어 정리
- date
- 2월 12, 2026
- status
- Public
- tags
- unrealRL
Unreal Engine 용어 정리#
Unreal Engine에서 물리 기반 로봇이나 강화학습 환경을 구성하다 보면, SLERP Drive, Twist Drive, Swing Drive와 같은 물리 제약 관련 용어와 Actor, Pawn, Character, Component 같은 블루프린트 부모 클래스 선택지를 자주 마주하게 된다.
이번 글에서는 거미 로봇 강화학습 프로젝트를 진행하면서 헷갈렸던 주요 용어를 정리한다.
1. Angular Drive: SLERP, Twist, Swing#
Unreal Engine의 Physics Constraint에서는 관절의 회전을 제어하기 위해 Angular Drive를 사용할 수 있다.
Angular Drive는 목표 회전으로 관절을 움직이도록 힘을 가하는 방식이며, 제어 방식에 따라 크게 SLERP Drive와 Twist and Swing Drive로 나눌 수 있다.
1.1 SLERP Drive#
Unreal UI에서는 항목명이 잘려 스피어…처럼 보일 수 있다. 의미상으로는 SLERP Drive 또는 Spherical Drive 계열로 이해할 수 있다.
SLERP는 Spherical Linear Interpolation의 약자로, 현재 회전에서 목표 회전까지 가장 짧고 자연스러운 구면 회전 경로를 따라 이동하는 방식이다.
예를 들어 현재 관절 회전이 다음과 같고,
현재 회전: 0, 0, 0
목표 회전: 0, 30, 0목표 회전이 주어졌다면, SLERP Drive는 특정 축 하나만 따로 제어하기보다 목표 자세 전체를 기준으로 회전하려고 한다.
즉, “어떤 축을 몇 도 움직일 것인가”보다 “전체 회전 자세를 목표 자세에 맞춘다”는 개념에 가깝다.
장점#
SLERP Drive는 목표 회전 하나를 지정해 관절을 움직이기 쉽다.
따라서 관절이 목표 회전을 따라가는지 확인하는 테스트 단계에서 직관적으로 사용할 수 있다.
특히 현재처럼 거미 로봇의 관절 제어가 정상적으로 동작하는지 확인하는 초기 단계에서는 SLERP Drive가 유용하다.
주의할 점#
SLERP Drive는 Angular Constraint 축 중 하나라도 Locked 상태이면 제대로 동작하지 않는다.
현재 관절 설정이 다음과 같다면,
Swing1 = Limited
Swing2 = Limited
Twist = Limited잠긴 축이 없기 때문에 SLERP Drive 테스트가 가능하다.
하지만 나중에 무릎처럼 한 축만 회전하는 경첩 관절을 구성할 경우에는 SLERP보다 Twist and Swing 방식이 더 적합할 수 있다.
1.2 Twist Drive#
Twist는 본의 길이 방향 축을 중심으로 비트는 회전을 의미한다.
예를 들어 팔을 앞으로 뻗은 뒤, 팔뚝 자체를 시계 방향이나 반시계 방향으로 비트는 움직임을 생각하면 이해하기 쉽다.
로봇 다리 관절에서는 Twist가 항상 주 회전축으로 사용되는 것은 아니다.
무릎처럼 접히는 관절에서는 Twist보다 Swing 방향 회전이 더 중요할 수 있다. 반대로 다리의 루트 관절이나 포탑처럼 축 중심 회전이 필요한 구조에서는 Twist Drive가 의미를 가질 수 있다.
다만 실제로 어떤 회전이 Twist로 해석되는지는 Physics Constraint의 Transform 축 방향에 따라 달라진다.
따라서 Twist를 사용할 때는 Constraint의 기준 축이 어떻게 설정되어 있는지 함께 확인해야 한다.
1.3 Swing Drive#
Swing은 축 자체가 옆으로 기울어지거나 휘는 회전을 의미한다.
예를 들어 어깨에서 팔을 옆으로 들거나, 팔을 앞뒤로 흔드는 움직임은 Swing 계열 회전에 가깝다.
Unreal의 Angular Limits도 다음과 같이 나뉜다.
Swing 1
Swing 2
TwistSwing Drive는 이 중 Swing 방향 회전을 구동하는 역할을 한다.
Twist and Swing 모드에서는 회전 경로를 Twist와 Swing으로 분해해 각각 제어한다. 따라서 한 축 또는 특정 방향의 회전을 더 명확하게 다루고 싶을 때 사용할 수 있다.
1.4 정리#
| 항목 | 의미 | 주로 사용하는 경우 |
|---|---|---|
| SLERP Drive | 목표 회전 자세 전체를 따라가는 방식 | 전체 목표 회전을 직관적으로 테스트할 때 |
| Twist Drive | 본의 길이 방향 축을 중심으로 비트는 회전 | 축 중심 회전이 필요한 관절 |
| Swing Drive | 축이 기울어지는 방향의 회전 | 관절이 옆으로 휘거나 굽는 움직임 |
초기 관절 제어 테스트에서는 SLERP Drive가 직관적이다.
하지만 실제 로봇 다리처럼 특정 축을 중심으로 제한된 회전만 허용하는 구조를 만들 때는 Twist and Swing 방식이 더 적합할 수 있다.
2. 블루프린트 부모 클래스 종류#
Unreal Engine에서 블루프린트를 만들 때 가장 먼저 선택해야 하는 것이 부모 클래스다.
처음에는 Actor, Pawn, Character, PlayerController, GameModeBase, ActorComponent, SceneComponent의 차이가 헷갈릴 수 있다.
각 클래스는 상속 관계와 역할이 다르기 때문에, “무엇을 만들 것인가”에 따라 적절한 부모 클래스를 선택해야 한다.
2.1 주요 선택 기준#
간단히 정리하면 다음과 같다.
| 목적 | 선택할 클래스 |
|---|---|
| 월드에 배치하거나 스폰할 일반 오브젝트 | Actor |
| 플레이어나 AI가 빙의해서 조종할 대상 | Pawn |
| 인간형 걷기, 점프, 중력 이동이 필요한 캐릭터 | Character |
| 플레이어 입력과 카메라 제어 담당 | PlayerController |
| 게임 규칙, 스폰, 승패 조건 관리 | GameModeBase |
| 액터에 붙이는 재사용 기능 모듈 | ActorComponent |
| 위치, 회전, 스케일 기준점이 필요한 컴포넌트 | SceneComponent |
3. Actor#
Actor는 Unreal Engine 월드에 배치하거나 스폰할 수 있는 가장 기본적인 오브젝트다.
예를 들면 다음과 같은 오브젝트는 Actor로 만들 수 있다.
- 문
- 총알
- 상자
- 적 로봇
- BP_SpiderRobot즉, 레벨 안에 존재하는 대부분의 일반 오브젝트는 Actor를 기반으로 만들 수 있다.
거미 로봇 프로젝트에서의 선택#
현재 거미 로봇은 우선 Actor로 구성하는 것이 적절하다.
BP_SpiderRobot → Actor그 이유는 현재 단계의 거미 로봇이 플레이어가 직접 조종하는 캐릭터가 아니라, 물리 관절과 강화학습을 테스트하기 위한 대상이기 때문이다.
따라서 빙의, 입력, 캐릭터 이동 로직이 필요하지 않은 초기 단계에서는 Actor가 가장 단순하고 적합하다.
4. Pawn#
Pawn은 플레이어나 AI가 Possess, 즉 빙의해서 조종할 수 있는 Actor다.
Pawn은 Actor의 자식 클래스이며, Controller가 붙어서 제어할 수 있다는 점이 핵심이다.
예를 들어 다음과 같은 대상은 Pawn으로 만들 수 있다.
- 자동차
- 드론
- 탱크
- 직접 조작하는 로봇Pawn을 고려할 수 있는 경우#
다음과 같은 기능이 필요하다면 Pawn을 고려할 수 있다.
- 키보드나 게임패드로 거미 로봇을 직접 조종한다.
- AI Controller가 로봇을 소유하고 명령을 내린다.
- 게임 속 유닛처럼 로봇을 제어한다.현재 프로젝트에서의 판단#
현재 단계에서는 거미 로봇을 직접 조작하기보다 물리 관절과 강화학습 구조를 먼저 검증하는 것이 목적이다.
따라서 지금은 Pawn보다 Actor로 시작하는 것이 더 단순하다.
나중에 로봇을 플레이어가 직접 조종하거나 AI Controller가 소유하는 형태로 확장할 때 Pawn으로 전환하거나 별도 Pawn 클래스를 고려할 수 있다.
5. Character#
Character는 걷는 인간형 캐릭터를 쉽게 만들기 위해 준비된 Pawn이다.
Character에는 기본적으로 다음과 같은 요소가 포함된다.
- Capsule Collision
- Skeletal Mesh
- Character Movement Component
- 걷기, 점프, 중력 기반 이동 처리즉, Character는 일반적인 사람형 캐릭터나 3인칭 플레이어 캐릭터를 만들 때 유용하다.
예시#
- FPS 플레이어
- RPG 인간 캐릭터
- 3인칭 마네킹 캐릭터거미 로봇에는 적합하지 않은 이유#
거미 로봇 강화학습 프로젝트에서는 Character가 거의 적합하지 않다.
이 프로젝트의 목표는 Character Movement Component를 이용해 걷게 하는 것이 아니라, 물리 관절과 강화학습을 통해 로봇이 직접 보행을 학습하도록 구성하는 것이다.
따라서 Character가 제공하는 기본 이동 로직은 오히려 프로젝트의 목적과 맞지 않을 수 있다.
6. PlayerController#
PlayerController는 사람 플레이어의 입력, 시점, 조작 흐름을 담당하는 객체다.
주로 다음과 같은 역할을 한다.
- 키보드 / 마우스 입력 처리
- 카메라 회전 처리
- Pawn 조종
- HUD 또는 플레이어 관점 처리예를 들어 WASD 입력으로 Pawn을 움직이거나, 마우스로 카메라를 회전하는 구조에서는 PlayerController가 필요하다.
현재 프로젝트에서의 판단#
현재 만들고 있는 것은 로봇 본체이며, 플레이어 입력을 처리하는 시스템이 아니다.
따라서 지금 단계에서 선택해야 할 부모 클래스는 PlayerController가 아니다.
추후 로봇을 직접 조작하는 디버그 모드나 테스트 모드를 만들 경우 PlayerController를 별도로 구성할 수 있다.
7. GameModeBase#
GameModeBase는 게임 규칙을 정의하는 관리자 역할을 한다.
예를 들어 다음과 같은 내용을 관리할 수 있다.
- 게임 시작 시 어떤 Pawn을 생성할지
- 승리 / 패배 규칙
- 점수 계산 방식
- 플레이어 입장 규칙
- 맵에서 사용할 기본 클래스 설정GameModeBase는 특정 오브젝트 자체라기보다, 현재 맵에서 어떤 게임 규칙을 사용할 것인지를 정의하는 클래스다.
거미 로봇 프로젝트에서의 활용 가능성#
나중에 학습용 맵을 구성할 때 GameModeBase를 활용할 수 있다.
예를 들어 다음과 같은 역할을 맡길 수 있다.
- 학습용 맵 전용 GameMode
- 플레이 시작 시 로봇 자동 배치
- RL Training Manager 생성
- 에피소드 환경 초기화하지만 거미 로봇 본체를 만들 때 선택할 부모 클래스는 아니다.
8. ActorComponent#
ActorComponent는 Actor에 붙여 기능을 추가하는 재사용 가능한 부품이다.
ActorComponent는 자체 위치를 가지지 않으며, 보통 눈에 보이지 않는다. 대신 특정 기능을 모듈처럼 분리해 여러 Actor에 붙일 수 있다.
예를 들면 다음과 같은 기능을 ActorComponent로 만들 수 있다.
- 체력 컴포넌트
- 인벤토리 컴포넌트
- 로봇 관절 제어 컴포넌트
- 강화학습 보상 계산 컴포넌트거미 로봇 프로젝트에서의 활용#
거미 로봇 프로젝트에서는 ActorComponent가 매우 중요해질 수 있다.
예를 들어 관절 제어 로직은 로봇 본체에서 직접 모두 처리하기보다 별도 컴포넌트로 분리할 수 있다.
BP_SpiderRobot
└─ SpiderJointControllerComponent이렇게 구성하면 로봇 본체는 액터로 유지하면서, 관절 제어 로직은 컴포넌트로 재사용 가능하게 만들 수 있다.
다만 지금 블루프린트 부모 클래스를 고르는 단계에서 만드는 것은 로봇 본체이므로, ActorComponent가 아니라 Actor를 선택한다.
9. SceneComponent#
SceneComponent는 Transform, 즉 위치, 회전, 스케일을 가지는 컴포넌트다.
SceneComponent는 월드 안에서 위치를 가질 수 있고, 다른 컴포넌트를 자식으로 붙일 수 있다. 하지만 자체적으로 렌더링되거나 충돌을 처리하지는 않는다.
예시#
- 카메라를 붙일 기준점
- 총구 위치 기준점
- 미사일 발사 위치
- 센서 위치거미 로봇 프로젝트에서의 활용#
거미 로봇 프로젝트에서는 나중에 센서나 무기 위치를 잡을 때 SceneComponent를 사용할 수 있다.
예를 들어 총구 위치를 다음처럼 나눌 수 있다.
BP_SpiderRobot
├─ MuzzlePoint_L
└─ MuzzlePoint_R또는 Raycast 센서를 붙일 기준점으로 사용할 수도 있다.
그러나 SceneComponent는 로봇 본체의 부모 클래스로 선택하는 대상은 아니다.
10. 최종 정리#
거미 로봇 강화학습 프로젝트에서 초기 로봇 본체는 Actor로 만드는 것이 가장 적절하다.
현재 단계에서는 플레이어가 직접 조종하는 구조가 아니며, Character Movement Component를 사용해 이동시키는 것도 아니기 때문이다.
핵심 선택 기준은 다음과 같다.
| 선택지 | 의미 | 현재 프로젝트에서의 판단 |
|---|---|---|
| Actor | 월드에 배치되는 기본 오브젝트 | 선택 |
| Pawn | 플레이어 또는 AI가 조종 가능한 Actor | 추후 고려 |
| Character | 인간형 이동 기능이 포함된 Pawn | 사용하지 않음 |
| PlayerController | 사람 입력을 Pawn에 전달 | 현재 단계에서는 사용하지 않음 |
| GameModeBase | 게임 전체 규칙 관리자 | 추후 학습 맵 구성 시 고려 |
| ActorComponent | 액터에 붙이는 기능 모듈 | 관절 제어 로직 분리에 활용 |
| SceneComponent | 위치 기준점을 가지는 컴포넌트 | 센서, 총구, 카메라 기준점에 활용 |
따라서 현재 단계의 선택은 다음과 같다.
BP_SpiderRobot → Actor
SpiderJointControllerComponent → ActorComponent
센서 / 총구 / 카메라 기준점 → SceneComponent초기에는 Actor 기반으로 로봇 본체를 단순하게 구성하고, 관절 제어와 센서 같은 기능은 필요한 시점에 Component로 분리하는 방식이 가장 안정적이다.