콘텐츠로 이동

Animation Notifies

Editor Timeline에서의 생성 메뉴와 Bone Group drag-and-drop 연결 절차는 Manual: Animation Notify를 참조합니다.

기준: OverAnim 0.1.0 Beta · Unreal Engine 5.8
헤더: OverAnimation/Runtime/AnimNotify_OverAnimSignal.h, OverAnimation/Runtime/AnimNotify_OverAnimMotionPhaseMarker.h, OverAnimation/Runtime/AnimNotifyState_OverAnimActivationWindow.h, OverAnimation/Runtime/AnimNotifyState_OverAnimBoneGroupControl.h

OverAnim은 Animation Timeline에서 네 가지 Notify class를 공개합니다. Notify는 target asset과 일치하는 Owner의 OverAnim runtime에만 전달됩니다. 내부 instance manager 및 editor preview helper는 지원 API 범위가 아닙니다.

UAnimNotify_OverAnimSignal

항목
Unreal 표시명 OverAnim Signal
C++ 클래스 UAnimNotify_OverAnimSignal
실행 Notify가 놓인 frame에 Signal을 한 번 제출합니다.
Details UI 이름 C++ 속성명 기본값 · 범위 영향 · 표시 조건
Target Deformer Asset TargetDeformerAsset None Notify가 전달할 UOverAnimMeshDeformer입니다. 비어 있으면 Signal을 보낼 수 없습니다.
Signal Protocol SignalProtocol AttackSwing FOverAnimSignalProtocolSettings의 channel을 Signal 이름으로 해석합니다. Custom일 때만 아래 이름을 사용합니다.
Signal Name SignalName None SignalProtocol == Custom일 때만 표시됩니다. None이면 유효한 route가 없습니다.
Magnitude Magnitude 1, 0+ 생성 Signal의 magnitude입니다.
Direction Source DirectionSource OwnerForward Owner/world axis 기반 world-space direction을 생성합니다. EOverAnimSignalDirectionSource를 참조합니다.
Origin Socket Name OriginSocketName None Socket이 있으면 Signal origin을 그 위치로 사용합니다. 없거나 해석되지 않으면 component/owner origin으로 fallback합니다.
Source Region Name SourceRegionName None Rule의 SourceRegionFilter와 대조하는 선택 source region입니다.

Notify는 Source = AnimNotify, Lifecycle = Pulse로 Signal을 생성합니다. target asset, resolved Signal 이름, component/runtime, route 조건 중 하나라도 유효하지 않으면 response가 생기지 않습니다.

UAnimNotify_OverAnimMotionPhaseMarker

항목
Unreal 표시명 OverAnim Motion Stage Marker
C++ 클래스 UAnimNotify_OverAnimMotionPhaseMarker
실행 Notify가 놓인 frame에 authored automatic stage timing을 제출합니다.
Details UI 이름 C++ 속성명 기본값 · 범위 영향 · 표시 조건
Target Deformer Asset TargetDeformerAsset None Marker를 전달할 UOverAnimMeshDeformer입니다. 비어 있거나 component의 asset과 다르면 적용되지 않습니다.
Source Region Name SourceRegionName None authored timing을 적용할 Region 이름입니다. Bone Group GUID가 아니라 GroupName을 사용합니다.
Stage Stage Action 제출할 EOverAnimMotionPhase 값입니다.
Stage Progress StageProgress 1.0, 0..1 현재 Stage 내부 progress입니다. 1은 Action Peak marker로 사용합니다. 연속 buildup이 필요하면 Bone Group의 Authored Stage Curve를 사용합니다.

동일 Region에 Authored Stage Curve가 있으면 curve가 Marker보다 우선합니다. Marker는 일반 Animation Editor의 Notify 추가 메뉴에서 생성할 수 있지만 현재 OverAnim Asset Editor의 전용 Timeline 우클릭 메뉴에는 별도 Add Motion Stage Marker 명령이 없습니다.

UAnimNotifyState_OverAnimActivationWindow

항목
Unreal 표시명 OverAnim Activation Window
C++ 클래스 UAnimNotifyState_OverAnimActivationWindow
실행 NotifyBegin에서 Activation Channel을 열고 NotifyEnd에서 닫습니다.
Details UI 이름 C++ 속성명 기본값 영향
Target Deformer Asset TargetDeformerAsset None 활성화 창을 적용할 에셋입니다. 비어 있으면 해당 runtime을 찾지 못합니다.
Activation Channel ActivationChannel None Response Rule의 ActivationPolicy = AnimNotifyStateRequiredNotifyName이 대조하는 채널입니다. None은 이름 필터를 만족하지 않습니다.

이 Notify State는 signal을 직접 만들지 않습니다. 활성 창이 열려 있어도 Rule의 Signal 이름, module 지원 범위, response timing 조건은 별도로 일치해야 합니다.

UAnimNotifyState_OverAnimBoneGroupControl

항목
Unreal 표시명 OverAnim Bone Group Control
C++ 클래스 UAnimNotifyState_OverAnimBoneGroupControl
실행 Begin/Tick/End 구간 동안 지정 Bone Group의 activation weight를 제어합니다.
Details UI 이름 C++ 속성명 기본값 · 범위 영향
Target Deformer Asset TargetDeformerAsset None 제어할 에셋입니다.
Bone Group Ids BoneGroupIds 빈 배열 대상은 GroupName이 아닌 FOverAnimBoneGroupDesc::GroupId (FGuid)입니다. 없는 GUID는 activation 대상이 되지 않습니다.
Fade In Time FadeInTime 0 s, 0+ Begin 이후 activation weight가 올라가는 시간입니다.
Fade Out Time FadeOutTime 0 s, 0+ End 이후 activation weight가 내려가는 시간입니다.

이름과 GUID의 분리

Response Rule은 Bone Group의 GroupName을 사용하지만, OverAnim Bone Group ControlGroupId를 사용합니다. Group 이름을 바꾸어도 Notify의 ID 대상은 바뀌지 않으며, ID가 삭제·재생성되면 Notify 배열을 다시 맞춰야 합니다.