콘텐츠로 이동

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가 양수여야 합니다.