Unreal Engine 4 개발 - TopDownCharacter C++ 해석

2021. 7. 18. 20:20·Unreal Engine 4/Unreal Engine 4 개발일지
반응형

project.h 

- DECLARE_LOG_CATEGORY_EXTERN을 이용하여 로그 표시 선언

 

character.h

- UCLASS(Blueprintable)을 위에 선언함으로써 blueprint에서 접근할 수 있게 선언

public:

- FORCEINLINE 코드를 사용해서 inline효과를 부여

- private에 있는 변수를 return 시킴

- tick 이벤트를 virtual 하여 override

private:

- UPROPERTY(VisibleAnywhere, BlueprintReadOnly,Category=Camera,meta=(AllowPrivateAccess="true"))로 통일

(모두 카메라에 담기기 때문에 Category 통일 meta를 이용해 private에 접근 허용

UCameraComponent = 카메라

USprintArmCompoent = 스프링암 

UDecalComponent = 커서

 

character.cpp

생성자:

- GetCapsuleComponent()->InitCapsuleSize(Rad,Height)를 이용해 초기 캡슐 크기 조정

- bUseControllerRotationPitch, bUseControllerRotationYaw, bUseControllerRotationRoll을 false처리함으로

캐릭터가 카메라 방향으로 회전하는 것을 막는다.

- character movment를 가져와서 적용 (캐릭터 움직임)

GetCharacterMovement()->bOrientRotationToMovement = true 캐릭터가 이동방향으로 회전

GetCharacterMovement()->RotationRate=FRotator(0.f,640.f,0.f); 회전 속도 결정

GetCharacterMovement()->bConstrainToPlane = true 바닥에서만 허용

GetCharacterMovement()->bSnapToPlaneAtStart = true; 

 

카메라 spring arm:

CreateDefaultSuboject<USpringArmComponent)를 이용해 springarm 생성

SetupAttachment(RootComponent)를 이용하여 RootComponent에 장착

SetUsingAbsoluteRotation(true) 캐릭터가 행동할 시 springarm 회전 방지

TargetArmLength 길이 조절

SetRelativeRotation(FRotator(x,y,z)) 카메라 머리 방향 조절

bDoCollisionTest = false 카메라가 레벨에 충돌해 밀림 방지

 

카메라:

createDefaultSubobject<UCameraComponent>를 이용해 카메라 소환

SetupAttachment로 springarm에 결합

bUsePawnControlRotation = false 로 arm이 돌아감에따라 카메라 돌기 방지

 

커서:

CreateDefaultSubobject<UDecalComponent>를 이용하여 커서 소환

SetupAttachment(RootComponent>를 이용하여 RootComponent에 장착

static ConstructorHelpers::FObjectFinder<UMatherial> DecalMaterialAsset(TEXT("위치"));

로 DecalMaterialAsset이라는 변수에 커서 material을 설치

if문을 이용하여 DecalmaterialAsset.Suceeded()가 true인지 false인지 확인(성공한 경우 처리)

DecalSize=FVector(x,y,z)를 이용해 사이즈 조절

SetRelativeRotation(FRotator(x,y,z).Quaternion())을 이용하여 방향 조절

 

tick:

Super::Tick(DeltaSeconds);

if를 이용하여 커서를 정상적으로 가리키는지 확인 CursorToWorld!=nullptr

FHitResult로 TraceHitResult 변수 선언

Controller에서 GetHitResultUnderCursor(ECC_Visiblility, true, TraceHitResult);

FVector를 이용하여 TraceHitResult(Hit 결과 저장된 변수).ImpactNormal 지정 위치에 impact 소환

FRotator를 이용하여 위 impact의 방향 조절

커서변수->SetWorldLocation(TraceHitResult.Location); 커서 위치

커서변수->SetWorldRotation(커서방향변수) 커서 방향 조절

 

마우스를 이용한 콜리젼 실행!!

 변수:

  FHitResult Hit결과 저장 변수

  bool const Hit 여부 저장 변수

 콜리젼 실행

  Hit여부 저장 변수 = 플레이어 컨트롤러->

GetHitResultUnderCursorByChannel(UEngineTypes::ConvertToTraceType

(콜리젼 체널 종류(ECC_Visibllity), TraceComplex여부(bool),Hit결과 저장변수));

반응형
저작자표시 (새창열림)

'Unreal Engine 4 > Unreal Engine 4 개발일지' 카테고리의 다른 글

2022/03/14 강남스퀘어 캐릭터 백업본  (1) 2022.03.14
Unreal Engine 4 개발 - TopDownCharacter C++ 해석 2  (0) 2021.07.22
Unreal Engine 4 개발 C++ 계획표 21.07.10  (0) 2021.07.10
Unreal Engine 4 개발일지 5일차 스킬에 대한 알고리즘 작성  (0) 2021.05.24
Unreal Engine 4 개발일지 4일차 베이스 제작 이후의 기획  (0) 2021.05.18
'Unreal Engine 4/Unreal Engine 4 개발일지' 카테고리의 다른 글
  • 2022/03/14 강남스퀘어 캐릭터 백업본
  • Unreal Engine 4 개발 - TopDownCharacter C++ 해석 2
  • Unreal Engine 4 개발 C++ 계획표 21.07.10
  • Unreal Engine 4 개발일지 5일차 스킬에 대한 알고리즘 작성
숯불돼지왕갈비
숯불돼지왕갈비
  • 숯불돼지왕갈비
    게임 개발 공부기
    숯불돼지왕갈비
  • 전체
    오늘
    어제
    • 분류 전체보기 (303)
      • 학교수업 (165)
      • 취업강의 (6)
      • C++ (46)
        • 코딩 테스트 (4)
      • Unreal Engine 5 (25)
        • MMORPG 개발 (25)
      • Unreal Engine 4 (44)
        • Omak Project (3)
        • Unreal Engine 4 개발일지 (9)
        • Unreal Engine 4 (32)
      • Unity (1)
        • 개발 일지 (1)
      • 수학 (3)
        • 소프트웨어 공학용 수학 (3)
      • DirectX 11 (4)
      • 게임 디자인 패턴 (2)
      • 포트폴리오 (1)
      • 자격증 (1)
        • 정보처리기사 (0)
        • SQLD (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
숯불돼지왕갈비
Unreal Engine 4 개발 - TopDownCharacter C++ 해석
상단으로

티스토리툴바