전체 글 (178) 썸네일형 리스트형 [Unreal Engine 5] 블랜드 스페이스를 위한 방향 float 얻는 법 UKismetAnimationLibrary::CalculateDirection(OwningCharacter->GetVelocity(), OwningCharacter->GetActorRotation()); CalculateDirection 캐릭터의 속도와 회전 방향을 매개변수로 주면 계산을 통해 -180~ 180 사이의 각도를 반환하는 함수이다. 이 값을 블랜드스페이스를 위해 사용하면 된다. 애니메이션 블루프린트에서 X를 각도, Y를 스피드로 사용하면 된다. [Unreal 5] 커스텀 인풋 컴포넌트 클래스 사용하기 1. 커스텀 인풋 컴포넌트 클래스 생성하고 설정하기 향상된 인풋 컴포넌트를 부모로 클래스를 만들어주자. 이제 원하는 내용을 작성하고 컴파일을 한뒤 다시 에디터로 돌아가자. 프로젝트 셋팅에 들어가 인풋 컴포넌트 클래스를 커스텀 클래스로 바꿔주면 끝난다. [Unreal 5] C++에서 게임플레이 태그 생성하고 사용하기 GAS의 핵심 시스템 중 하나인 게임플레이 태그를 C++에서 생성하고 사용하는 법을 알아보도록 하자. 1. GamePlay Tag 태그 선언하기 None C++ 클래스를 만들자. 그 후 기본적으로 생성되 있는 내용들은 전부 지워준다. #include "NativeGameplayTags.h" 위의 헤더파일을 불러온다. 이제 네임스페이스에서 게임플레이 태그를 선언하고 정의할 것이다. 게임플레이 태그를 선언하고 사용하기 위해서는 API가 필요하다.보통 클래스에 이런 식으로 선언되어 있다. class WARRIORPRACTICE_API AWarriorBaseCharacter : public ACharacterWARRIORPRACTICE_API 프로젝트 명에 따라 이름이 바뀌는데 이 매크로가 있어야 한다. 이 매.. [Unreal] TObjectPtr과 TSubclassOf의 차이 TObjectPtr 어떤 객체가 이미 생성되고난 후 이 객체의 정보를 저장할때 사용하는 스마트 포인터이다. TSubclassOf 어떤 객체가 생성되기 전 그 객체의 대한 클래스 정보를 저장하는 스마트 포인터이다. TObjectPtr는 이미 생성된 객체의 정보를 TSubclassOf는 객체를 생성하기전 클래스의 정보를 저장. [언리얼엔진5] 컴파일 단계에서 원하는 템플릿 함수 타입이 맞는지 확인하기 1. 서론 탬플릿 함수를 사용할 때 typename을 T로 설정할때 T에 모든 타입이 올 수 있지만 특정 타입으로 제한하고 싶은 경우가 있다. 오버로드를 사용하여 원하는 타입만 지정하는 방법도 있지만 이렇게 하지 않고 컴파일 단계에서 원하는 타입이 맞는지 확인해보자. 2. 코드 예제 templateT* GetOwningPawn() const{ static_assert(TPointerIsConvertibleFromTo::Value, "'T' Template Parameter get GetPawn must be derived from APawn"); return CastChecked(GetOwner());} Pawn을 리턴하는 탬플릿함수이다. 이때 Pawn은 꼭 APanw이 아니라 Characte.. [알고리즘] 합배열로 배열에서 일정 범위의 각 원소들의 합을 쉽게 구하기 1. 구간합 이론 합배열이란 기존 배열의 0번 인덱스부터 i번째 인덱스까지 더한 값을 가지고 있는 배열을 말한다. 배열 A가 [1, 3, 5, 2, 7] 을 가지고 있다고 하자. 그럼 합배열 S는 다음과 같이 구할 수 있다. S[0] == A[0] == 1S[1] == A[0] + A[1] == S[0] + A[1] == 4S[2] == A[0] + A[2] + A[3] == S[1] + A[2] == 9...이런 식으로 계산하다 보면 아래와 같은 공식이 나오게 된다.S[i] == A[0] + ... + A[i] == S[i -1] + A[i] 이제 이렇게 하면 원하는 구간의 합을 출력을 할 때 합배열 S의 i번째 인덱스만 출력하면 된다. 만약 A[1] ~ A[3] 까지의 합을 구하고 싶다고 하면 S[0.. [C++] 숫자로 이루어진 문자열 각 자릿수들의 합 구하기 일정 길이의 문자열이 숫자로만 이루어져 있을 때 이 숫자들의 합을 구하는 방법이다. 컴퓨터에서 문자는 전부 아스키 코드로 저장이 되고 이 아스키 코드의 값을 알면 문자를 숫자로 바꿀 수 있다.문자 '0'의 경우 아스키 코드로 48이고, 문자 '1'의 경우 아스키 코드로 49이다. 문자 '1'을 숫자 1로 바꾸기 위해서는 문자 숫자에서 문자'0'을 빼면 된다. char c = '1';int i = c - '0'; 이렇게 하면 i에는 1의 값이 들어간다. (문자열 '1'은 아스키 코드로 49이고 문자열 '0'은 아스키 코드로 48이기 때문에 계산을 하면 1이 된다) 문자열의 각 자릿수를 더하는 방법은 위의 방법을 응용하면 된다. #include #include int main() { int sum =.. [언리얼 프로젝트] 템플릿 애니메이션 설정하기 템플릿 애니메이션에서 단일 애니메이션은 Sequence Player로 블랜드 스페이스 애니메이션은 BlendSpace Player로 재생하면 된다. [언리얼 프로젝트] ABP에서 캐릭터 속도 구하기. 이벤트 그래프에서 캐릭터의 속도를 구해 애니메이션을 구현하려고 한다. 캐릭터 무브먼트 컴포넌트를 얻는다. 이때 Event Blueprint Init 함수는 오버라이드해서 불러와주어야 한다. 유효성을 확인하고 캐릭터의 속도를 구해주면 된다. 여기서는 1D의 움직임만을 얻을 것이기 때문에 XY의 길이만 구해주었다. [실습2] MVVM 바인딩을 위한 FieldNotify 생성하기 변수를 선언한다. 이때 원하는 타입이나 변수명은 원하는 것으로 하면 될 것이다.UPROPERTY(EditAnywhere, BlueprintReadWrite, FieldNotify, Setter, Getter)FString 변수명; 그 다음 UPROPERTY 매크로를 사용해야하는데 이때 Access 권한을 전부 주는 것이 중요하다. 이제 여기서는 Getter와 Setter 모두 설정한다고 하였으니 함수를 구현하면 된다.Getter는 간단하다. FString Get변수명()const { return 변수명; } 그냥 반환만 하면 되는데 이때 중요한 점은 함수 이름을 Get(변수명)으로 해야 된다는 것이다. Setter도 마찬가지이다. void Set변수명(FString In변수명); 매개변수는 굳이 저렇게.. 이전 1 2 3 4 ··· 18 다음 목록 더보기