Animation Notifies
Editor Timeline에서의 생성 메뉴와 Bone Group drag-and-drop 연결 절차는 Manual: Animation Notify를 참조합니다.
기준: OverAnim
0.1.0 Beta· Unreal Engine5.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 = AnimNotifyState와 RequiredNotifyName이 대조하는 채널입니다. 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 Control은 GroupId를 사용합니다. Group 이름을 바꾸어도 Notify의 ID 대상은 바뀌지 않으며, ID가 삭제·재생성되면 Notify 배열을 다시 맞춰야 합니다.