언어:
페이지 정보
엔진 버전:
언리얼 엔진

블루프린트로 게임 저장하기

언리얼 엔진

SaveGame 오브젝트 생성

SaveGame 오브젝트를 새로 생성하기 위해서는, 블루프린트 클래스를 새로 생성 합니다. 부모 클래스 선택 대화창이 뜨면, Custom Class 드롭다운을 펼친 다음 SaveGame 을 선택합니다. 검색창에서 SaveGame 에 바로 점프할 수 있습니다. 새 블루프린트 이름은 MySaveGame 이라 합니다.

savegame.png

새로 만든 SaveGame 오브젝트 블루프린트에서, 저장하고자 하는 정보를 담을 변수를 생성합니다.

이 예제에서는, SaveSlotNameUserIndex 에 대한 기본값 저장에 사용될 변수도 선언되어 있어, 이 SaveGame 오브젝트에 저장하는 각 클래스에서는 그 변수를 따로 설정할 필요가 없습니다. 이 단계는 옵션으로, 기본값이 변경되지 않은 경우 하나의 세이브 슬롯을 덮어쓰게 됩니다.

SaveGameVariables.png

블루프린트 컴파일 이후 변수에 대한 기본값을 설정할 수 있습니다.

변수 저장하기

전체 저장 구성 스냅샷입니다. 이미지를 클릭하면 원래 크기로 볼 수 있습니다.

먼저 Create Save Game Object 노드를 사용하여 SaveGame 오브젝트의 인스턴스를 생성 또는 복사합니다. Save Game Class 드롭다운 이름을 새로운 블루프린트 이름으로 설정했는지 확인합니다. 이 경우 MySaveGame 입니다. Create Save Game Object 노드는 출력 핀 유형이 Save Game Class 입력에 지정한 유형에 일치하도록 자동 변경하여 Cast To (형변환) 노드 없이 바로 사용할 수 있도록 해줍니다. 방금 생성한 MySaveGame 오브젝트를 나중에 쉽게 재사용하려면 변수로 승격 시켜주면 됩니다.

SaveGameBP_1.png

이제 커스텀 SaveGame 오브젝트인 MySaveGmae 사본을 Save Game Instance 변수에 저장했으니, 이제 거기에 정보를 전송할 수 있습니다. 여기서 Player NamePlayerOne 으로 설정되어 있습니다. 정보를 저장하고자 하는 변수가 더 있는 경우, 이 단계를 반복해 주면 됩니다.

SaveGameBP_2.png

이제 Save Game To Slot 노드를 사용하여 SaveGame 오브젝트의 정보를 하드 디스크에 저장하면 됩니다. Save Game To Slot 노드는 파일명과 사용자 ID 를 받는데, 여기서는 앞서 만들어둔 기본값이 됩니다.

SaveGameBP_3.png

변수 로드하기

전체 저장 셋업에 대한 스냅샷입니다. 이미지를 클릭하면 확대해 볼 수 있습니다.

첫 단계는 옵션으로, SaveGame 오브젝트 안에 기본 세이브 슬롯과 사용자 ID 를 저장하는 것을 기반으로 합니다. 여기서는 빈 SaveGame 오브젝트를 먼저 생성하여, 거기서 기본 SaveSlotName 과 UserIndex 를 읽을 수 있도록 합니다. 마찬가지로 이 부분은 모든 게임 구현에 적용되는 것은 아닙니다.

LoadGameBP_1.png

Load Game From Slot 노드를 사용하여 SaveGame 오브젝트 블루프린트의 인스턴스를 생성할 수 있습니다. 결과 오브젝트를 MySaveGame 처럼 취급하기 위해서는 Cast To (형변환) 노드가 필요한데, 그래야 변수에 저장하여 나중에 쉽게 접근할 수 있습니다.

LoadGameBP_2.png

하드 디스크에서 새로운 SaveGame 오브젝트를 로드한 이후에는 변수값을 읽어 필요한 액터 또는 클래스에 할당하거나 여기서처럼 직접 사용할 수도 있습니다.

LoadGameBP_3.png