목록Unreal Engine/0. Unreal 5 (17)
스토리지

1. 아이템에 컴포넌트 설치 Weapon에 Box Component와 Overlap 범위를 측정할 Scene Component 2개 (Start, End) 를 코드에서 추가한다. UPROPERTY(VisibleAnywhere, Category = "Weapon Properties") UBoxComponent* WeaponBox; UPROPERTY(VisibleAnywhere) USceneComponent* BoxTraceStart; UPROPERTY(VisibleAnywhere) USceneComponent* BoxTraceEnd; 2. 박스의 Overlap 이벤트 구현 void AWeapon::OnBoxOverlap(UPrimitiveComponent* OverlappedComponent, AActor..

1. 결과 2. 과정 Weapon.cpp void AWeapon::AttachMeshToSocket(USceneComponent* InParent, FName InSocketName) { FAttachmentTransformRules TransformRules(EAttachmentRule::SnapToTarget, true); ItemMesh->AttachToComponent(InParent, TransformRules, InSocketName); } void AWeapon::Equip(USceneComponent* InParent, FName InSocketName) { AttachMeshToSocket(InParent, InSocketName); ItemState = EItemState::EIS_Eq..

1. 개념 IK 릭(IK Rig) 시스템은 스켈레탈 메시의 포즈를 편집하는 솔버(Solvers) 를 인터랙티브하게 생성하는 수단을 제공합니다. 그 결과로 생성된 IK 릭 에셋을 애니메이션 블루프린트 등 원하는 애니메이션 시스템에 임베드하여 포즈 기반 솔버 파라미터를 동적으로 수정할 수 있습니다. 또한 IK 리타기팅(IK Retargeting) 시스템은 런타임에서 또는 새 애니메이션 시퀀스의 오프라인 생성 시에 애니메이션을 서로 비율이 다른 캐릭터 간에 전송하는 데 사용할 수 있습니다. 내가 이해한 내용 : Bone 구조가 다른 두 Skeleton에 동일한 애니메이션을 사용하기 위해 이루어지는 과정 2. 과정 1. 애니메이션이 들어가이는 Bone 따기 모델과 애니메이션은 모두 MIXAMO에서 받은 것이다...

기본적으로 Actor들은 다 Collision을 지원하는 거 같다. Detail 패널에서 Collision을 검색하면 확인 할 수 있다. 1. Collision Presets 대충 몇개만 보자면 NoCollision : 충돌 판정 X BlockAll : 충돌 판정 있어서 막히는 것 OverlapAll : 충돌 판정 있지만 겹쳐지는 것 2. Collision Response 각각의 객체에 대해 충돌판정 유뮤를 정할 수 있다. 위의 사진은 해당 객체가 Camera와 충돌하지 않고 Pawn과는 Overlap이 가능한 것을 체크해놓았다. 그 이외에는 전부 Block이다. 3. 코드에서 충돌 델리게이트 구성 USceneComponent에서 상속받는 UPrimitiveComponent.h라는 곳에 해당 함수에 대한..

1. Animation Blueprint 생성 2. State Machine 생성 3. State Machine 구성 3-1. State : 상태 애니메이션을 직접 드래그 앤 드랍해도 되고 cached된 pose를 가져와서 사용할 수도 있다. 3-2. 상태 변환 조건 bool 값으로 해당 조건으로 이동할 지 결정됨. 3-3. State Machine Cache 특정 State Machine을 캐싱해서 다른 곳에서 사용할 수 있다. 전체 Anim Graph 4. C++ 클래스에서 변수 값 가져오기 정지 달리기 상태 변환을 할려면 현재 캐릭터의 XY평면에서의 속도가 필요하다. UAnimInstance 를 상속받아 해당 기능들을 C++ 코드로 구현할 수 있다. 해당 이벤트들을 C++에서 가져오면 다음과 같다...

1. 개념 Inverse Kinematics (IK, 역운동학)은, 조인트 로테이션을 직접 처리하지 않고 End Effector (엔드 이펙터)위치에서 조인트 로테이션을 처리할 수 있는 방편입니다. 실제적으로는, 이펙터 위치를 주면 IK 솔루션에서 조인트의 최종 위치가 그 위치와 가급적 일치되는 로테이션 값을 구합니다. 이 방법은 울퉁불퉁한 땅이나 기타 상황에서의 캐릭터의 발이 제대로 놓일 수 있도록 하여, 월드에 재대로 반응하는 듯한 느낌을 내 줍니다. from: https://docs.unrealengine.com/4.27/ko/AnimatingObjects/SkeletalMeshAnimation/IKSetups/ IK 셋업 Inverse Kinematic 시스템으로 고르지 않은 지형에서의 발딛기같은..

1. Character Class Actor > Pawn > Character 단위로 상속받으며 인간(캐릭터)에게 유용한 기능들이 많이 있다. 왠만한 것들은 Pawn과 동일하다. ACharacter가 상속되어있다. 2. 기본 Component Capsule Component Mesh Component : 캐릭터의 메시 Arrow Component : 캐릭터의 전방 벡터를 가리키는 용도 Character Movement Component : 캐릭터 움직임에 관한 모든 것이 담겨져있음. 3. 캐릭터 움직이기 Pawn에서 했던 것처럼 마우스 X축 값에 따라 루트 컴포넌트(여기서는 Capsule Component)를 회전 시키면 캐릭터도 회전하기 때문에 사용하면 안된다. 여기서는 Spring Arm(Camera..

1. Camera & Spring Arm Camera는 우리가 늘 아는 카메라 Spring Arm은 카메라가 벽에 막힐 때 늘어났다 줄어들었다 하는 스프링 역할을 수행함. Unity에서는 Cinemachine에서 설정해야 했던 것을 여기서는 Component 하나로 해결 가능함. 1-1. 계층구조 Spring Arm > Camera 순으로 이루어져야 정상적으로 작동한다. 2. 추가하기 Bird.h #pragma once #include "CoreMinimal.h" #include "GameFramework/Pawn.h" #include "Bird.generated.h" class USpringArmComponent; class UCameraComponent; UCLASS() class SLASH_API ..

1. 입력 설정 Project Settings > Input > Axis Mappings 뒤로 가는 것은 앞으로 가는 것의 반대이기 때문에 -1값을 넣어줌 2. 입력값 받기 입력값은 Pawn 만들 때 추가된 SetupPlayerInputComponent 함수를 통해서 설정할 수 있다. void ABird::MoveForward(float Value) { if (Controller && Value != 0.f) { FVector Forward = GetActorForwardVector(); AddMovementInput(Forward, Value); } } void ABird::Turn(float Value) { AddControllerYawInput(Value); } void ABird::LookUp(f..
해당 문제는 언리얼이 아니라 C++ 문제이다. 1. 결과 // Bird.h #include "CoreMinimal.h" #include "GameFramework/Pawn.h" #include "Bird.generated.h" // Header로 추가하지 않고 선언만 함. class UCapsuleComponent; class USkeletalMeshComponent; class USpringArmComponent; class UCameraComponent; UPROPERTY(VisibleAnywhere) UCapsuleComponent *Capsule; UPROPERTY(VisibleAnywhere) USkeletalMeshComponent *BirdMesh; UPROPERTY(VisibleAnywhe..