전체 글 311

[UE4] 커스텀 구조체 TArray Contains 동작을 위한 oprator== 구현

커스텀 구조체를 정의하고 TArray로 사용할 경우가 있습니다. 다음과 같이요. TArray MyDataArray; MyDataArray에 아래와 같이 특정 데이터를 가지고 있는지 검사하고자 합니다. FMyData Data; ... MyDataArray.Contains(Data); Contains가 정상 동작하려면 아래와 같이 oprator==를 구현해 주어야 합니다. 그렇지 않으면 컴파일 오류가 발생합니다. USTRUCT() struct FMyData { GENERATED_BODY() AActor MyActor; float Prob; friend bool operator==(const FMyData& Lhs, const FMyData& Rhs) { return Lhs.MyActor == Rhs.MyAc..

[tortoise git] origin, master, HEAD 의미

GIT은 "원격 저장소", "로컬 저장소", "작업 폴더" 이렇게 세 가지 장소가 있습니다. SVN과 가장 큰 차이로 "로컬 저장소"가 있다는 것입니다. origin 원격 저장소를 의미 합니다. master 브랜치 중에 가장 중되는 기본적인 브랜치입니다. HEAD 현재 어떤 작업 공간에 있는지 나타냅니다. 리비전 그래프와 show log를 했을때 그 의미를 알아야 겠습니다. origin/master : 원격 저장소의 master 브랜치의 작업 위치입니다. origin/HEAD : 원격 저장소의 현재 작업 위치입니다. master (붉은색) : 로컬 저장소의 HEAD, master의 작업 위치입니다. 로컬 저장소의 HEAD -> master 상태로 attach된 상태입니다. master (초록색) : 로컬..

각종 팁/git 2022.06.11

[UE4] AActor 에디터에서 선택 Event 구현

에디터에 액터를 배치하고 난이후 액터를 선택 했을때 어떠한 구현을 하거나 선택 해제가 되었을때 어떠한 구현을 해야할 경우 이러한 이벤트를 통보 받을 수 있어야 겠습니다. 다음 페이지를 참고하였으며 구현 코드는 아래에 있습니다. UrealEd가 포함된 에디터 모듈에서 구현 해야합니다. https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/Engine/USelection/ USelection Manages selections of objects. docs.unrealengine.com header 파일 구현 입니다. #pragma once #include "CoreMinimal.h" #include "Plus/SpawnSystem/PlusSpawnWave..

[UE5] Lyra 분석 - AnimBP Tour

ABP_Mannequin_Base 이 AnimBP의 Event Graph에 어떠한 로직도 없습니다. 로직은 게임 쓰레드에서 프로세싱 됩니다. 매틱마다, 각각의 AnimBP를 위한 Event Graph는 순차적으로 하나씩 실행되어져야 합니다. 이러한 것은 퍼포먼스 병목이 될 수 있습니다. 이 프로젝트를 위해서, 우리는 새로운 BlueprintThreadsafeUpdateAnimation 함수를 대신에 사용했습니다. BlueprintThreadsafeUpdateAnimation에서 로직은 여러 AnimBP를 동시에, Game Thread의 오버헤드 없이 병렬로 실행 할 수 있습니다. ABP_Mannequin_Base::BlueprintThreadSafeUpdateAnimation 이 함수는 게임 데이터를 모..

[UE5] TObjectPtr<T> 소개

UE5에서는 의무가 아닌 선택사항으로 Raw 포인터 대신에 TObjectPtr를 사용하는 것을 권장하고 있습니다. 예를 들어 USceneComponent* 는 TObjectPtr로 선언하여 사용합니다. 에디터 빌드에 다이내믹 해상도와 액세스 트래킹을 추가하면서 생겨났다. 함수의 파라미터나 로컬 변수로 사용시 Raw 포인터로 자동 변환 됩니다. 제품의 동작 또는 성능에는 영향을 미치지 않지만, 더 나은 에디터 빌드에서의 개발 경험을 할 수 있습니다. https://docs.unrealengine.com/5.0/ko/unreal-engine-5-migration-guide/ C++ 오브젝트 포인터 프로퍼티 다음 섹션은 C++ 코드를 사용하는 프로젝트에만 적용되나, C++ 프로젝트 대부분은 수정할 필요 없이 ..

[UE5] Quixel Bridge가 보이지 않는 현상 수정

참고: https://forums.unrealengine.com/t/missing-quixel-bridge-add-on-in-new-ue5/513622/37 Quixel Bridge가 보이지 않는 현상 수정 1. Epic Games Launcher 실행 2. Library로 이동 3. 보관함으로 스크롤 다운 4. “Bridge” 검색하여 설치 5. 에디터에 정상적으로 설치 되었고 사용으로 체크 된 것 확인합니다. 6. 정상적으로 Quixel이 추가 된 것을 볼 수 있습니다.

[svn] Tortoise SVN external link 기능(다른 저장소 연동)

SVN을 사용하다 보면 여러 저장소를 사용하게 되고 한 저장소가 다른 저장소를 포함할 경우가 있습니다. 이때 SVN external link기능을 이용하면 다른 저장소를 연동하여 사용 할 수 있습니다. 한 번 이 설정을 해 놓으면 마치 하나의 저장소 처럼 이용 할 수 있습니다. 설정하는 방법은 다음과 같습니다. - Properties를 선택하여 실행합니다. - New -> Externals를 선택합니다. - Link할 URL과 Local path를 설정합니다. - 최종적으로 Properties에 다음과 같이 externals가 설정 됩니다.

각종 팁/svn 2022.05.02

[UE4] DataTable->FindRow의 ContextString 의미?

UDataTable->FindRow에서 ContextString의 의미는 검색을 제대로 못할 경우 메시지 출력할때 이 스트링을 포함하여 출력합니다. template T* FindRow(FName RowName, const FString& ContextString, bool bWarnIfRowMissing = true) 다음의 코드를 보면 ContextString이 어떻게 출력되는지 알 수 있습니다. 코드가 의도하는 것은 DataTable '%s'이며 테이블의 이름을 넣어 주면 에러 발생시 어떤 테이블인지 알 수 있어서 유용합니다.​ if(RowStruct == nullptr) { UE_LOG(LogDataTable, Error, TEXT("UDataTable::FindRow : '%s' specified..

반응형