✔️ 프로젝트 소개

<aside> 📌

UE5.6 기반 멀티플레이어 협업 3D 편집 툴

항목 내용
장르 멀티플레이어 협업 3D 편집 툴
기술 스택 - Unreal Engine 5.6

✔️ 프로젝트 시연 영상

<aside> 📹

시연 영상

https://www.youtube.com/watch?v=ZnY8UpUvHqc

</aside>

✔️ 사용 기술 스택

✔️ 협업 및 도구

✔️ 개발 내용


✔️ 간트차트

image.png

✔️ 프로그램 구조

🔹프로그램 FLOW

image.png

🔹참고 인터페이스: TwinMotion

image.png

image.png

✔️ 핵심 기술 역량

<aside> 💡

직무 기술서

역량 구현 사례 판단 근거 기술 깊이
**MVC 기반 대규모
UI 아키텍처** BaseWidget + WidgetController + Data 3계층 구조 View와 Logic 완전 분리, TopBar/BottomBar/RightPanel/Viewport 등 10개 이상 패널 동시 관리 Observer 패턴 + WidgetSwitcher 동적 분기
Listen Server 실시간 Replication 최적화 FPropertyDelta 히스토리 복제 시스템 개별 RPC 순서 문제 + 지연 클라이언트 상태 불일치 해결 필요 속성 변경 이력 전체 복제로 지연 접속자 자동 최종 상태 복구
GUID 기반 C++ 액터 관리 시스템 USceneManager (WorldSubsystem) + EditSyncComponent 멀티플레이어 환경에서 모든 클라이언트가 동일 액터를 정확히 식별해야 함 TMap<FGuid, TWeakObjectPtr> 캐싱 + FEditMeta 구조 설계
실시간 협업 편집 시스템 4종 Light 실시간 편집 + 인월드 Memo + Ghost Preview 조명·메모·액터 스폰이 동시에 동기화되어야 함 Server Authoritative + NetMulticast RPC + PropertyDelta 통합

✔️ 구현 상세 내용

<aside> 1️⃣

File Menu 기능 구현

image.png

image.png

image.png

<aside> <img src="/icons/alien-pixel_yellow.svg" alt="/icons/alien-pixel_yellow.svg" width="40px" />

기존 폴더 및 다른 프로그램 호출 방식

🔸기술 구현 방식

image.png

FPlatformProcess::CreateProc(
	*Path,              // 실행 파일 경로
	TEXT(""),         // 인자 (여기서는 없음)
	true,                 // 새 프로세스를 독립 실행
	false,                // 에디터 종료 시 함께 종료 안 함
	false,                // 표준 입출력 연결 안 함
	nullptr,              // 프로세스 핸들
	0,                      // 우선순위
	*ProjectDir,       // 실행 시 기준 디렉터리
	nullptr               // 파이프
);

image.png

</aside>

</aside>

<aside> 2️⃣

Screenshots & VideoCaptures

🔸기술 구현 로직/방식

image.png

image.png

</aside>

<aside> 3️⃣

카메라 뷰 전환

🔸기술 구현 로직/방식

🔹 기능 구현 Flow

image.png

<aside> 🚩

버튼 입력을 받으면 SetCameraView() 함수가 호출됩니다. 이후 PlayerStart 또는 PostProcessVolume을 기준으로 중심점을 계산하고, 뷰 타입에 따라 방향 벡터를 산출합니다. 마지막으로 카메라 위치와 회전을 계산하여 Pawn 또는 임시 카메라로 시점을 전환합니다.

</aside>

🔹 🔗카메라 전환 시 지오메트리 충돌 및 급격한 이동 문제


🔹 카메라 뷰 구현 비교

카메라뷰.gif

</aside>