기능
Unreal을 위해,
처음부터 끝까지.
uVersion은 Unreal 스튜디오의 전체 사이클을 아우릅니다. 바이너리 스토리지부터 활동 대시보드까지, checkin 전 검증과 세분화된 역할을 포함해서. 상자 안에 담긴 것들은 다음과 같습니다.
01
워크플로
lock 기반, 병합의 뜻밖의 사고 없이. 아티스트는 누가 무엇을 건드리는지 언제나 압니다.
배타적 잠금
편집 전 checkout 필수. "같은 .uasset에 2시간을 쏟았다"는 일이 사라집니다. cross-workspace: 분산 팀에서도 누가 lock을 쥐고 있는지 확인하세요.
스마트 자동 checkout
Unreal 플러그인은 writable 에셋을 수정하는 순간 자동으로 잠급니다. 소스 컨트롤에서 더블클릭할 필요가 없습니다.
로컬 changelist
checked-out 파일을 여러 개의 독립적인 커밋으로 묶으세요(Perforce 방식). workspace 단위로 유지됩니다.
lock release 요청
Marie가 이틀 전 에셋을 잠갔고 Alex가 그것이 필요하다면, Marie에게 인앱 알림을 보내는 release 요청을 보낼 수 있습니다.
멀티 계정, 멀티 서버
여러 스튜디오에서 일하는 프리랜서인가요? 계정과 서버를 한 번의 클릭으로 전환하고, 서로 다른 계정으로 두 개의 Unreal 에디터를 동시에 열어 두세요.
정리해 주는 sync
전체 sync는 서버에서 삭제되거나 이름이 바뀐 파일을 로컬에서 제거합니다(Perforce와 동등). 당신이 수정했거나 잠근 파일은 절대 건드리지 않습니다.
02
Unreal 플러그인
외부 래퍼가 아니라 네이티브 Source Control Provider입니다.
Source Control Provider
Connect → uVersion. 표준 UE5 워크플로 전부: checkout, checkin, revert, history를 Content Browser에서.
시각적 Blueprint diff
리비전 간 Blueprint 비교를 UE 안에서 바로. 임시 파일은 Saved/Diff/에 두며, 어떤 커밋에서도 작동합니다.
Redirector 정리
checkin마다 플러그인이 리다이렉터를 정리하고, 수정된 패키지를 저장하며, 모두 커밋에 포함합니다. 빌드 시 "Redirector still present"가 사라집니다.
자동 reconcile
프로젝트를 열면 writable이지만 잠기지 않은 .uasset은 자동으로 checkout됩니다. Content/ + Plugins/*/Content/ 스캔 포함.
03
검증
10개의 내장 규칙, 프로젝트별 설정 가능. 오류는 차단하고, 경고는 알립니다.
Blueprint 컴파일
헤드리스 Kismet 컴파일러가 커밋의 모든 Blueprint가 컴파일되는지 확인합니다. 오류 → checkin 차단.
명명 규칙
에셋 유형별 접두사(BP_, T_, M_, SM_…). 정규식은 설정 가능합니다.
텍스처 크기
텍스처가 정해진 해상도를 넘거나 2의 거듭제곱이 아니면 경고하거나 차단합니다.
머티리얼 복잡도
셰이더 명령 수를 셉니다. 임계값을 넘으면 경고 또는 오류.
임포트 설정
노멀맵의 sRGB 텍스처, UI 텍스처의 압축 등. 모두 설정 가능합니다.
누락된 의존성
커밋된 Blueprint가 참조하지만 커밋에 없는 에셋을 감지합니다. CI에서 "package not found"가 사라집니다.
드라이런 checkin
제출하지 않고 checkin을 시뮬레이션하여 무엇이 통과하고 무엇이 실패할지 미리 확인하세요. 큰 submit 전에 유용합니다.
프로젝트별 정책
각 규칙을 켜거나 끄고 임계값과 심각도(error / warning)를 프로젝트별로 .uversion/rules.json에서 조정하세요. repo와 함께 버전 관리됩니다.
04
협업
댓글, 리뷰, watchlist, 알림. 발을 맞추기 위한 모든 것.
스레드형 댓글
커밋 단위 또는 파일 단위 댓글, 트리 형태. Markdown 지원.
리뷰
Approve / Changes Requested / Pending. 특정 폴더에서 병합 전 lead 승인을 요구하는 경로 게이트.
Watchlist
파일이나 glob(Content/Characters/**)을 감시합니다. 커밋이 그것을 건드리는 즉시 알림을 보냅니다.
인앱 알림
데스크톱 클라이언트의 벨. 해당 커밋, modification request, 또는 관련 파일로 바로 이동합니다.
modification request
대상 파일 유무와 관계없이 팀원에게 에셋 수정을 요청하세요. 각 요청은 Production 보드(섹션 05)의 카드가 됩니다.
Webhook
Discord, Slack, Teams, 또는 커스텀 형식. 커밋, lock, 수정 알림. 주기적 요약을 위한 스케줄러.
05
프로덕션
프로덕션 관리를 VCS 안에서. 카드가 실제 에셋과 커밋에 연결되는 kanban 보드.
kanban 보드
lead가 설정하는 컬럼(To Do / In Progress / Review / Done, 또는 아트용 Blockout / WIP / Review / Final). 드래그 앤 드롭, 우선순위, 라벨, 다중 담당자, 마감일, 댓글.
콘텐츠에 연결된 카드
Trello나 Jira와의 진짜 차별점: 에셋과 커밋을 카드에 연결하세요. 파일에서 우클릭 → "작업에 추가". 프로덕션은 파일이 있는 곳에서 굴러갑니다.
checkin 시 자동 리뷰
연결된 에셋이 커밋되면 커밋이 카드에 첨부되고 카드는 Review 컬럼으로 이동합니다. 보드의 수동 갱신은 전혀 없습니다.
My tasks, 모든 프로젝트
당신에게 배정된 작업을 모든 repo에 걸쳐 한곳에 모읍니다. 한 번의 클릭으로 해당 프로젝트의 보드로 이동하세요.
통합된 요청
modification 요청과 lock 해제 요청은 보드의 카드입니다. 단일 흐름으로, 별도의 "Requests" 사일로가 사라집니다.
첨부와 커버
참조 이미지를 카드에 첨부하고 커버 이미지를 설정하세요. 콘텐츠 주소 방식 스토리지로, 나머지와 마찬가지로 중복 제거됩니다.
06
관리
클라이언트에 통합된 패널. 8개 역할, glob 권한, 완전한 감사.
설정 가능한 8개 역할
admin, lead, artist, programmer, qa, user, viewer, playtester. 세분화된 capabilities(force_unlock, approve_changes, manage_rules…).
glob 권한
패턴에 대한 Read/Write/Deny(Content/Audio/**). 우선순위 DESC, 기본값 Write. Admin은 우회.
감사 로그
모든 민감한 작업: login, force unlock, obliterate, 역할 변경, 권한 편집. 내보내기 가능.
Lead 대시보드
7 / 30 / 90일 사용자별 KPI. 누가 막혀 있는지, 누가 어떤 기능을 맡고 있는지 파악하세요.
스토리지 메트릭
중복 제거 비율, 증가량, 크기별 상위 파일. 설정 가능한 가비지 컬렉션(retention + min revisions).
Obliteration
파일을 히스토리에서 영구 삭제(실수로 추가된 기밀 에셋). 500개 단위 배치, 진행 이벤트, 고아 청크를 겨냥한 GC.
당신의 인프라에서, 공개 CA 없이
서버를 직접 호스팅하세요. 자체 서명 TLS + TOFU 핀 고정(trust-on-first-use): 클라이언트가 첫 접속 시 서버 지문을 기억하며, 구매해야 할 공개 인증 기관이 없습니다.
07
배포와 빌드
프로젝트 간에 콘텐츠를 공유하고 내부 플레이테스트 빌드를 배포하세요.
크로스 프로젝트 배포
path patterns로 소스 → 타깃 링크(Plugins/uVersion, Content/Shared/**). Publish는 파일을 복사하고 청크는 공유됩니다(중복 제거).
Internal playtesting
데스크톱 클라이언트에서 패키징된 빌드를 배포하세요. playtester 역할은 Games Page에서 내려받습니다. 버전, config(DebugGame/Development/Shipping), 플랫폼.
내장 Package Game
클라이언트에서 RunUAT BuildCookRun. EngineAssociation을 통한 Engine Path 자동 감지. 깔끔한 종료로 빌드 취소(Windows에서 taskkill /T).
클라이언트 자동 업데이트
Tauri updater 플러그인, RSA 서명된 번들, 서버가 제공하는 latest.json 매니페스트. 팀에게 투명한 업데이트.