몽타주 바인딩에 대해 궁금한 점이 있습니다.
91
작성한 질문수 16
안녕하세요. 혼자 배운 내용을 토대로 개발을 해보고 있는데 콤보 액션 몽타주가 끝나면 델리게이트를 설정을 하는데 이에 대해 궁금한 점이 있습니다.
(1번 코드)AnimInstance->OnMontageEnded.AddDynamic(this, &ALuckyCharacterBase::ComboAttackEnd);
콤보 액션이 끝난 후 바인딩하는 코드를 1번 코드처럼 작성을 해도 상관이 없는 건가요?
(2번 코드)FOnMontageEnded ComboEndDelegate; ComboEndDelegate.BindUObject(this, &ALuckyCharacterBase::ComboAttackEnd); AnimInstance->Montage_SetEndDelegate(ComboEndDelegate, ComboAttackMontage);
2번 코드처럼 작성하는 이유가 현재 콤보 액션과 다른 콤보 액션을 또 만들면 이 두 콤보 액션을 구분하여 함수를 호출하기 위해 작성을 하는 것인지 궁금합니다.
답변 2
0
1번 코드가 동작하는지요?
OnMontageEnded의 선언이 Dynamic Delegate가 아닌데 AddDynamic이 먹힐 것 같지 않습니다.
0
1번 코드로 해보니 플레이를 하면 처음에만 공격이 가능하고 그 이후에는 가능하지가 않습니다.
로그를 확인해보니 LogOutputDevice: Error: [Callstack] 0x00007ffd9427be24 UnrealEditor-Lucky.dll!TBaseUObjectMethodDelegateInstance<0,ALuckyCharacterPlayer,void __cdecl(void),FDefaultDelegateUserPolicy>::Execute() [D:\UE_5.3\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:650] LogOutputDevice: Error: [Callstack] 0x00007ffd94279c0e UnrealEditor- (로그 일부분)
이렇게 뜹니다. 바인딩이 제대로 안된것 같습니다. Dynamic Delegate인지 알 수 있는 방법이 있나요? 소스코드에서 정의를 살펴보니 DECLARE_DELEGATE_TwoParams(FOnMontageEnded, UAnimMontage*, bool /*bInterrupted*/)
이렇게 되어있는데, 위와 같이 되어 있으면 Dynamic Delegate가 아닌건가요?
Dynamic Delegate 가 아니라면 2번코드와 같이 작성을 해야 하는지 궁금합니다.
0
안녕하세요, 인프런 AI 인턴입니다. ajkdfj님.
언리얼 엔진에서 몽타주가 종료될 때 특정 함수를 실행하기 위한 델리게이트 설정에 대해 좋은 질문을 주셨습니다.
(1번 코드)에서는 AnimInstance->OnMontageEnded.AddDynamic을 사용하여 몽타주가 끝날 때마다 ComboAttackEnd 함수를 호출하도록 합니다. 이 방식은 모든 몽타주 종료 시점에서 동일한 함수가 호출되게 됩니다. 즉, 여러 몽타주가 동일한 종료 함수를 공유하게 됩니다.
(2번 코드)에서는 FOnMontageEnded 타입으로 델리게이트를 선언하고 Montage_SetEndDelegate 함수를 사용하여 특정 몽타주(여기서 ComboAttackMontage)에 대해 종료 델리게이트를 설정합니다. 이 방식은 특정 몽타주에 대해서만 델리게이트를 설정할 수 있어, 서로 다른 몽타주에 대해 개별적으로 함수를 설정하고 싶을 때 유용합니다.
따라서, “2번 코드처럼 작성하는 이유”는 말씀하신 대로 여러 개의 콤보 액션이 있을 때, 서로 다른 콤보 액션이 종료되었을 때 개별적인 동작을 실행할 수 있도록 할 경우에 그 방법을 사용할 수 있습니다.
이와 관련된 좀 더 구체적인 정보를 보시려면 이 링크들을 참고해 주세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
무한맵 제작과정중에 GetWorld 가 Nullptr 을 반환합니다.
0
44
2
12강 행동트리에서 질문이 있습니다.
0
51
1
위젯 사이즈랑 위치 질문드려요.
0
81
3
행동트리의 데코레이션 관련하여 질문이 있습니다.
0
93
3
VS 2026 의 문제일까요?
0
483
2
에셋참조 블루프린트질문
0
67
2
애님 몽타주 콤보 관련질문
0
70
2
ThirdPerson CDO 에러가 생깁니다.
0
95
3
캐릭터가 움직이지 않습니다.
0
180
4
쿠킹 폴더 지정시 , Item 이외에는 지정하지 않는지 궁금합니다.
0
62
2
TSoftObjectPtr 를 사용했음에도, 메모리에 로드 됩니다.
0
94
2
7강에 나오는 생성자에 대해서 궁금합니다.
0
78
2
6강을 마무리하며 트레이스 채널 을 이해하지 못했습니다.
0
73
2
3강을 마무리 하며, 카메라가 움직이지 않습니다.
0
70
2
Use Controller Rotation 옵션값이 궁금합니다.
0
83
2
3강 입력 시스템 적용 중, 5.6 버전은 입력 매팅이 2개 입니다.
0
64
2
PlayerController 에 대헤 제가 잘못 이해한 것 같습니다.
0
78
2
13강 UpdateStat 부분에서 문제를 겪고 있습니다.
0
63
2
BP_PlayerController의 CustomEvent노드 이유가 궁금합니다.
0
64
1
콤포넌트 포인터 선언시 TObjectPtr<>과 UStaticMeshComponent* 차이점
0
72
2
CharacterMovementComponent의 RotationRate관련해서 질문이 있습니다.
0
114
2
언리얼 공부방법에 대해 질문드립니다.
0
86
2
4강 에서 이상한 그림자가 남습니다.
0
46
1
2강에서 카메라 회전안되시는분 참고
2
90
2





