AI NPC의 애니메이션 세팅
1) 애니메이션 블루프린트
animgraph : state machine을 만들기 위한 그래프
event graph : 애니메이션에 관련된 블루프린트를 디자인하는 그래프
2) 플레이어 캐릭터 VS AI NPC 애니메이션 작동 메커니즘 비교
AI와 플레이어 캐릭터는 조종 주체가 플레이어냐, 인공지능(시스템) 자기 자신이냐가 핵심 차이점
1. 입력 방식의 차이
2. 애니메이션 전환 방식
AI NPC의 스테이트 머신 설계
1) AI 애니메이션 블루프린트 디자인
Event BlueprintInitializeAnimation 노드는 BeginPlay노드와 유사. 시뮬레이션이 시작되면 1회 호출된다.
해당 로직은 해당 애니메이션 블루프린트를 사용하는 클라이언트 액터(BP_FriendAI)의 Movement Component를 추출하여 변수화한다.
Event BlueprintUpdateAnimation 은 Tick Event와 유사.
Tick 단위별로 호출하며 레벨 내 클라이언트 BP가 존재하는지 확인하고, 액터의 이동속도 및 Run애니메이션 재생여부를 실시간으로 업데이트한다.
Attack, Death, Dance 애니메이션을 호출하는 로직.
Delay노드는 애니메이션의 Duration을 기준으로 설정. 애니메이션이 모두 종료된 후에는 그 다음 애니메이션으로 전환하는 로직의 추가가 필요
2) AI 애니메이션 스테이트머신 디자인
각 스테이트에 애니메이션을 연결하고 스테이트들의 전환 조건에 기존에 블루프린트에서 만든 bool 값들 설정한다.
위 결과를 확인하기 위해 레벨 블루프린트에 프로토타입용으로 개발하면
애니메이션 전환이 잘되는 것을 볼 수 있다.
AI NPC의 행동에 대응하는 SFX 세팅
1) AI NPC의 사운드 디자인
노티파이에서 play sound를 추가하면 사운드 재생이 가능해진다.
디테일에서 피치를 올리면 음정도 올라가지만 길이도 짧아진다
2) SFX의 Attenuation 세팅
사운드 어테뉴에이션(Attenuation)이란?
사운드 어테뉴에이션(감쇠)은 거리 등에 비례하여 소리의 크기가 달라지도록 디자인하는 기능이다. 현재 AI가 플레이어로부터 아무리 멀어져도 발소리는 바로 옆에 있는 것처럼 들리는데 이를 해결하는 기능이다.
ATT 모델 | 내용 | 필요상황 |
Linear | 거리에 따라 볼륨이 선형으로 감소. 정비례 감소 모델. | 소리가 균일하게 멀어질 때. |
Logarithmic | 빠르게 감소하다가 근원에서 멀어질수록 감소 속도가 줄어듦. | 더 현실감 있는 오디오 경험을 제공하고자 할 때, |
Inverse | 거리에 반비례하여 볼륨 감소. | 사운드가 넓게 퍼지는 효과를 모방할 때 사용. |
Log Reverse | 완만히 감소하다 특정 시점부터 급격히 감소함. | 사운드를 선명하게 유지하다가, 원거리에서 급격히 감소시키는 방식으로 제어할 때 유용. |
Natural Sound | 자연에서의 사운드 전파 방식을 최대한 모방한 모델. 로가리듬과 인버스의 중간 그래프. | 큰 공간에서의 오디오 디자인에 적합. 멀리서부터 가까워지거나 멀어지는 효과 연출시 유용. |
Custom | 사용자가 직접 감쇠 곡선을 디자인 할 수 있음. | 표준 모델로는 구현하기 어려운 사운드 효과를 만들어야 할 때. |
아래 공식 문서에서 더 자세하게 볼 수 있다.
ATT를 삽입하면 이제 거리에 따라 소리가 다르게 들리는 것을 볼 수 있다.
추가로 어테뉴에이션 값은 플레이 시 고정된다. 어테뉴에이션이 들리는 범위에 있다가 나가면 적용되지만, 처음부터 어테뉴에이션 범위 밖에서 시작하고 들어가면 아예 들리지 않는다. 이를 해결하려면 메타사운드를 사용하면 된다.
출처
'내일배움캠프 > TIL' 카테고리의 다른 글
[내일배움캠프 Day86] AI - 회피, 자동 네비게이션 링크 (0) | 2025.04.22 |
---|---|
[내일배움캠프 Day85] Unreal Engine AI 기초 (5) | 2025.04.21 |
[내일배움캠프 Day75] 1주차 멀티플레이 팀플 (0) | 2025.04.07 |
[내일배움캠프 Day59] 숫자 야구 게임 과제 (2) | 2025.03.14 |
[내일배움캠프 Day58] 채팅 따라하기 (0) | 2025.03.13 |