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
- 캐릭터의 전체 메시를 기준으로 월드 좌표계에서 적용
- 캐릭터의 전체적인 구조에 영향을 미치는 애니메이션에 적용
- 특정 상황에서 더 일관된 결과를 얻을 수 있음
- No Additive
- 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 |