https://3dmpengines.tistory.com/2091

 

'언리얼 엔진 > 정보' 카테고리의 다른 글

파생 데이터 캐시 경로(DDC) 바꾸기  (0) 2022.10.13
Mixamo의 루트모션 애니메이션 사용  (0) 2022.10.12
FTimerDelegate에 관련된 내용  (0) 2022.10.11
ApplyDamage, TakeDamage  (0) 2022.10.11
Actor, Pawn, Character  (0) 2022.10.04

CreateSP, CreateRaw, CreateUObject에 대한 내용

https://forums.unrealengine.com/t/delegate-createsp-createraw-createuobject-when-to-use-them/23822/4

 

 

  • 전역 C++ 함수 : BindStatic API를 사용해 등록
  • 전역 C++ 람다 함수 : BindLambda API를 사용해 등록
  • C++클래스 멤버 함수 : BindRaw  API를 사용해 등록
  • 공유포인터 클래스의 멤버 함수 (쓰레드 미지원) : BindSP API를 사용해 등록 
  • 공유포인터 클래스의 멤버 함수 (쓰레드 지원) : BindThreadSafeSP API를 사용해 등록
  • UFUNCTION 멤버 함수 : BindUFunction API를 사용해 등록
  • 언리얼 오브젝트의 멤버함수 : BindUObject API를 사용해 등록

'언리얼 엔진 > 정보' 카테고리의 다른 글

Mixamo의 루트모션 애니메이션 사용  (0) 2022.10.12
커스텀 CharacterMovement  (0) 2022.10.12
ApplyDamage, TakeDamage  (0) 2022.10.11
Actor, Pawn, Character  (0) 2022.10.04
[UE5] 포스트 프로세싱  (0) 2022.10.01
float UGameplayStatics::ApplyDamage(
    AActor* DamagedActor, // 피해를 입은 대상
    float BaseDamage, // 피해량
    AController* EventInstigator, // 피해를 입힌 대상
    AActor* DamageCauser, // 피해를 준 액터 (수류탄, 칼 등등)
    TSubclassOf<UDamageType> DamageTypeClass) // 피해의 종류 (범위공격, 헤드샷 등)

 

ApplyDamage 호출 시, DamagedActor의 TakeDamage가 호출이 된다.

 

 

ApplyDamage 호출 시 OnTakeAnyDamage에 등록된 메소드가 호출된다.

 

TakeDamage 함수는 오버라이딩이 가능하므로 여러가지 커스텀 대미지 이벤트를 사용할 수 있을것이다.

 

Any, Point, Radial 3가지 타입이 있는데 3브랜치가 아닌 Point, Radial 브랜치를 수행해서 데미지를 계산한 다음 Any를 처리하는 방식이다.

예를 들어 Point 타입인 경우 헤드샷이면 데미지의 배율을 2배로 늘리고 Any를 수행한다거나 Radial 타입인 경우 범위 거리에 따른 데미지 편차를 계산 후 Any를 수행하는 방식이다.

 

 

http://egloos.zum.com/ldw9981/v/4163717

https://3dmpengines.tistory.com/1579

https://www.unrealengine.com/ko/blog/damage-in-ue4

 

'언리얼 엔진 > 정보' 카테고리의 다른 글

커스텀 CharacterMovement  (0) 2022.10.12
FTimerDelegate에 관련된 내용  (0) 2022.10.11
Actor, Pawn, Character  (0) 2022.10.04
[UE5] 포스트 프로세싱  (0) 2022.10.01
[UE5] 루멘  (0) 2022.09.29

공부하며 적는 내용이기 때문에 정확하지 않을 수 있다.

 

 

언리얼은 Actor -> Pawn -> Character의 상속 구조를 가지고 있다.

Actor부터 월드에 배치될 수 있고 Pawn부터 제어가 가능해진다.

Actor를 상속받고 확장해서 제어할 수 있게 된것이 Pawn이라고 보면 될 것이다.

 

폰의 이동은 MovementComponent, 제어는 Controller에 의해 이뤄진다.

컨트롤러가 폰에 빙의해서 제어하는 방식이다.

플레이어가 폰을 제어할 때 PlayerController를 사용하고 AI가 폰을 제어할 때는 AIController를 사용하면 된다.

Controller는 따로 설정하지 않으면 게임모드에 의해 기본 컨트롤러(PlayerController)가 설정된다.

MovementComponent는 따로 추가해주지 않으면 컴포넌트가 붙지 않는다.

Pawn에서 MovementComponent를 반환받을 수 있는 GetMovementComponent가 구현되어 있지만 해당 컴포넌트를 폰에서 관리하고 있지 않기 때문에 AddMovementInput등의 기능이 작동하지 않는다.

 

만약 MovementComponent를 붙여준다면 MovementComponent::UpdatedComponent = RootComponent 를 반드시 추가해서 RootComponent에 접근할 수 있게 해야한다.

 

 

Character는 Pawn을 확장한것인데 조금 더 복잡한 행동이나 애니메이션을 처리하는것이 추가되었다.

CharacterMovementComponent가 기본적으로 포함되어있다.

 

// Character 코드 일부

TObjectPtr<UCharacterMovementComponent> CharacterMovement;

Character::Character()
{
    CharacterMovement = CreateDefaultSubobject<UCharacterMovementComponent>(ACharacter::CharacterMovementComponentName);
    if (CharacterMovement)
    {
        CharacterMovement->UpdatedComponent = CapsuleComponent;
    }
}

 

Pawn에는 없는 내용이 Character에는 기본적으로 포함이 되어 있는 것을 확인할 수 있다.

위에서 언급한대로 CharacterMovement가 CapsuleComponent(=RootComponent)를 관리하도록 설정한다.

 

걷기 최대속도, 가속도, 점프 등 이동에 관련된 다양한 내용과 애니메이션에 관한 내용들이 추가로 구현이 되어있다.

추가로 액터와 폰에는 기본적으로 메시가 존재하지 않지만 캐릭터는 스켈레탈 메시가 붙어있다.

'언리얼 엔진 > 정보' 카테고리의 다른 글

FTimerDelegate에 관련된 내용  (0) 2022.10.11
ApplyDamage, TakeDamage  (0) 2022.10.11
[UE5] 포스트 프로세싱  (0) 2022.10.01
[UE5] 루멘  (0) 2022.09.29
언리얼 베테랑의 100가지 팁과 트릭 정리  (0) 2022.09.29

루멘과 포스트 프로세스 볼륨에 대한 내용만 짧막하게 정리. 흥미로운 내용이 많기때문에 관련 내용은 계속 추가할 예정

 

포스트 프로세스 볼륨은 프로젝트 설정의 값들을 오버라이드 할 수 있다.

 

인간의 시각 적응(Exposure)이 적용되어 있기 때문에 어두운 곳에서 밝은곳을 바라보면 점차 밝아지게 된다.

Exposure의 값을 변경하면 오버라이딩 되기 때문에 특정 구역 또는 전체 구역의 시각 적응을 없애거나 보완할 수 있다.

 

https://docs.unrealengine.com/5.0/ko/post-process-effects-in-unreal-engine/

 

'언리얼 엔진 > 정보' 카테고리의 다른 글

ApplyDamage, TakeDamage  (0) 2022.10.11
Actor, Pawn, Character  (0) 2022.10.04
[UE5] 루멘  (0) 2022.09.29
언리얼 베테랑의 100가지 팁과 트릭 정리  (0) 2022.09.29
개발에 필요할 것 같은 정보들  (0) 2022.09.14

+ Recent posts