25.02.04 TIL

gksrudtlr
|2025. 2. 3. 23:21

AnimBlueprint 애니메이션 색이 다른 이유


  • 녹색
    • 일반적인 시퀀스 노드
    • 기본적인 애니메이션을 재생할 때 수행
  • 주황색
    • 애디티브 애니메이션 시퀀스
    • 기존 애니메이션에서 추가적으로 적용되는 보조 애니메이션
    • 주로 기본 동작을 추가적인 움직임을 더할 때 사용

변경 방법


  • 애니메이션의 Additive Settings에서 Addtive Anim Type을 변경하면 된다
  • 그래서 Jump_From_Land 애니메이션을 Local Space로, Base Pose Type을 Frame from this animation으로, Ref  frame Index는 애니메이션의 가장 마지막 프레임으로 변경해준다

Additive Settings


  • Additive Anim Type
    • No Additive
      • 기본 설정 값으로 일반적인 애니메이션 재생 방식
      • 다른 애니메이션에 추가되지 않도록 독립적으로 재생
    • Local Space
      • 각 본의 로컬 위치와 회전을 기준으로 적용
      • 부드럽고 자연스러운 결과를 얻을 수 있어 일반적인 동작에 적합
      • 손을 들어 올리거나 고개를 끄덕이는 등 부분적인 움직임에 사용
    • Mesh Space
      • 캐릭터의 전체 메시를 기준으로 월드 좌표계에서 적용
      • 캐릭터의 전체적인 구조에 영향을 미치는 애니메이션에 적용
      • 특정 상황에서 더 일관된 결과를 얻을 수 있음
  • Base Pose Type
    • 애니메이션의 기준이 되는 포즈를 설정하는 옵션
    • None
      • 기본 값, 애디티브 효과가 적용되지 않음
      • 일반적인 애니메이션 시퀀스로 사용됨
    • Selected Animation
      • 특정 애니메이션을 베이스 포즈로 지정
      • Reference Pose Animation 필드에서 원하는 애니메이션을 직접 선택할 수 있음
      • 특정 래퍼런스나 동작을 기준으로 삼고 싶을 때 사용
    • Reference Pose
      • 스켈레톤의 기본 레퍼런스 포즈를 사용
      • T-Pose, A-Pose와 같은 기본 포즈를 기준으로 함
      • 가장 기본적이고 단순한 형태의 베이스 포즈
    • First  Frame
      • 현재 애니메이션의 첫 번째 프레임을 베이스 포즈로 사용
      • 애니메이션의 시작 자세를 기준으로 삼음
    • 고려사항
      • 주의점
        • 추가하려는 동작과 관련성이 높은 것을 선택해야 함
        • 너무 극단적인 포즈는 피해야함
        • 자연스러운 전환을 위해 시작 포즈와 유사한 베이스 포즈를 선택하는 것이 좋음
      • 적용 효과
        • 베이스 포즈와 현재 애니메이션의 차이가 델타값으로 계산됨
        • 이 델타값이 다른 애니메이션에 추가되어 최종 결과가 만들어
    • Ref Frame Index
      • 애니메이션의 참조 프레임을 지정하는 설정

Apply Additive


  • 기본 애니메이션에 적용하는데 사용되는 노드
  • 블렌딩 효과
    • Alpah값이 0이면 기본 애니메이션만 표시
    • Alpah값이 1이면 애디티브 효과가 100% 적용
    • Alpah를 조절하여 두 애니메이션의 자연스러운 블랜딩 가능
  • 녹색 노드
    • 사용하지 않으면 두 애니메이션들이 충돌하여 의도하지 않은 움직임이 발생
  • 주황노드
    • 기존 애니메이션에 추가되는 방식으로 작동하기 때문에 사용하게 되면 적절하지 않은 블렌딩이 될 가능성이 있음

 

ECollisionChannel


  • ECollisionChannel이란?
    • 언리얼 엔진의 Collision Channel을 정의하는 열거형
    • 충돌 및 트레이스 시스템에서 오브젝트 간의 충돌 유형을 구분하는데 사용
    • Collision Query(충돌 감지)와 Trace Queries(트레이스 검사)에서 특정 대상과의 충돌 동작을 설정하고 필터링 할 수 있도록 함
  • 역할
    • 충돌 채널 분류
      • 게임내 오브젝트들이 어떤 방식으로 충돌하거나 상호작용할지 채널별로 정의
      • EX) 캐릭터와 벽은 충돌하지만, 캐릭터와 장식용 오브젝트는 충돌하지 않도록 설절
    • 충돌 필터링
      • 특정 채널만 충돌을 감지하도록 설정하거나 무시할 수 있음
      • Line Trace, Sphere Trace등과 같은 충돌 검사에서 주로 사용
    • 충돌 반응 설정
      • 각 채널에 대해 Block(막음), Overlap(겹침), Ignore(무시) 반응을 설정하여 오브젝트 간 충돌 동작을 제어
  • 기본 값
ECollision Channel 값 설명
ECC_WorldStatic 고정된 월드 오브젝트(벽, 지형 등)와의 충돌 처리
ECC_WorldDinmic 움직이는 월드 오브젝트(문, 엘리베이터 등)와의 충돌 처리
ECC_Pawn  캐릭터와의 충돌 처리 
ECC_PhysicsBody  물리 시뮬레이션이 활성화된 오브젝트와의 충돌 처리 
ECC_Vehicle  차량과 충돌 처리 
ECC_Destrictible  파괴 가능한 오브젝트와의 충돌 처리
ECC_Visibility 시각적 충돌(주로 Line Trace에 사용)
ECC_Camera 카메라와의 충돌 처리
ECC_GameTraceChannel1~18 '사용자 정의 채널을 위한 공간
    • 장단점
      • 장점
        • 유연성 : 다양한 충돌 채널을 통해 복잡한 상호작용 설정 가능
        • 최적화 : 필요하지 않은 채널을 무시하여 충돌 검사 비용 감소
        • 사용자 정의 가능 : 고유한 채널을 생성해 특정 요구사항 처리
      • 단점
        • 복잡성 증가 : 많은 채널을 관리해야 하는 대규모 프로젝트에서는 설정이 복잡해질 수 있음
        • 충돌 문제 디버깅 : 잘못된 충돌 반응 설정으로 인해 예기치 않은 동작 발생

 

Collision Channel


방식 사용 대상 설정 방식 주요 특징 사용 예시
ByChannel(채널 기반 충돌) Collision Channel  ECC_Visibility 등 특정 채널과만 충돌 감지 LineTraceByChannel(ECC_Pawn)
ByProfile(충돌 프로필 기반 충돌) Collision Preset(Profile) "Pawn", "BlockAll" 미리 설정된 충돌 규칙 사용 LineTraceByProfile("BlockAll")
ByObject(오브젝트 타입 기반 충돌) Object Type ECC_PhysicsBody 특정 Object Type과 충돌 LineTraceByobjectType(ECC_Pawn)
  • 사용 예시
상황 추천 방식
특정 채널과 충돌 감지 필요 ByChannel
미리 설정된 충돌 규칙 사용 ByProfile
특정 오브젝트 타입과만 충돌 ByObject
벽, 바닥 같은 특정 환경과만 충돌 ByChannel(ECC_WorldStatic)
물리 오브젝트만 감지하고 싶음 ByObject(ECC_PhysicsBody)
플레이어 캐릭터만 감지하고 싶음 ByProfile("Pawn")

Collision Query VS Physics Collision


충돌 설명
Query 레이 트레이스(Line Trace, Sweep, Overlap)등을 통해 충돌 감지
Physics Collision 물리적으로 두 오브젝트가 부딪히는 충돌
 

'TIL' 카테고리의 다른 글

25.02.07 TIL  (0) 2025.02.07
25.02.04TIL  (0) 2025.02.04
25.01.21 TIL  (0) 2025.01.21
25.01.20 TIL  (0) 2025.01.20
2025.01.09 TIL  (0) 2025.01.10