역자의 말: 뭐 이런것 까지 이렇게 해야 하나 싶다가도 웹브라우저에서 제공하는 자동번역 결과는 도무지 이해할 수가 없어서 이렇게 한국어판으로 따로 공유 하게 되었어요.
원문
How to Get Verse Working in UE6
How to Get Verse Working in UE6
Epic shipped `ue6-main` with Verse in it, but it isn't actually wired up out of the box. Here's how to get it running.
ronaldburns.dev
Epic은 Verse가 포함된 ue6-main을 공개했지만, 기본 상태에서는 실제로 연결되어 있지 않다. 아래는 그것을 실행되게 만드는 방법이다.

Epic이 방금 ue6-main 브랜치를 올렸고, 드디어 Verse도 그 안에 들어왔다.
뭐… 어느 정도는 그렇다.
엔진을 sync하고, .verse 파일을 하나 작성하면 UEFN처럼 동작하리라 기대할 수 있다. 하지만 그렇게 되지 않는다. Verse 스택 대부분은 들어와 있지만, 이것을 실제로 쓸 수 있게 만드는 일반적인 프로젝트 쪽 설정은 아직 연결되어 있지 않다.
느낌상 엔진에는 필요한 부품이 전부 설치되어 있는데, Unreal Fest에 맞추느라 이 릴리스를 꽤 급하게 밀어낸 것처럼 보인다.
그래서 직접 배선을 해줘야 한다. 플러그인, 소스, 설정, 그리고 Epic이 원래 Valkyrie가 어려운 부분을 처리해주리라 예상했던 것으로 보이는 몇 군데를 손봐야 한다. 아래 단계를 따라 하면 실제로 동작하게 만들 수 있다.
시작하기 전에
따라 하기 전에 몇 가지가 준비되어 있어야 한다.
- Unreal Engine 소스에서 ue6-main 브랜치를 내려받아 둔다.
- 엔진이 정상적으로 컴파일되고, 에디터가 오류 없이 열린다.
- 작업할 새 UE6 프로젝트를 하나 만든다.
아래 내용은 모두 깨끗하게 컴파일되는 ue6-main 프로젝트에서 시작한다고 가정한다.
필요한 플러그인 활성화
이름에 “Verse”가 들어간 플러그인은 모두 켠다. 단, “Verse State Tree Editor”는 제외한다. 이 플러그인은 아직 공개되지 않은 “Verse State Machine”이라는 플러그인에 의존한다.
다음 플러그인을 활성화한다.
- Verse
- Verse Colors
- Verse Engine
- Verse Experimental
- Verse Gameplay Debug
- Verse Persona Metadata
- Verse Print
- Verse Restricted
- Verse Simulation
- Verse Simulation Metadata
- Verse Spatial Math
- Verse Tags
- Verse Interface
- Verse Modifier
- Verse Module Independence A
- Verse Module Independence B
- Verse VM
- Entity Framework
- Solaris
- Unreal Engine Experimental
참고: Unreal Engine Experimental도 켜야 한다. 이것을 켜지 않으면 Verse의 Print 함수가 실제로 Unreal 로그에 출력되지 않는다. 왜 이런 식으로 연결해두었는지는 모르겠지만, 현재는 그렇게 되어 있다.

에디터를 재시작한다. 그러면 최소한 에디터가 Verse의 존재를 인식하기는 한다. 이것만으로 일반 UE6 프로젝트가 UEFN처럼 동작하는 것은 아니지만, 가장 먼저 해야 할 단계다.
ConsoleVariables 설정
플러그인만으로는 충분하지 않다. Verse 툴체인이 깨어나기 전에 몇 가지 ini 설정을 켜야 한다.
UEFN에는 이런 설정이 이미 프로젝트 기본값으로 들어가 있으므로, 그쪽에서는 사실 볼 일이 거의 없다. 하지만 새 UE6 프로젝트에서는 직접 설정해야 한다. 이 중 일부는 이것저것 만져보고 테스트하기 위한 성격도 있다. 재미 삼아 켜고 끄면서 무엇이 동작하고 무엇이 멈추는지 확인해봐도 된다. 예를 들어 one-file-per-entity는 시작하고 동작시키는 데 꼭 필요하지 않을 가능성이 높지만, 조금 실험해봐도 나쁠 것은 없다.
아래 설정을 넣으면 UEFN에 가까운 느낌으로 동작하기 시작한다.
// --- Config/DefaultEngine.ini ---
[ConsoleVariables]
; Forces the default outliner to use TEDS.
Valkyrie.UseTedsOutliner=1
TEDS.Enable=1
TEDS.Feature.Folders=1
TEDS.Feature.Folders.TypedElements=1
TEDS.UI.SetOutlinerPurpose=HybridOutliner
TEDS.UI.UseTedsOutlinerFolders=1
TEDS.RevisionControl.AutoPopulateState=1
TEDS.UI.UseNewRevisionControlWidgets=1
TEDS.UI.Outliner.ShowTedsColumnFilters=1
TEDS.UI.UseNewWidgets=1
TEDS.Feature.PickerEnabled=1
TEDS.Feature.UnloadedActors=1
TEDS.UI.EnableTedsContentBrowser=1
TEDS.UI.EnableTestContentSource=1
TEDS.AssetDataStorage=1
TEDS.TedsAssetDataFactory=1
TEDS.AssetDataStorage.Metadata=1
Teds.Feature.Alerts=1
TEDS.Feature.ActorCompatibility.ActorComponents.Enable=1
TEDS.UI.UseDefaultAttributeBindings=1
TEDS.Feature.Layers=1
; Disables using an Actor as a proxy for the prefab/entity and just uses scene graph.
SceneGraph.EntityProxyActors.Enabled=0
;SceneGraph.EnableCardLayout=1
SceneGraph.SelectTransformComponentByDefault=1
Entity.EnablePrefabEditMode=1
DetailsPanel.Overrides.EnableResetToDefault=1
EntityDetailsDisplayManager.LegacyTrimPropertyPathImplementation=1
; One-file-per-entity (external packages per entity). Read-only: startup-only, requires restart.
; OneFilePerEntityEnabled is the master; the other two are no-ops unless it is on.
Entity.OneFilePerEntityEnabled=1
Entity.OneFilePerEntityOnAllInstancesEnabled=1
Entity.OneFilePerPrefabEntityEnabled=1
EntityEditor.EnableAssetComponentSupport=1
EntityPrefabEditor.EnablePrefabThumbnails=1
; Enables thumbnail rendering and many other Prefab/Entity things
IDO.Enable=1
참고: DefaultEngine.ini를 수정한 뒤에는 에디터를 재시작해야 한다. 이 설정들은 시작 시점에만 읽히므로, 다시 실행하기 전까지는 아무것도 바뀌지 않는다.
Verse는 아직 Content 폴더 안에 존재할 수 없다
UEFN에서는 Verse 파일을 프로젝트 안에 직접 넣을 수 있고, 자동으로 발견된다. 기술적으로는 GameFeaturePlugin이긴 하지만, 사용자는 보통 그렇게 느낀다.
하지만 ue6-main에서는 그렇게 동작하지 않는다. 게임용 Verse “Project”가 생성되지 않는다.
겉으로 보기에는 게임을 등록해주는 코드가 빠져 있어서 동작하지 않는 것처럼 보인다. 주석을 통해 맞춰보면, 이 경로는 Epic 내부의 Valkyrie 런타임과 연결되어 있는 듯하다.
UEFN에서는 Valkyrie가 그 일을 대신 해준다. ue6-main에는 그것이 없다.
그래서 현재 코드 경로가 없는 Content 폴더를 억지로 쓰려고 하지 말고, Verse 전용 플러그인을 만들어준다. Verse 모듈과 VersePath를 가진 플러그인은 Valkyrie가 관여하지 않아도 Solaris가 이미 mount하는 방법을 알고 있다.
나는 이것을 GameFeaturePlugin으로 처리했다. UEFN 구성과 가장 비슷하다고 생각했기 때문이다. 첫 테스트라면 같은 방식을 추천한다.
만들려면 Edit 메뉴에서 Plugins 창을 열고, “Add”를 누른 뒤 “Game Feature (Content Only)” 템플릿을 선택한다. 이름을 정하고 생성한다.

새로 만든 GameFeaturePlugin의 .uplugin 파일에 아래 코드를 추가한다.
참고: {PLUGIN NAME}은 자신의 GameFeaturePlugin 이름으로 바꾼다.
// START OF .uplugin file...
{
"FileVersion": 3,
"Version": 1,
...
// ADD THE FOLLOWING CODE
"CanContainVerse": true,
"VersePath": "/localhost/{PLUGIN NAME}",
"VerseScope": "InternalUser",
"VerseVersion": 0,
"EnableVerseAssetReflection": true,
"EnableSceneGraph": true
}
Content에 코드를 그냥 넣는 것만큼 깔끔하지는 않지만, 이 방식은 동작한다.
에디터를 재시작한다. VerseExplorer 창을 열면 이제 GameFeaturePlugin용 모듈이 생성된 것을 볼 수 있을 것이다.

내 테스트 플러그인 이름은 “ArcadiaCore”였다.
첫 Verse 파일 만들기
새로 생긴 플러그인 모듈을 우클릭하고 “Create a new Verse File”을 선택한다.

간단하게 가자. “Scene Graph Component”를 만든다.

이제 새 Verse 파일을 더블클릭해 VSCode에서 열 수 있다.

VSCode에 Verse 플러그인 추가
아마 여러분의 VSCode는 내 스크린샷처럼 보이지 않을 것이고, UEFN에서 익숙하게 보던 모습과도 다를 것이다. Epic의 VSCode 플러그인 두 개가 빠져 있기 때문이다. “UnrealRevisionControl”과, 더 중요하게는 “Verse”가 필요하다. UEFN에서 프로젝트를 열면 이 플러그인들은 VSCode 인스턴스에 자동 설치된다. ue6-main에서는 이 과정이 실패하지만, 고칠 수 있다.
엔진은 이 플러그인들을 찾아 VSCode에 자동 설치하려고 한다. 우리가 해야 할 일은 올바른 위치에 넣어두는 것뿐이다. UEFN 설치본에서 복사해 우리 엔진에 넣어준다.
로컬에 UEFN이 설치되어 있는지 확인한다. 거기서 VSCode 플러그인 “URC.vsix”와 “Verse.vsix”를 복사한다.
위치는 보통 C:\Program Files\Epic Games\Fortnite\VSCode\... 이다. Fortnite를 다른 위치에 설치했다면 그 위치를 보면 된다.
원한다면 VSCode 설치 파일도 함께 복사해도 된다. 그것도 복사해두면, Verse 코드를 열려고 할 때 VSCode가 설치되어 있지 않은 경우 에디터가 자동으로 VSCode를 설치해준다.
ue6-main 복사본의 루트에 “VSCode”라는 새 폴더를 만든다. “Engine”, “Samples”, “Templates” 폴더와 나란히 놓이는 위치다. 그 폴더 안에 “URC.vsix”와 “Verse.vsix” 복사본을 넣는다.


기존 VSCode 인스턴스는 닫는다. 이제 에디터에서 Verse 코드를 열면 플러그인이 자동으로 설치되어야 한다. 안 된다면 .vsix 파일을 VSCode 창에 드래그해서 수동 설치하면 된다. 😉
실제로 동작하는 것을 보고 싶다
이제 이 Verse 스크립트가 실제로 돌아가게 해보자. 우리가 만든 컴포넌트를 entity에 붙이고, 그것을 레벨에 끌어다 놓을 것이다. Play-In-Editor를 실행하면 Output Log에 출력이 찍히는 것을 볼 수 있어야 한다.
먼저 Content Browser를 열고 GameFeaturePlugin 안에 새 Prefab을 만든다. 이 Prefab이 필요한 entity를 담게 된다.

Prefab에는 이미 root에 entity가 하나 있다. 여기에 테스트 컴포넌트를 추가한다. 새 컴포넌트가 보이지 않는다면 에디터나 VSCode에서 “Compile Verse”를 누른다.

이제 새 테스트 컴포넌트가 붙은 entity를 담고 있는 Prefab이 생겼다. 이제 이것을 레벨에 추가하기만 하면 된다. Viewport에서는 이런 식으로 보일 것이다.

이제 Play-In-Editor를 실행한다. 게임 안에서는 아무 일도 일어나지 않을 것이다. 하지만 Output Log에는 출력이 보여야 한다. Output Log에서 LogVerse:가 포함된 항목으로 필터링하면 다음과 같은 로그가 보일 것이다.
LogVerse: OnBeginSimulation
LogVerse: OnSimulate
축하한다. Verse 스크립트가 ue6-main에서 컴파일되고 실행되고 있다.
Asset은 어떻게 하나
아직 entity는 보이지 않는다. 시각적으로 표현하는 것이 아무것도 없기 때문이다. 여기에 mesh_component를 추가하려고 해도, 추가할 수 있는 옵션이 없다는 것을 볼 수 있다.
Verse가 인식하고 사용할 수 있게 하려면 GameFeaturePlugin에 콘텐츠를 추가해야 한다. 여기서 우리가 .uplugin에 추가한 "EnableSceneGraph": true가 의미를 갖는다. SceneGraph는 플러그인 안을 스캔해 인식 가능한 asset을 찾고, 해당 asset용 컴포넌트를 자동으로 생성한 뒤 Verse에 노출한다. 이것은 Texture, Material, MaterialInstance, MetaSound, StaticMesh, SkeletalMesh 그리고 몇 가지 기본 타입의 asset에서 동작한다.
기본 Cube mesh로 Entity를 표현해보자.
엔진의 /Engine/Content/BasicShapes에서 Cube mesh를 복사해 GameFeaturePlugin 안에 붙여넣는다. 플러그인 안에 들어간 뒤 “Compile Verse” 버튼을 누른다. 그러면 SceneGraph와 Verse가 그 asset을 인식하고, 앞서 만든 entity의 mesh_component로 사용할 수 있게 해줄 것이다.



GameFeaturePlugin의 자동 생성 digest 파일을 확인하면, 해당 asset이 Verse에 노출된 것도 볼 수 있다.

축하한다
좋다. 이제 Verse 코드가 컴파일되고 동작하며, asset도 Verse에 노출된다. 이제 멋진 새 아이디어를 만들기 시작할 수 있다.
단, 아직 이걸로 뭔가를 출시하지는 말자. Epic 입장에서도 모든 것이 극도로 alpha이고 experimental 상태다. API는 바뀔 수 있고, 실제로 바뀔 것이며, 그 과정에서 코드가 깨질 수 있다.
그리고 작은 재미있는 사실 하나. 성능은 끔찍하다. directional_light, mesh_component, skeletal_mesh_component 같은 많은 컴포넌트에는 실제 “SceneGraph representation”이 아직 없다. 그러면 백그라운드에서 무엇을 하고 있을까? Actor를 spawn한다. 그렇다. Epic이 만든 거의 모든 컴포넌트는 그냥 Actor를 spawn한다. 언젠가는 바뀌겠지만, 아직 우리가 기대하는 멋진 SceneGraph 미래는 아니다.
재미있게 가지고 놀아보자.
'TECH.ART.FLOW.IO' 카테고리의 다른 글
| [번역] UF2025(Orlando) — Unity의 그림자, UEFN Scene Graph와 Verse 심층 분석 (0) | 2026.06.24 |
|---|---|
| [번역] UE6 Verse 첫 탐색 1: 총람과 문법 (0) | 2026.06.22 |
| [번역] Gdc2024 Open World Rendering Techniques in 'Hogwarts Legacy' (1) | 2026.06.22 |
| [UFSH2025] 《록왕국 세계》 모바일 파이프라인 설계와 최적화 — 주곡재, 텐센트 게임 모어펀 스튜디오 클라이언트 개발, 영상 요약 (0) | 2026.06.22 |
| [번역] RenderDoc For VSCode: 에디터를 떠나지 않고 GPU Debug (0) | 2026.06.22 |