Animation은 오직 하나의 애니메이션만 담을 수 있다면, 

Montage는 여러 Animation을 하나의 애셋으로 합칠 수도 있고, Montage 앞에 선행 Animation을 붙일 수 있다.

 

또한 그 안에서 Notify를 이용해 사운드, 파티클, 루트모션 등의 추가 작업을 가할 수 있다.

그리고 이러한 작업들을 Replication 할 수 있다.

 

마지막으로 Animation은 C++이나 Blueprint에서 직접 조작이 불가능하지만, Montage는 직접 조작이 가능하다.

 

참고자료: https://docs.unrealengine.com/ko/Engine/Animation/AnimMontage/Overview/index.html

 

애니메이션 몽타주 개요

애니메이션 몽타주 애셋 작업 방식과 어디에 사용할 수 있는지에 대한 설명입니다.

docs.unrealengine.com

 

UE4에서 GC는 Object들의 Reference Graph를 만들어 참조되지 않은 Object들이 있는지 파악합니다.

Graph의 Root에는 Root Set으로 지정된 Object Set이 있고, 선언되는 모든 Object들은 이 Root Set 밑에 추가됩니다.

GC가 발동되면 Root Set부터 시작하여 Reference Tree를 순회합니다.

이 중 검색되지 않은 Object는 참조자가 없는 것으로 가정하고 제거합니다.

 

그리고 제거되지 않은 Object들은 UPROPERTY레퍼런스를 유지하거나,

포인터를 다른 언리얼 엔진 컨테이너 클래스에 저장합니다.

 

다만 Actor와 Component는 예외인데, 

Actor는 자신이 속한 Level처럼 Root Set로 다시 링크되는 Object에,

Component는 Actor 자체에 Reference가 있기 때문입니다.

Actor는 Destroy로, Component는 DestroyComponent로 삭제하거나 소유 Actor가 삭제될 때 같이 삭제됩니다.

 

그리고 이러한 GC는 프로젝트 세팅을 통해 몇가지 수정을 가할 수 있습니다.

 

참고자료: docs.unrealengine.com/ko/Programming/UnrealArchitecture/Objects/Optimizations/#%EA%B0%80%EB%B9%84%EC%A7%80%EC%BB%AC%EB%A0%89%EC%85%98

 

언리얼 오브젝트 처리

UObject 시스템의 기능에 대한 개요입니다.

docs.unrealengine.com

 

UPROPERTY는 C#의 매크로와 같이 멤버변수 앞에 선언하는 문법입니다.

이는 UE4에서 제공하는 각종 기능들의 대상이 되기 위해서는 반드시 선언되어야 합니다.

 

기본적인 역할은 URS(Unreal Reflection System)에 해당 Property가 있음을 알리는 것으로,

빌드 시 UHT(Unreal Header Tool)이 이 매크로를 감지하고 Reflection Type에 추가합니다.

 

URS에 추가된 UPROPERTY는 GC에 의해 관리가 되고,

Reflection을 통해 변수 이름이나 타입 등을 런타임 상에서 확인할 수 있습니다.

 

추가로 UPROPERTY에 지정자를 추가하여 다른 기능을 적용할 수 있습니다.

Blueprint에서 접근, 수정이 가능한다던가.

카테고리를 지정한다던가.

Replicate를 설정한다던가.

RefNotify를 지정한다던가.

 

참고자료: https://minusi.tistory.com/entry/%EC%96%B8%EB%A6%AC%EC%96%BC-UPROPERTY-Unreal-UPROPERTY

 

언리얼 UPROPERTY( Unreal UPROPERTY )

언리얼 엔진 위에서 언리얼 엔진과 상호작용하려는 코드를 작성하기 위해서는 언리얼에서 제공하는 각종 매크로의 도움을 받을 수 밖에 없습니다. 그 중, UPROPERTY는 멤버 변수( 또는 프로퍼티 ) �

minusi.tistory.com

 

+ Recent posts