일지
-
언리얼...11일지 2022. 9. 25. 22:15
애니메이션 몽타주 기본적으로 애니메이션 창에서 애셋 생성을 통해 생성이 가능하다. 몽타주가 생성되었을 때 원하는 애니메이션 클립을 이어 붙여 애니메이션 덩어리로 사용할 수 있다. 이때, 각 애니메이션의 길이를 설정해 적절한 애니메이션으로 만들 수 있다. OnMontageEnded 딜리게이트 연결 방식 언리얼 5에서 AddDynamic을 VS에서 찾지 못하는 문제가 있으나 그냥 무시하고 사용하면 된다. ABAnim->OnMontageEnded.AddDynamic(this, &AABCharacter::OnAttackMontageEnded);
-
언리얼...10일지 2022. 9. 22. 22:53
언리얼 애니메이션 기본 언리얼의 애니메이션 시스템은 크게 두 가지로 나뉜다. 애님 인스턴스 애님 그래프가 참조할 데이터를 제공한다. C++과 블루 프린터로 제작 가능. 애님 그래프 애니 인스턴스의 값에 따라 변화하는 애니메이션을 설계한다. 블루프린터만 제공됨. C++로 애님 인스턴스를 만들었으면 애님 그래프에 이것을 적용해주는 것은 클래스 세팅에서 부모 클래스를 변경해 주는 것으로 가능하다. C++ 클래스에서 UPROPERTY 변수를 만들면 애님 그래프에서 사용할 수 있는데 상속된 변수는 기본적으로 표시되지 않는다. 이것을 사용하기 위해서는 설정에서 상속된 변수 표시를 체크해줘야 한다. 애니메이션 리타게팅 언리얼 5에서는 리타겟 매니저를 사용하는 게 아니라 그저 필요한 애니메이션에서 우클릭해서 리타게팅이..
-
언리얼...9일지 2022. 9. 20. 21:52
Character와 Pawn의 차이 기본적으로 이 둘은 큰 차이가 없다. Character가 조금 더 플레이어를 위해 특수화된 클래스라고 보면 맞을 것 같다. Character는 Pawn을 상속받아 Pawn의 기본 기능을 모두 지원하고 거기에 더해 CapsuleComponent, CharacterMovement, Skeletal Mesh 등을 기본으로 가지고 있다. 모든 기능을 처음부터 구현할 게 아니라면 필요에 따라 잘 구분해서 사용해야 한다. Character와 Pawn의 컨트롤 방식도 차이가 있는데, Pawn의 경우 기본적으로 게임 물리, AI에 조종을 받기 때문에 속도를 관리한다. 반면에 Character는 플레이어의 입력을 반영해야 하기 때문에 Rotation을 관리한다. 입력 디버깅을 위한 콘..
-
언리얼...8일지 2022. 9. 19. 21:41
전방 선언의 중요성 언리얼은 기본적으로 C++로 만들어졌기 때문에 C++의 최적화를 그대로 사용할 수 있다. 그렇기 때문에 클래스의 경우 가능하다면 전방 선언을 통해 헤더에는 선언만 존재하게 하고 소스 파일에서 실제로 사용하는 클래스를 포함하여 사용해야 빌드 속도 저하를 줄일 수 있다. 입력 매핑 게임 엔진의 장점 중 하나는 입력을 자신이 원하는 대로 커스텀해서 받을 수 있다는 것이다. 이 커스텀은 프로젝트 세팅의 입력 탭을 통해 설정이 가능하다. 입력 방식에는 특정 행동에 대한 매핑에 사용하는 액션 매핑, 이동이나 회전에 사용하는 축 매핑이 존재한다. 각각의 매핑에 함수를 다는 것은 다음과 같이 진행한다.
-
언리얼...6일지 2022. 9. 15. 21:25
움직이는 액터 설계 언리얼 변수의 캡슐화 언리얼 에디터에서는 확인할 수 있어야 하는 변수지만 다른 클래스에서는 숨기고 싶은 경우에 사용할 수 있는 방법으로 UPROPERTY의 Meta영역에 AllowPrivateAccess 키워드를 추가하고 이를 true로 설정해주면 된다. 경과 시간 사용 기본적으로 Tick 함수에 들어오는 DeltaTime을 사용할 수 있으나 이외의 함수에서 DeltaTime이 필요한 경우 GetWorld()->GetDeltaSeconds()를 사용하면 된다. 이외에도 여러 종류의 시간 값이 존재하며 대표적으로 다음의 종류가 있다. Tick 시간 GetWorld()->GetDeltaSeconds() 게임 시작 후 경과된 시간 GetWorld()->GetTimeSeconds() 게임을 ..
-
언리얼...5일지 2022. 9. 14. 21:12
로그 찍기 언리얼 5에서는 따로 출력 창을 열지 않아도 아래 도구상자에 도킹이 되어있다. 이 출력 로그 버튼을 누르면 로그 창이 팝업 형태로 보이게 되고 화면의 다른 곳을 클릭하면 다시 숨겨지게 된다. 그런데 일반적인 용도에서는 디버깅을 위해 로그를 사용하는 경우가 많기 때문에 이렇게 되면 조금 불편할 수 있다. 따라서 우측 상단의 레이아웃에 고정을 눌러 고정해두면 편하게 사용할 수 있다. 로그는 UE_LOG 매크로로 로그창에 출력이 가능한데, 순서대로 로그 카테고리, 로그 필터, 형식 문자열, 추가 정보가 들어가게 된다. 추가 정보는 필수 항목이 아니다. 이때 형식 문자열은 C의 입출력에 사용하는 그걸 말하는 것이다. 형식 문자열은 FString을 넣어줘야 하는데 이를 편하게 사용할 수 있도록 TEXT..
-
언리얼...4일지 2022. 9. 13. 14:43
언리얼 C++의 최소 사항 c++ 헤더를 최소화하기 위해 4.15부터 언리얼 빌드가 가능한 최소 정보만 담고 있는 CoreMinial.h을 사용하도록 변경되었다. 기존에는 언리얼의 다양한 기본 기능을 포함하는 EngineMinimal.h을 사용했었다. 자동 메모리 관리 기본적으로 언리얼에서는 UPROPERTY로 선언된 변수는 GC에서 정보를 가지고 있다가 더 이상 사용이 되지 않으면 자동으로 메모리를 제거하도록 되어있다. 따라서 언리얼 관련 포인터를 사용하는 경우에는 UPROPERTY를 붙여서 관리가 되도록 해줘야 한다. 언리얼 클래스 조건 C++ 클래스가 언리얼 오브젝트 클래스가 되기 위해서는 다음의 조건이 만족해야 한다. UCLASS 매크로를 클래스 선언 위에 적용해야 한다. 클래스 이름의 접두사를 ..