Camera · Time Types
기준: OverAnim 0.1.0 Beta · Unreal Engine 5.8
헤더: OverAnimation/Runtime/OverAnimComponent.h
이 페이지는 UOverAnimComponent가 사용하는 Camera Safety, Camera Readability, slow-motion, pause의 공개 Enum과 설정 구조체입니다. Blueprint 노드의 입력·반환·상태 변화는 UOverAnimComponent에서 확인합니다.
Time · camera Enum
| Enum |
값 |
의미 |
EOverAnimTimeDilationPolicy |
FollowGameTime |
dilated game delta로 simulation합니다. animation/slow motion과 동기화됩니다. |
|
IgnoreTimeDilation |
world/owner time dilation을 제거한 real-time timing을 사용합니다. motion measurement는 game-time 입력입니다. |
|
DisableDuringSlowMotion |
effective time scale이 threshold 미만일 때 source pose로 돌아가고 새 response를 허용하지 않습니다. |
EOverAnimSlowMotionSilhouettePolicy |
ImmediateReset |
active response를 제거하고 즉시 source pose로 돌아갑니다. |
|
BlendToSource |
새 response를 중지하고 설정 시간 동안 source pose로 blend합니다. |
EOverAnimPauseBehavior |
FreezeCurrentSilhouette |
현재 결과를 고정합니다. paused 동안 motion/automatic stage와 새 Signal은 생성되지 않습니다. |
|
ReturnToSourcePose |
새 response를 중지하고 source pose로 되돌립니다. |
|
FinishExistingEffectsInRealTime |
새 response를 중지하지만 active envelope/spring/release는 real time으로 완료합니다. |
EOverAnimScreenSpaceSilhouettePolicy |
AbsolutePixelSafety |
모든 composed point에 하나의 global pixel cap을 적용합니다. |
|
RegionRelativeReadability |
Region projected diameter 비율 cap을 먼저 적용한 뒤 global cap을 적용합니다. |
EOverAnimSignalDirectionSource |
WorldUp, WorldDown, OwnerUp, OwnerDown, OwnerForward, OwnerRight, OwnerVelocity |
Submit Named OverAnim Signal From Owner와 Notify가 world-space Signal direction을 만들 때 사용하는 출처입니다. Owner velocity가 0이면 usable direction을 만들지 못할 수 있습니다. |
FOverAnimViewDependentStylizationSettings
이 구조체는 active OverAnim deformation이 camera projection 때문에 짧거나 얇게 보일 때만 correction을 추가합니다. source pose, collision, authored module setting은 수정하지 않습니다.
| Details UI 이름 |
C++ 속성명 |
기본값 · 범위 |
영향 · 표시 조건 |
| Enable Camera Readability Correction |
bEnabled |
false |
전체 correction master switch입니다. false면 아래 값을 적용하지 않습니다. |
| Overall Readability Strength |
Intensity |
1, 0..1 |
모든 correction의 최종 배율입니다. bEnabled일 때만 표시됩니다. |
| Reveal Actions Pointing Into Camera |
bEnableForeshortening |
true |
camera depth 방향 action의 screen-readable emphasis를 허용합니다. |
| Depth Action Reveal Strength |
ForeshorteningStrength |
0.2, 0..1 |
depth action에 추가할 bounded emphasis입니다. bEnabled && bEnableForeshortening일 때 표시됩니다. 0은 authored deformation을 보존합니다. |
| Depth Alignment Focus |
AlignmentExponent |
2, 0.1..8 |
높을수록 camera와 더 정렬된 action에 correction을 집중합니다. |
| Prevent Thin On-Screen Silhouettes |
bEnableSilhouetteGuard |
true |
active deformation으로 얇아진 Region의 부족한 screen-plane thickness만 회복합니다. |
| Minimum Retained Screen Thickness |
MinimumSilhouetteThicknessRatio |
0.6, 0..1 |
source Region silhouette 대비 유지할 최소 비율입니다. |
| Maximum Thickness Recovery Scale |
MaximumSilhouetteCorrectionScale |
1.35, 1..3 |
thickness recovery의 상한입니다. |
| Reveal Hidden Depth Motion |
DirectionReorientationStrength |
0.15, 0..1 |
authored screen-plane 방향으로 redirect할 depth displacement 비율입니다. 0은 방향을 보존합니다. |
| Fade Camera Correction Near Frame Edge |
bEnableFramingGuard |
true |
viewport boundary에 가까울 때 추가 correction만 fade합니다. |
| Safe Frame Margin |
FramingSafeMarginRatio |
0.05, 0..0.25 |
짧은 screen dimension 비율로 표시하는 안전 margin입니다. |
| Frame Edge Fade Strength |
FramingGuardStrength |
1, 0..1 |
unsafe edge에서 correction 제거 정도입니다. |
| Fade Camera Correction After Cuts |
bEnableCameraCutGuard |
true |
camera cut 뒤 readability correction을 잠시 fade-in합니다. camera safety cap은 지연되지 않습니다. |
| Translation Cut Ratio |
CameraCutTranslationRatio |
0.35, 0.01..2 |
한 frame camera 이동이 camera distance의 이 비율을 넘으면 cut으로 봅니다. |
| Rotation Cut Angle |
CameraCutRotationAngleDegrees |
45 deg, 1..180 |
한 frame rotation cut threshold입니다. |
| Projection Scale Cut Ratio |
CameraCutProjectionScaleRatio |
0.25, 0.01..2 |
FOV, ortho width, viewport scale 변화의 cut threshold입니다. |
| Correction Fade-In Time |
CameraCutRecoveryDuration |
0.08 s, 0..1 |
detected cut 뒤 correction recovery 시간입니다. |
Component-owned camera safety properties
| Details UI 이름 |
C++ 속성명 |
기본값 · 범위 |
영향 · 표시 조건 |
| Enable Camera Safety Limit |
bEnableScreenSpaceSilhouetteLimit |
false |
composed deformation의 screen-space safety cap을 활성화합니다. stylization을 추가하지 않고 과도한 결과만 줄입니다. |
| Camera Safety Limit Mode |
ScreenSpaceSilhouettePolicy |
RegionRelativeReadability |
위 bool이 true일 때만 표시됩니다. absolute global cap 또는 region-relative cap을 선택합니다. |
| Global Screen Displacement Limit (Pixels) |
MaximumProjectedDisplacementPixels |
48 px, 1+ |
primary local camera에서 fully composed result의 absolute cap입니다. |
| Per-Region Screen Displacement Ratio |
MaximumProjectedRegionDisplacementRatio |
0.25, 0.01..1 |
Region-relative mode일 때만 표시됩니다. projected Region diameter의 비율 cap입니다. |
| Camera Readability Correction |
ViewDependentStylization |
위 구조체 |
safety cap과 독립된 correction 설정입니다. |
Static C++ helpers
| C++ 선언 |
반환 |
전제조건 |
static bool ShouldDisableEffectsForSlowMotion(EOverAnimTimeDilationPolicy Policy, float EffectiveTimeDilation, float DisableThreshold) |
slow motion suppression 여부 |
DisableDuringSlowMotion에서 effective dilation이 threshold보다 낮을 때 true입니다. |
static bool ResolveSlowMotionSuppressionState(EOverAnimTimeDilationPolicy Policy, bool bWasSuppressed, float EffectiveTimeDilation, float DisableThreshold, float ResumeHysteresis) |
hysteresis를 적용한 suppression state |
재개 조건은 disable threshold에 hysteresis를 더한 값입니다. |
static float ResolveSimulationDeltaSeconds(EOverAnimTimeDilationPolicy Policy, float DilatedDeltaSeconds, float EffectiveTimeDilation) |
policy에 맞는 simulation delta |
IgnoreTimeDilation에서 dilation이 0 또는 유효하지 않으면 real-time delta를 안정적으로 복원할 수 없습니다. |
static float ResolvePausedSimulationDeltaSeconds(EOverAnimPauseBehavior Behavior, float RealDeltaSeconds) |
pause 중 simulation delta |
Freeze/Return은 0, Finish Existing은 real delta를 사용합니다. |
static FOverAnimViewDependentStylizationSettings BlendViewDependentStylizationSettings(const FOverAnimViewDependentStylizationSettings& From, const FOverAnimViewDependentStylizationSettings& To, float Alpha) |
shot override blend 결과 |
Alpha는 blend amount입니다. |
static float CalculateScreenSpaceMaximumDisplacement(float CameraDepth, float HorizontalFieldOfViewDegrees, int32 ViewportWidthPixels, float MaximumProjectedDisplacementPixels) |
cm world displacement cap |
depth/FOV/viewport/pixel budget이 유효해야 합니다. |
static float CalculateHorizontalFocalLengthPixels(float HorizontalFieldOfViewDegrees, int32 ViewportWidthPixels) |
horizontal focal length(px) |
FOV와 width가 유효해야 합니다. |
static float CalculateOrthographicPixelsPerWorldUnit(float OrthographicWidth, int32 ViewportWidthPixels) |
ortho pixels/world unit |
width와 orthographic width가 양수여야 합니다. |