[언리얼] 캐릭터 이동

gest·2025년 12월 20일

unreal

목록 보기
4/11

스켈레톤 매시 적용

스켈레톤 매시를 넣으면 적용된다.

잘 된다.


점프 콜리전

점프하면 같이 콜리전이 따라가려면 어떻게 해야할까?
점프 애니메이션 시퀸스에 루트 모션 활성화를 체크한다.


유니티에도 있는 내비메시

  • 가고싶은 범위에 포함하도록 하자
    - 대략 사이즈는 20 20 20으로 하면될거다

p를 누르면 영역을 확인할 수 있다.

회전
자연스러운 회전을 위한 세팅이다.

  • self BluePrint

만약 나를 바라보는 방향이 이상하면 BluePrint에서 앞으로 바라보게 직접 회전시켜야 한다

  • success는 추격에 성공했을때
  • on fail은 다시 추격해야 할때
  • target actor는 자신.
    - GetPlayerCharacter

만약 적이 공격할때마다 카메라가 가린다면?

  • BP의 Mesh 컴포넌트에서 설정하면 된다.


이후 코드에서 바라보면 생기는 이벤트를 적으면 된다.


캐스트

  • cast To BP_Third 캐릭터 관련된 블루포인터가 있나봄

  • 이러고 값을 set 하면 이용할 수 있다고 함

이후 set한 값을 이벤트 노드에서 getTargetCharacterMovement를 쓰면 바로 그 클래스를 사용가능

    • isFalling은 CharacterMovement 변수인듯

사람 감지

평상시에는 가만히 있고 플레이어를 본 순간 달려드는 기능을 만들데
나를 어떻게 인식할까?

먼저 BP에 PawnSensing컴포넌트를 추가한다
이후 설정을 건드리면 된다


공격

  • 공격 애니메이션에서 root motion를 true로 하면 이동하면서 안 때린다

공격 주는 함수

  • x는 곱하기
  • +는 더하기

그러면 무슨 디버깅 범위가 뜬다.

근데 빨간색이 뜨니 해결해야한다

일단 새로운 트레이스 채널을 만든다.

  • 반응은 Ignore.


Enemy의 Mesh에 새로 만든 플레이어 채널을 넣고

Player의 Mesh의 Collision에 Player를 Block으로 만들자

피격 모션

공격받으면 피격받는 함수를 구현할 거다.

  • 대략 맞은 오브젝트를 Hit이라고 하고 Character로 캐스팅해서 Launch Character 함수를 실행해서 피격 받는 함수를 구현했다.

무기 구현

무기를 구현할 것이다.

Enemy의 Mesh를 꺼낸다.

그러면 hand부분에 소켓추가를 해서 weapon을 추가하자

애니메이션을 직접 조작하면서 무기의 위치를 조정하는 것이 좋다.
그러나 추가를 해서 실행해도 무기는 없다.
무기도 직접 끼워줘야한다

끼우는 법

  • 이후 소켓과 매시를 추가하면 된다.

캐릭터 입출력

캐릭터를 입출력하는 기능을 알아볼 것이다.
shift키를 누르면 대쉬하는 기능을 구현해 볼 것이다

  • 입력 액션을 추가한다.

이후 입력 액션 컨트롤에서 어느 키를 받으면 대쉬할 것인지 적는다

플레이어 BP에 입력 함수를 추가하면 된다.

  • DoOnce
    - 한 번만 실행
  • Delay
    - x초만큼 딜레이

카메라 쉐이크

카메라가 흔들리는 기능
유저가 물리적 피해를 입은 경우 사용된다


BP의 class를 생성해서 LegacyCameraShake를 선택하자

값은 이렇게 설정했다.
특히 초기 오프셋을 Zero로 둔 이유는 간단한게 오히려 조잡하지 않은 거 같다.

BP_Enemy에서 피격된 함수 이후에 이런 형식으로 적으면 된다.
노란 선은 맞은 위치다.


자동 회전


플레이어 변경

링크

0개의 댓글