<aside> 📌
UE5.6 기반 멀티플레이어 협업 3D 편집 툴
| 항목 | 내용 |
|---|---|
| 장르 | 멀티플레이어 협업 3D 편집 툴 |
| 기술 스택 | - Unreal Engine 5.6 |
<aside> 📹
시연 영상
https://www.youtube.com/watch?v=ZnY8UpUvHqc
</aside>
Unreal Engine , C++ , UMGGitGoogle Drive (Gantt Chart)



<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️⃣



<aside> <img src="/icons/alien-pixel_yellow.svg" alt="/icons/alien-pixel_yellow.svg" width="40px" />
🔸기술 구현 방식

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

</aside>
</aside>
<aside> 2️⃣
🔸기술 구현 로직/방식


</aside>
<aside> 3️⃣
🔸기술 구현 로직/방식
🔹 기능 구현 Flow

<aside> 🚩
버튼 입력을 받으면 SetCameraView() 함수가 호출됩니다. 이후 PlayerStart 또는 PostProcessVolume을 기준으로 중심점을 계산하고, 뷰 타입에 따라 방향 벡터를 산출합니다. 마지막으로 카메라 위치와 회전을 계산하여 Pawn 또는 임시 카메라로 시점을 전환합니다.
</aside>
🔹 🔗카메라 전환 시 지오메트리 충돌 및 급격한 이동 문제
🔹 카메라 뷰 구현 비교

</aside>