분류 전체보기
-
언리얼...11일지 2022. 9. 25. 22:15
애니메이션 몽타주 기본적으로 애니메이션 창에서 애셋 생성을 통해 생성이 가능하다. 몽타주가 생성되었을 때 원하는 애니메이션 클립을 이어 붙여 애니메이션 덩어리로 사용할 수 있다. 이때, 각 애니메이션의 길이를 설정해 적절한 애니메이션으로 만들 수 있다. OnMontageEnded 딜리게이트 연결 방식 언리얼 5에서 AddDynamic을 VS에서 찾지 못하는 문제가 있으나 그냥 무시하고 사용하면 된다. ABAnim->OnMontageEnded.AddDynamic(this, &AABCharacter::OnAttackMontageEnded);
-
[Unreal 5/C++] 애니메이션 스테이트 노티파이 사용 방법게임 엔진/Unreal 2022. 9. 24. 18:04
애니메이션 스테이트 노티 파이 사용 방법 애니메이션 스테이트 노티파이 애니메이션 그래프에서 스테이트를 클릭해 디테일 창을 확인하면 노티 파이를 확인할 수 있다. 이 노티 파이는 스테이트에 들어오는 순간, 스테이트에서 나가는 순간, 애니메이션 블랜딩 완료 시에 적용된 노티파이를 호출하게 된다. 노티파이 이벤트 사용 방법 스테이트 이름을 "Noti"라고 한다면 다음과 같은 노티파이 이벤트를 생성해야 한다. 즉, "AnimNotify_"가 설정한 이름 앞에 붙어야 한다. 만약 설정한 스테이트 노티파이 이름이"AnimNotify_Noti"라면 "AnimNotify_AnimNotify_Noti"라는 이름의 이벤트로 노티가 발생하게 된다. ※ C++ 함수로 이벤트를 만드는 것도 동일하게 설정된 이름 앞에 AnimN..
-
언리얼...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..