inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

4강 캐릭터 애니메이션 설정

Unreal 애니메이션이 기본적으로 MultiThread 옵션이 켜져있는 점에 대해서.

해결된 질문

1451

themoon007

작성한 질문수 98

0

아마 성능을 위해 애니메이션 블루프린트 로직이 작업자 스레드에서 돌아가도록 옵션 켜는게 있는 것 같은데요.

 

많은 다른 예제에서 블루프린트 EventGraph 대신 Blueprint Thread Safe Update Animation 이라는 블루프린트 함수를 대신 사용하고 또, C++ 로도 NativeUpdateAnimation() 대신

NativeThreadSafeUpdateAnimation() 가 있더라구요.

 

그리고 블루프린트 전용 함수에서도 ThreadSafe 옵션을 켜고 끄는게 있는데 이걸 켜면 일반적인 C++ 함수를 호출할 수 없고, C++ 함수에 Meta = (BlueprintThreadSafe) 지정자를 설정하면 보이긴 하는데요.

 

여기서 NativeThreadSafeUpdateAnimation() 함수나

Meta = (BlueprintThreadSafe) 지정자를 붙인 C++ 함수에는동기화 기법( mutex 같은)을 사용해서 정말 내부적으로도 멀티스레드 프로그래밍 같이 코드를 짜야 하는건가요???

unreal-engine ue-blueprint 언리얼-c++

답변 2

0

이득우

네 싱글스레드로 게임 로직과 애니메이션까지 처리하면 부하가 걸릴 수 있어서 엄격한 정확성을 요구하지 않는다면 애니메이션 시스템을 별도의 쓰레드로 돌리는 작업이 프레임의 병목 현상을 줄일 수 있어 합리적인 선택이라고 볼 수 있습니다. 다만 제 강좌는 게임프레임웍을 다루는 것을 목표로 하고 있어서, 이러한 애니메이션 시스템에 대해 설명하지는 않고 있습니다.
아무튼 저 기능을 사용하기 위해 직접 저수준의 자원 핸들링까지 진행할 필요는 없습니다. 이미 언리얼에서 직접 접근하는것이 아닌 간접 객체인 FAnimInstanceProxy를 통해서 안정적으로 원하는 값을 얻어올 수 있도록 기능을 제공하고 있습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

질문하신 Unreal Engine의 애니메이션 멀티스레딩과 관련하여, NativeUpdateAnimation과 NativeThreadSafeUpdateAnimation, 그리고 BlueprintThreadSafe 메타 태그 사용에 대한 내용은 강의 내용과 직접적인 연관이 없는 것으로 보입니다. 따라서 질문에 대한 답변을 찾아드릴 수 있는 기존 답변이 없습니다.

만약 멀티스레딩에 대해 더 알고 싶으시다면, 관련 전문 서적이나 개발 커뮤니티, 공식 Unreal Engine 문서를 참고하시는 것을 추천드립니다.

감사합니다.

무한맵 제작과정중에 GetWorld 가 Nullptr 을 반환합니다.

0

49

2

12강 행동트리에서 질문이 있습니다.

0

52

1

위젯 사이즈랑 위치 질문드려요.

0

83

3

행동트리의 데코레이션 관련하여 질문이 있습니다.

0

94

3

VS 2026 의 문제일까요?

0

495

2

에셋참조 블루프린트질문

0

67

2

애님 몽타주 콤보 관련질문

0

70

2

ThirdPerson CDO 에러가 생깁니다.

0

97

3

캐릭터가 움직이지 않습니다.

0

185

4

쿠킹 폴더 지정시 , Item 이외에는 지정하지 않는지 궁금합니다.

0

64

2

TSoftObjectPtr 를 사용했음에도, 메모리에 로드 됩니다.

0

98

2

7강에 나오는 생성자에 대해서 궁금합니다.

0

79

2

6강을 마무리하며 트레이스 채널 을 이해하지 못했습니다.

0

74

2

3강을 마무리 하며, 카메라가 움직이지 않습니다.

0

72

2

Use Controller Rotation 옵션값이 궁금합니다.

0

86

2

3강 입력 시스템 적용 중, 5.6 버전은 입력 매팅이 2개 입니다.

0

67

2

PlayerController 에 대헤 제가 잘못 이해한 것 같습니다.

0

81

2

13강 UpdateStat 부분에서 문제를 겪고 있습니다.

0

64

2

BP_PlayerController의 CustomEvent노드 이유가 궁금합니다.

0

68

1

콤포넌트 포인터 선언시 TObjectPtr<>과 UStaticMeshComponent* 차이점

0

74

2

CharacterMovementComponent의 RotationRate관련해서 질문이 있습니다.

0

117

2

언리얼 공부방법에 대해 질문드립니다.

0

88

2

4강 에서 이상한 그림자가 남습니다.

0

48

1

2강에서 카메라 회전안되시는분 참고

2

93

2