Paradies Project
Loading...
Searching...
No Matches
AParadiseGachaBoxActor Class Reference

가챠(소환) 연출을 전담하는 박스 액터 More...

#include <ParadiseGachaBoxActor.h>

Inheritance diagram for AParadiseGachaBoxActor:
Inheritance graph
Collaboration diagram for AParadiseGachaBoxActor:
Collaboration graph

Public Member Functions

void PlayGachaSequence (const TArray< FGachaResult > &InResults)
 가챠 연출을 시작합니다. (GachaSubsystem → 이 함수 호출)
void SkipGachaSequence ()
 연출 즉시 스킵 → 결과창 바로 표시
void ResetState ()
 연출 종료 후 구슬을 제거하고 다음 뽑기를 위해 상태를 초기화합니다.
void SetGachaPlaySpeed (float SpeedMultiplier)
 현재 재생 속도 배율 설정
void PlayBoxDropSound ()
 [추가] 상자가 바닥에 쿵! 떨어지는 순간 시퀀서(Event Track)에서 호출할 함수

Public Attributes

FOnSingleCharacterRevealed OnSingleCharacterRevealed
 단일 캐릭터 리빌 이벤트
FOnGachaResultScreenRequested OnGachaResultScreenRequested
 최종 결과창 요청 이벤트

Protected Member Functions

virtual void BeginPlay () override
virtual void Tick (float DeltaTime) override
virtual void EndPlay (const EEndPlayReason::Type EndPlayReason) override

Protected Attributes

TObjectPtr< USkeletalMeshComponent > BoxMesh = nullptr
 상자 스켈레탈 메시 (애니메이션 재생 + 터치 감지)
TObjectPtr< UPointLightComponent > AuraLight = nullptr
 상자 주변 바닥을 은은하게 비출 라이트 (Idle 연출용)
TObjectPtr< ULevelSequence > IntroSequence = nullptr
 [공용] 낙하 + 착지 시퀀스 → 1회 재생 후 자동으로 Idle 전환
TObjectPtr< ULevelSequence > IdleShakeSequence = nullptr
 [공용] 착지 후 은은한 흔들흔들 루프 시퀀스
TObjectPtr< ULevelSequence > OpenSingleSequence = nullptr
 [1연차] 격렬한 흔들 + 뚜껑 열림 시퀀스
TObjectPtr< ULevelSequence > OpenMultiSequence = nullptr
 [10연차] 격렬한 흔들 + 뚜껑 열림 시퀀스
TSubclassOf< AParadiseGachaItemActorItemActorClass
 스폰할 구슬 블루프린트 클래스
float EruptRadius = 350.0f
 10연차 구슬이 퍼지는 원형 반경 (언리얼 유닛)
float EruptArcHeight = 600.0f
 구슬 포물선 최고 높이 (언리얼 유닛)
FVector SinglePullLandingOffset = FVector(0.0f, 0.0f, 0.0f)
 [1연차 전용] 구슬이 착지할 위치 오프셋 (박스 기준 상대 좌표)
float SinglePullArcHeight = 1500.0f
 [1연차 전용] 구슬이 하늘로 치솟는 포물선 최고 높이
float FlightTimeMin = 0.8f
 구슬 비행 시간 최솟값 (초)
float FlightTimeMax = 1.2f
 구슬 비행 시간 최댓값 (초)
float MultiSpawnInterval = 0.15f
 [10연차 전용] 구슬 순차 발사 간격 (초)
float ResultDelaySeconds = 2.0f
 마지막 구슬 리빌 후 결과창이 뜨기까지 대기 시간 (초)
float DoubleTapThreshold = 0.3f
 더블 터치 인식 허용 간격 (초)
float IdleLightIntensity = 5000.0f
 Idle 상태일 때 켜지는 주변 빛의 세기
float GlowIncreaseSpeed = 1.5f
 터치 시 발광 증가 속도 (초당 강도)
float GlowDecreaseSpeed = 0.5f
 터치 해제 시 발광 감소 속도 (초당 강도)
float MaxGlowIntensity = 3.0f
 발광 최대 강도 (머티리얼 GlowIntensity 파라미터로 전달)
FName GlowIntensityParamName = FName(TEXT("GlowIntensity"))
 머티리얼 발광 강도 파라미터 이름
FName GlowColorParamName = FName(TEXT("GlowColor"))
 머티리얼 틈새 발광 색상 파라미터 이름
TMap< EItemRarity, FLinearColor > GlowColorsByRarity
 등급별 틈새 발광 및 주변 라이트 색상 맵
TMap< EItemRarity, TObjectPtr< UNiagaraSystem > > ClimaxEffectsByRarity
 등급별 뚜껑 오픈 폭발 이펙트 맵
TMap< EItemRarity, TObjectPtr< UMaterialInstance > > SilhouetteMaterialsByRarity
 등급별 구슬 실루엣 머티리얼 맵
float OrbLandingZOffset = 50.0f
 구슬 착지 시 바닥에서 띄울 Z 오프셋 (구슬 절반 높이)
float BoxDropSoundDelay = 0.5f
 [추가] 가챠 시작 후 박스가 바닥에 닿기까지의 시간(초)

Detailed Description

가챠(소환) 연출을 전담하는 박스 액터

Member Function Documentation

◆ PlayBoxDropSound()

void AParadiseGachaBoxActor::PlayBoxDropSound ( )

[추가] 상자가 바닥에 쿵! 떨어지는 순간 시퀀서(Event Track)에서 호출할 함수

LS_Gacha_Intro 시퀀스에서 상자가 바닥에 닿는 정확한 프레임에 이 함수를 호출해주세요!

Here is the caller graph for this function:

◆ PlayGachaSequence()

void AParadiseGachaBoxActor::PlayGachaSequence ( const TArray< FGachaResult > & InResults)

가챠 연출을 시작합니다. (GachaSubsystem → 이 함수 호출)

Parameters
InResults서버/서브시스템에서 결정된 뽑기 결과 배열
Here is the call graph for this function:

◆ ResetState()

void AParadiseGachaBoxActor::ResetState ( )

연출 종료 후 구슬을 제거하고 다음 뽑기를 위해 상태를 초기화합니다.

박스 자신은 레벨에 유지됩니다. (레벨 시퀀스 바인딩 보존)

Member Data Documentation

◆ BoxDropSoundDelay

float AParadiseGachaBoxActor::BoxDropSoundDelay = 0.5f
protected

[추가] 가챠 시작 후 박스가 바닥에 닿기까지의 시간(초)

(LS_Gacha_Intro)를 보고 박스가 땅에 쿵! 닿는 타이밍(예: 0.5초, 1.2초)을 에디터에서 입력하면 됩니다.

◆ OrbLandingZOffset

float AParadiseGachaBoxActor::OrbLandingZOffset = 50.0f
protected

구슬 착지 시 바닥에서 띄울 Z 오프셋 (구슬 절반 높이)

구슬이 바닥에 반쯤 잠기면 이 값을 높여주세요.

◆ ResultDelaySeconds

float AParadiseGachaBoxActor::ResultDelaySeconds = 2.0f
protected

마지막 구슬 리빌 후 결과창이 뜨기까지 대기 시간 (초)

더블 터치 스킵 시에는 이 딜레이 없이 즉시 표시됩니다.

◆ SinglePullArcHeight

float AParadiseGachaBoxActor::SinglePullArcHeight = 1500.0f
protected

[1연차 전용] 구슬이 하늘로 치솟는 포물선 최고 높이

멀티 뽑기보다 훨씬 높게 설정해 드라마틱한 연출을 만듭니다.

◆ SinglePullLandingOffset

FVector AParadiseGachaBoxActor::SinglePullLandingOffset = FVector(0.0f, 0.0f, 0.0f)
protected

[1연차 전용] 구슬이 착지할 위치 오프셋 (박스 기준 상대 좌표)

X = 앞뒤, Y = 좌우, Z = 높이. 기획자가 에디터에서 조절합니다.


The documentation for this class was generated from the following files:
  • Source/Paradise/Public/Actors/Gacha/ParadiseGachaBoxActor.h
  • Source/Paradise/Private/Actors/Gacha/ParadiseGachaBoxActor.cpp