728x90
반응형

Unreal 23

23. Attach & Pick, Enum State, Switching Animation

1. Attach Actor To Socket 특정 Component를 다른 Component에 부착하려면 Attach Component To Component함수를 이용 해야한다 Attach Component To Component : Target SceneComponent를 Parent SceneComponent의 원하는 Socket에 원하는 TransformRule로 Attach 시킨다, Attach가 되었는지 bool로 return한다 TargetComponent가 붙을 Parent Component (USceneComponent), 소켓 이름 (FName), TransformRule (EAttachmentRule), 물리학 적용 (bool)을 인자로 가진다 이때 각각의 Transform Rule..

Unreal 2024.02.22

22. IK Rig And Retarget & Socket & fbx Import

1. Class Inherit UE에서 부모클래스로부터 가상함수를 상속받아 override할 때 UFUNCTION() 매크로를 빼야 정상 작동한다 class STUDYUE_API AWeapon : public AItems { GENERATED_BODY() protected: //AItem의 virtual 함수를 override 할 때 UFUNCTION()매크로를 뺌 virtualvoid OnSphereOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult) ..

Unreal 2024.02.15

21. Collision & Overlap (2)

1. On Component Begin/End Overlap SphereCollisionComponent는 USphereComponent이다 USphereComponent* Sphere; USphereComponent는 UPrimitiveComponent를 상속받고 UPrimitiveComponent에는 OnComponentBegin/EndOverlap Delegate가 존재한다 따라서 USphereComponent뿐 아니라 UPrimitiveComponent를 상속받는 모든 Component는 OnComponentBegin/EndOverlap Delegate를 사용할 수 있다 OnComponentBeginOverlap은 Component가 다른 Actor/Component와 Overlap이 시작했을 때..

Unreal 2024.02.08

20. Observer Pattern & Delegate

1. Observer Pattern & Delegate 우선 Observer Pattern에 대해서 알아보자 Subject가 있고 이 Subject는 Observer List를 가지고 있다 이 Observer List의 Observer들은 프로그램에 존재하는 다른 Observer를 의미한다 (여기서 Observer는 Object로 생각해도 됨) 프로젝트에 존재하는 Observer들은 CallBack()함수를 가지고 있고 Observer는 특정한 상황에서 이 CallBack()함수가 호출되길 원한다 이를 Event라고 부른다 Observer Pattern의 목표는 Subject의 Observer들의 CallBack()함수를 특정 Event때 호출하는 것이다 결국에 Subject는 Event가 언제 발생하는..

Unreal 2024.02.07

19. Collision & Overlap (1)

1. Collision Presets UE에서 Level에 배치할 수 있는 모든것은 Actor를 상속받아야 한다 그렇다면 StaticMesh uasset을 드래그해서 Level에 올리면 어떻게 될까? 바로 Static Mesh Actor가 Instance화 되고 해당 Actor는 StaticMeshComponent를 갖게 된다 StaticMeshActor는 Actor를 상속받고 StaticMeshComponent 한개를 가지고 있다 StaticMeshComponent에는 Collision이 존재한다 (MeshComponent들과 CollisionComponent에는 Collision이 존재한다) StaticMeshActor들은 기본적으로 Collision Presets가 존재하고 여기서 원하는 Colli..

Unreal 2024.01.31

18. IK (Inverse Kinematics)

1. IK IK처리를 하지 않고 Character의 움직임을 구현했다면 다음과 같이 경사로에 위치했을 때 발이 뜨는 현상을 볼 수 있다 자연스럽게 보이려먼 Character기준 왼쪽 다리는 구부리고 오른쪽 다리는 밑으로 더 내려와야 한다 로봇으로 비유를 하면 로봇 다리의 끝을 제어하고 싶다면 다리와 관련되어 있는 관절 부품 시작부터 다리의 끝 관절까지 제어해야 한다 이를 게임개발에서 IK를 사용하여 처리한다 IK는 말그대로 Inverse Kinematics이다 위 사진을 예시로 설명하면 왼쪽 경사면에 맞게 왼발을 배치하면 왼발에 연관되어 있는 상위 Bone (L_Knee, Pelvis) 이 어디 위치에 들어가야 하는지 역으로 계산할 수 있다는 것이다 IK 계산 방식은 다음과 같다 오른쪽 발에 가상의 Sp..

Unreal 2024.01.27

17. Jump Animation

1. Jump Character를 Jump 시키기 위해서 우선 InputAction부터 만들어야 한다 Jump같은 경우에는 InputValue가 눌렀는지 안눌렀는지 bool값만 있으면 되기 때문에 Digital (bool)로 ValueType을 지정해준다 C++에서 만든 InputAction을 넣어주기 위해 변수로 선언을 해주고 Bind할 함수도 선언 해준다 UPROPERTY(EditAnywhere, Category = Input) UInputAction* JumpAction; void Jump(const FInputActionValue& Value); SetupPlayerInputComponent()에서 EnhancedInputComponent로 InputAction에 원하는 함수를 Bind해준다 vo..

Unreal 2024.01.24

16. Anim Instance

1. Anim Instance AnimBP의 Parent Class는 UAnimInstance클래스이다 따라서 C++ Class로 생성하고 싶다면 부모클래스를 UAnimInstance로 지정해야 한다 AnimBP는 게임을 실행하지 않아도 계속해서 Tick이 돌고 있다 (에디터를 실행하지 않아도 AnimBP의 UpdateAnimation 노드는 계속 실행중이다) 이는 C++에서도 마찬가지이다 따라서 nullptr 참조에 굉장히 조심해야 한다 (바로 크래시 발생할 수 있음) 따라서 AnimInstance Class작업시에는 LiveCoding보다 Editor를 닫고 작업하는걸 추천한다 C++에서 다음 이벤트들은 UAnimInstance에서 override하여 사용할 수 있다 #include "CoreMini..

Unreal 2024.01.23

15. Animation BP

1. Animation BP 다양한 애니메이션을 적용하기 위해서는 AnimBP를 사용해야 한다 (AnimBP는 UAnimInstance를 부모클래스로 한다) AnimBP를 생성할 때는 우선 Skeleton을 지정해야 한다 AnimBP를 생성하고 열어보면 좌측에 Viewport가 있고 EventGraph, AnimGraph가 있는걸 확인할 수 있다 EventGraph는 다른 BP의 EventGraph와 마찬가지로 계산 및 논리 흐름 구성을 하는곳이고 (마찬가지로 변수, 함수도 생성이 가능하다) AnimGraph는 Pose를 관리하는 곳이다 AnimGraph의 Output Pose에 원하는 Pose를 넣어 Character에 적용할 수 있다 AssetBrowser에서 원하는 Animation Sequence..

Unreal 2024.01.23

14. The Character Class & Hair And Eyebrows

1. Hair & Eyebrows UE에는 GroomAsset이 존재한다 이 GroomAsset을 이용하여 Hair나 Eyebrows들을 추가할 수 있다 이때 GroomAsset이 Load되지 않는다면 다음과 같은 Plugin을 추가해주어야 한다 (UE5.3 기준) 이러한 GroomAsset들을 사용하려면 GroomComponent를 Attach 해주어야 한다 (UGroomComponent) UGroomComponent는 바로 사용할 수 없고 HairStrandsCore와 Niagara라는 Module을 프로젝트.Build.cs파일에 추가해주어야 한다 Module을 추가하고 나면 uproject File에서 Generate를 해주고 uproject File 더블클릭으로 Module Rebuild를 해주어..

Unreal 2024.01.13
728x90
반응형