오늘 진행한 작업
1. 타이틀 시작 시 Delegate 오류 해결
게임을 시작할 때 Unreal Engine의 Delegate 내부에서 ensure가 발생하며 디버거가 멈추는 문제를 확인했다.
원인은 StartWidget.cpp에서 BackUi_Btn의 클릭 이벤트가 중복으로 등록된 것이었다.
BackUi_Btn->OnClicked.AddDynamic(
this,
&UStartWidget::OnBackUiButtonClicked
);
동일한 코드가 두 번 작성되어 있었으며, 중복 블록을 제거하는 방향으로 해결했다.
- StartWidget.cpp = 타이틀 UI 버튼 이벤트 연결
- 문제: 같은 버튼과 함수가 Delegate에 두 번 등록됨
- 해결: 중복된 AddDynamic() 제거
2. 패키징 환경에서 PlatformCrypto 오류 확인
다른 노트북에서 패키징을 진행하는 도중 다음 오류가 발생했다.
UnrealEditor-PlatformCryptoOpenSSL.dll
Bad Image
Error 0xc0e90002
이후 다음 플러그인 오류도 함께 발생했다.
Plugin 'PlatformCrypto' failed to load
because module 'PlatformCrypto' could not be loaded.
두 오류는 별개의 문제가 아니라 다음 흐름으로 이어진 동일한 문제였다.
PlatformCryptoOpenSSL DLL 로드 실패
→ PlatformCrypto 모듈 로드 실패
→ PlatformCrypto 플러그인 실행 실패
→ Unreal Editor 또는 패키징 진행 불가
프로젝트 C++ 코드보다는 다른 노트북의 소스 엔진 바이너리, VC++ 런타임 또는 압축 해제 과정의 문제일 가능성이 높다고 판단했다.
3. 압축 파일 차단 여부 확인
엔진 압축 파일의 속성에 차단 해제 항목이 있지만 체크되지 않은 상태를 확인했다.
다음 순서로 처리하기로 했다.
압축 파일 속성
→ 차단 해제 체크
→ 적용
→ 기존 추출 엔진 폴더 정리
→ 새로운 위치에 다시 압축 해제
압축을 이미 푼 다음 원본 압축 파일만 차단 해제하면 기존 추출 파일에는 반영되지 않을 수 있으므로, 차단 해제 후 다시 압축을 풀어야 한다.
4. PlatformCrypto 후속 해결 방법 정리
압축 파일을 다시 풀어도 문제가 계속되면 다음 순서로 확인한다.
- Microsoft Visual C++ 2015–2022 Redistributable x64/x86 설치 또는 복구
- Windows 보안의 보호 기록에서 DLL 격리 여부 확인
- 정상 PC와 오류 PC의 DLL 크기 및 해시 비교
- 소스 엔진의 Setup.bat과 GenerateProjectFiles.bat 재실행
- Visual Studio에서 UE5 Development Editor Win64 재빌드
- 암호화 기능을 사용하지 않을 경우에만 PlatformCrypto 비활성화 검토
5. Water 충돌 프로필 경고 확인
다음 경고도 확인했다.
Collision Profile settings do not include
an entry for the Water Body Collision profile.
프로젝트에서 Water와 WaterExtras 플러그인이 활성화되어 있지만, DefaultEngine.ini에 WaterBodyCollision 프로필이 없어서 발생한 경고였다.
에디터의 다음 버튼으로 필요한 설정을 자동 추가할 수 있다.
Add entry to DefaultEngine.ini?
이 경고는 PlatformCrypto DLL 오류와는 별개의 문제다.
어려웠던 부분
프로젝트 오류와 엔진 오류 구분
처음에는 패키징 중 발생했기 때문에 프로젝트 코드나 패키징 설정 문제처럼 보였다. 하지만 오류 경로가 프로젝트가 아닌 다음 엔진 플러그인을 가리키고 있었다.
Engine/Plugins/Experimental/PlatformCrypto/Binaries/Win64
이를 통해 프로젝트 로직 문제가 아니라 엔진 DLL 로드 문제라는 것을 구분할 수 있었다.
연속된 두 오류의 관계 파악
Bad Image와 Plugin failed to load가 각각 다른 문제처럼 보였지만 실제로는 다음 인과관계였다.
DLL 손상 또는 실행 불가
→ 모듈 로드 실패
→ 플러그인 로드 실패
따라서 플러그인 설정만 변경하기 전에 엔진 바이너리와 실행 환경부터 확인해야 했다.
압축 파일 차단 해제 시점
Windows의 파일 차단은 압축 해제된 DLL에도 영향을 줄 수 있다. 이미 압축을 푼 상태에서는 원본 압축 파일만 차단 해제하는 것으로 충분하지 않을 수 있다는 점을 확인했다.
다음 작업
- 차단 해제 후 엔진을 다시 압축 해제하여 실행 확인
- PlatformCrypto 오류가 계속되면 VC++ 런타임 복구
- 정상 PC와 문제 PC의 DLL 해시 비교
- 필요하면 소스 엔진 재빌드
- WaterBodyCollision 설정 추가 후 경고 제거
- 패키징 재시도 및 최종 결과 확인
'StrikForge 프로젝트 > 작업일지' 카테고리의 다른 글
| StrikForge 10일차 - 오늘 한 일 (0) | 2026.08.20 |
|---|---|
| StrikForge 9일차 - 오늘 한 일 (0) | 2026.08.18 |
| StrikForge 7일차 - 오늘 한 일 (0) | 2026.08.12 |
| StrikForge 6일차 - 오늘 한 일 (0) | 2026.08.12 |
| StrikeForge 5일차 - 오늘의 한일 (0) | 2026.08.10 |