[UE5] SimpleShooter-3

칼든개구리·2024년 12월 17일
0

[언리얼TO리얼]

목록 보기
31/42

3인칭 카메라

현재 프로젝트에 있는 BP_ShooterCharacter에 단순히 카메라만 추가해보겠다.

그러면 단순히 보인다. 카메라 사용을 훨씬 개선해주는 스프링암을 달아줘야 한다. 그전에 회전도 자연스럽지 않기 때문에 카메라 컴포넌트로가서 회전 문제를 해결하고자 한다!

여기서 폰 제어 회전 사용을 누르게 되면 회전 제어를 이용하여 카메라를 회전시키게 된다.

실행시켜보면 회전이 되긴 하는데, 카메라 주위로만 회전을 한다. 해결을 위해 캡슐 컴포넌트를 누르고 스프링 암을 검색해 추가해준다. 이후 카메라를 스프링 암의 자식이 되게 설정해준다

수정을 위해 아까 카메라에 체크 해준 폰 제어 회전 사용을 언체크 하고, 스프링 암에서 그 부분을 다시 체크 해준다. 그러면 원하는 대로 움직인다. 벽에 부딪혀도 카메라가 밖으로 나가지도 않으며 꽤 잘 동작한다(Spring Arm의 기능)

재미있는 점을 찾았다. 우리가 스프링 암을 회전 시키고자 회전을 하면 회전이 일어나지 않으며 오프셋을 사용해 그 카메라를 이동시켜야 한다



카메라 암에 오프셋을 설정해 조금 오른쪽에 오도록 조정하고, 벽에 부딪힐때 카메라가 밖으로 안나가고 플레이어에 부딪히는 것을 볼 수 있었다.


Skeletons

스켈레톤 애셋의 기본 기능은 매시와 애니메이션을 연결하는 기능이다. 모두 언리얼의 동일한 스켈레톤 에셋을 쓰는 다수의 메시가 있을 수 있고, 동일한 스켈레톤을 사용하는 다수의 애니메이션을 설정할 수 있다. 그래서 우리는 매시들 간에 애니메이션 에셋을 공유할 수 있다.

유니티 공부할 때도 애니메이션이랑 리깅, 이런게 어려웠던 나라서 스켈레탈 메시와 애니메이션에 대해서 간단하게 찾아보았다.


✍스켈레탈 메시와 애니메이션

💀스켈레탈 메시(Skeletal Mesh)

  • 정의: 스켈레탈 메시는 뼈대(스켈레톤, Skeleton)와 이를 감싸는 메쉬(표면)를 포함하는 3D모델이다. 캐릭터나 움직이는 객체를 만드는데 사용된다.
  • 구성 요소
    -스켈레톤: 메쉬에 움직임을 부여하는 뼈대 구조입니다. 캐릭터의 골격 역할을 하며, 각 뼈는 다른 뼈에 연결된다.
    -메쉬: 스켈레톤 위에 입혀진 3D 표면 모델입니다. 예를 들어 캐릭터의 피부나 옷이 메쉬에 해당한다.
    -바인딩: 각 뼈는 메쉬의 특정 부분과 연결되며 뼈가 움직이면 그에 따라 메쉬도 함께 변형된다.
  • 특징
    -리깅: 모델링 소프트웨어(Maya, Blender)를 통해 스켈레톤과 메쉬를 연결하는 과정

🎧애니메이션

  • 정의: 애니메이션은 시간에 따라 스켈레톤의 뼈를 움직이게 하여 메쉬를 변형시키는 과정이다. 이로 인해 캐릭터가 뛰거나 걷는 것 같은 동작을 표현할 수 있다.
  • 유형
    -키 프레임 애니메이션: 특정 시간 프레임에 뼈의 위치와 회전을 설정하여 애니메이션을 만드는 방식
    -모션 캡쳐: 실제 사람의 동작을 센서로 기록하여 스켈레톤 애니메이션에 적용하는 기술
    • 애니메이션 블루프린트: 언리얼 엔진에서 스켈레탈 메시에 애니메이션을 적용하거나 동작에 따라 애니메이션을 제어하는 시각적 스크립팅 시스템
  • 애니메이션 자산
    -애님 시퀀스: 특정 동작이 지정된 애니메이션 데이터
    -애님 몽타주: 여러 애니메이션을 하나로 결합하여 특정 조건에서 재생할 수 있다. 예를 들어 공격 콤보 같은 것을 표현한다
    -애니메이션 커브: 시간에 따라 뼈 또는 변수의 값을 변경하여 동작을 미세하게 조정한다.

🧐스켈레탈 메시와 애니메이션의 결합
언리얼 엔진에서는 스켈레탈 메시와 애니메이션 기술을 다음과 같은 기술로 사용한다

  • 애니메이션 블루프린트
    -스켈레탈 메시에 애니메이션을 적용하고 제어하는 시스템
    -상태 머신: 캐릭터의 상태에 따라 애니메이션을 전환하는 논리를 설정
    -애님 그래프: 블랜딩, 트랜지션을 통해 애니메이션이 자연스럽게 연결되도록 설정
  • 리타겟팅
    -스켈레톤이 다른 캐릭터 모델에서도 동일한 애니메이션을 사용할 수 있도록 조정하는 기술
    -예: 키가 다른 캐릭터라도 동일한 걷기 애니메이션을 적용할 수 있음.
  • IK
    -목표 지점에 따라 스켈레톤의 뼈를 자동으로 계산해 움직이는 기술
    -예: 캐릭터의 발이 지형에 맞춰 자연스럽게 놓이는 효과

등등등.. 존재한다


다운 받아둔 에셋에서 애니메이션을 찾아 BP_ShooterCharacter에 적용시켜보았다


BP_ShooterCharacter을 연 뒤 애니메이션 모드를 Use Animation Asset을 선택하고 플레이할 애님에 적용할 Ability_RMB_WALK_FWD를 선택해주면 이제 플레이어가 앞으로 걷는 듯 한 모습을 볼 수 있다.

애니메이션은 그대로 두고 스켈레탈 메시를 다른 것을 바꿔도 애니메이션은 멈추지 않는다
왜?.? 스켈레톤이 같기 때문에 서로 호환된다!


📒TIL: 언리얼 엔진 - 스켈레탈 메시와 애니메이션, 3인칭 카메라 설정

  1. 3인칭 카메라 설정
  • 스프링 암(Spring Arm) 컴포넌트를 사용해 카메라 충돌 방지 및 자연스러운 움직임 구현.

  • 설정 과정

    	1. 카메라를 스프링 암의 자식으로 설정.
    
    	2. 카메라 컴포넌트의 **"폰 제어 회전 사용"**은 꺼두고, 스프링 암에서 이를 활성화.
    
    	3.위치 오프셋을 사용해 카메라 위치 미세 조정.
  • 결과: 벽과의 충돌 시 카메라가 캐릭터에 자연스럽게 가까워지는 효과.

  1. 스켈레탈 메시와 애니메이션

스켈레탈 메시

  • 정의: 뼈대(스켈레톤)와 메쉬(표면)로 구성된 3D 모델.

  • 핵심 개념: 스켈레톤이 움직이면 메쉬도 함께 변형되며, 리깅을 통해 연결됨.

애니메이션

  • 정의: 스켈레톤의 뼈를 움직여 캐릭터에 동작을 부여.

  • 핵심 유형

    	1. 애니메이션 블루프린트: 상태 머신을 통해 동작 전환.
    
    	2. 애님 시퀀스: 개별 애니메이션 데이터.
    
    	3. 리타겟팅: 스켈레톤을 공유해 애니메이션을 다른 캐릭터에 적용.

애니메이션 적용

  1. 애니메이션 모드를 Use Animation Asset로 설정.

  2. 애님 시퀀스를 선택해 캐릭터에 적용.

  3. 동일한 스켈레톤을 사용하면 다른 스켈레탈 메쉬에서도 애니메이션이 호환됨.


핵심 요약

3인칭 카메라: 스프링 암으로 충돌 방지 및 자연스러운 카메라 제어.

스켈레탈 메시: 스켈레톤과 메쉬로 구성된 캐릭터 모델.

애니메이션: 블루프린트와 상태 머신을 통해 동작 제어 및 리타겟팅 가능.

애니메이션 적용: 동일한 스켈레톤을 사용하면 애니메이션을 다른 메쉬에서도 재사용 가능.

profile
메타쏭이

0개의 댓글