|
Paradies Project
|
가챠(소환) 연출을 전담하는 박스 액터 More...
#include <ParadiseGachaBoxActor.h>


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< AParadiseGachaItemActor > | ItemActorClass |
| 스폰할 구슬 블루프린트 클래스 | |
| 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 |
| [추가] 가챠 시작 후 박스가 바닥에 닿기까지의 시간(초) | |
가챠(소환) 연출을 전담하는 박스 액터
| void AParadiseGachaBoxActor::PlayBoxDropSound | ( | ) |
[추가] 상자가 바닥에 쿵! 떨어지는 순간 시퀀서(Event Track)에서 호출할 함수
LS_Gacha_Intro 시퀀스에서 상자가 바닥에 닿는 정확한 프레임에 이 함수를 호출해주세요!

| void AParadiseGachaBoxActor::PlayGachaSequence | ( | const TArray< FGachaResult > & | InResults | ) |
가챠 연출을 시작합니다. (GachaSubsystem → 이 함수 호출)
| InResults | 서버/서브시스템에서 결정된 뽑기 결과 배열 |

| void AParadiseGachaBoxActor::ResetState | ( | ) |
연출 종료 후 구슬을 제거하고 다음 뽑기를 위해 상태를 초기화합니다.
박스 자신은 레벨에 유지됩니다. (레벨 시퀀스 바인딩 보존)
|
protected |
[추가] 가챠 시작 후 박스가 바닥에 닿기까지의 시간(초)
(LS_Gacha_Intro)를 보고 박스가 땅에 쿵! 닿는 타이밍(예: 0.5초, 1.2초)을 에디터에서 입력하면 됩니다.
|
protected |
구슬 착지 시 바닥에서 띄울 Z 오프셋 (구슬 절반 높이)
구슬이 바닥에 반쯤 잠기면 이 값을 높여주세요.
|
protected |
마지막 구슬 리빌 후 결과창이 뜨기까지 대기 시간 (초)
더블 터치 스킵 시에는 이 딜레이 없이 즉시 표시됩니다.
|
protected |
[1연차 전용] 구슬이 하늘로 치솟는 포물선 최고 높이
멀티 뽑기보다 훨씬 높게 설정해 드라마틱한 연출을 만듭니다.
|
protected |
[1연차 전용] 구슬이 착지할 위치 오프셋 (박스 기준 상대 좌표)
X = 앞뒤, Y = 좌우, Z = 높이. 기획자가 에디터에서 조절합니다.