프로퍼티 액세스(Property Access) 를 사용하면 게임 스레드(Game Thread) 에서만 액세스할 수 있는 컴포넌트와 변수에 애니메이션 블루프린트 내 어디서든 액세스할 수 있습니다. 프로퍼티 액세스를 사용하여 컴포넌트나 변수를 호출하면 해당 데이터의 스냅샷이 찍히고, 이를 사용하여 애님 그래프, 애니메이션 노드 함수, 블루프린트 스레드 세이프 함수 또는 이벤트 그래프에서 함수 로직을 구동할 수 있습니다. 프로퍼티 액세스를 사용하면 프로젝트가 게임 스레드 에서 평가해야 하는 작업량이 감소하며, 수행해야 하는 수동 블루프린트 스크립팅의 양도 감소하여 게임 및 워크플로의 퍼포먼스가 향상됩니다.
다음 문서에서 프로젝트의 애니메이션 시스템 최적화에 사용할 수 있는 프로퍼티 액세스 노드, 핀 및 함수 사용법을 알아볼 수 있습니다.
개요
애니메이션 블루프린트에서 로직을 생성할 때, 일반적으로 이벤트 그래프를 사용하여 변수를 설정하고 다른 블루프린트 및 컴포넌트와 인터페이스합니다. 이벤트 그래프는 항상 프로젝트의 게임 스레드 에서 평가됩니다.
애니메이션 시스템의 퍼포먼스를 높이려면 프로퍼티 액세스 함수 를 사용하여 애니메이션 그래프가 업데이트되는 것과 동일한 작업자 스레드(Worker Thread) 에서 이벤트 그래프 를 실행하면 됩니다. 예를 들어, 프로퍼티 액세스를 사용하면 캐릭터 블루프린트로 캐스팅하여 속도 벡터를 추출하는 함수 노드를 생성하지 않고도 캐릭터의 속도(Velocity)에 바로 액세스할 수 있습니다.
프로퍼티 액세스 사용 안 함 | 프로퍼티 액세스 사용 |
---|---|
![]() |
![]() |
프로퍼티 액세스 함수
프로퍼티 액세스는 게임 스레드 변수의 스냅샷이나 컴포넌트 데이터의 스냅샷을 찍기 위해 함수 그래프를 평가하고 해당 데이터를 스레드 세이프와 호환되도록 변환하는 방식으로 작동합니다. 프로퍼티 액세스 노드를 생성하거나 애니메이션 블루프린트 노드 핀에서 프로퍼티 액세스 함수를 호출할 때, 프로젝트의 베이스 컴포넌트 및 변수에 액세스하는 사전 생성된 다양한 함수 중에서 선택할 수 있습니다.
이러한 함수는 캐릭터 속도나 이동 방향, 이동 컴포넌트 레퍼런스 같은 변수와 컴포넌트를 제공할 수 있으며, 이를 사용하여 AnimGraph에서 블렌딩하거나 애니메이션 포즈 선택을 구동할 수 있습니다.

프로퍼티 액세스 노드 및 핀 바인딩에 대한 자세한 내용은 프로퍼티 액세스 바인딩 섹션을 참조하세요.
커스텀 프로퍼티 액세스 함수
더 구체적이거나 고유한 값을 출력하기 위해 커스텀 프로퍼티 액세스 함수를 생성할 수도 있습니다. 커스텀 프로퍼티 액세스 함수를 생성하려면, 먼저 내 블루프린트(My Blueprint) 패널에서 추가(+) 를 선택하여 그래프에 새로운 함수를 추가합니다.

Return Node를 생성하고 함수 노드에 연결합니다.

Return Node 를 선택하고 디테일(Details) 패널에서 순수(Pure) 프로퍼티를 활성화합니다.

추가(+) 버튼을 사용하여 새로운 출력 값을 추가하고 이름을 ReturnValue
로 지정합니다.
이 출력 이름은 정확하게 ReturnValue
여야 합니다. 이름이 다르면 프로퍼티 액세스 노드나 핀 바인딩에서 프로퍼티 액세스 함수에 액세스할 수 없게 됩니다.

이제 어떤 로직이든 빌드하여 Return Node의 출력 핀을 설정할 수 있는데, 그러면 함수에 바인딩된 프로퍼티 액세스 노드나 핀의 출력이 됩니다.
이제 바인드(Bind) 드롭다운 메뉴에서 함수를 선택하여 프로퍼티 액세스 함수를 원하는 프로퍼티 액세스 노드나 핀에 바인딩할 수 있습니다. 프로퍼티 액세스 함수는 출력 데이터 타입에 따라 컬러 코딩됩니다.

퍼포먼스 최적화를 위해서는 프로퍼티 액세스 함수의 스레드 세이프 프로퍼티를 활성화하는 것이 좋습니다. 함수를 스레드 세이프로 활성화한 다음에는 모든 변수와 컴포넌트 레퍼런스도 프로퍼티 액세스를 사용하여 스레드 세이프로 만들어야 합니다. 커스텀 프로퍼티 액세스 함수를 스레드 세이프로 만들면 애니메이션 시스템 퍼포먼스를 크게 향상할 수 있습니다.
프로퍼티 액세스 바인딩
애니메이션 블루프린트 어디서든 프로퍼티 액세스 노드를 사용하거나 기존 애니메이션 블루프린트 노드에 핀 바인딩을 사용하여 디폴트 및 커스텀 프로퍼티 액세스 함수에 액세스할 수 있습니다.
노드 사용
애니메이션 블루프린트 어디서든 프로퍼티 액세스 노드를 생성할 수 있습니다. 프로퍼티 액세스 노드를 생성하려면, AnimGraph 에서 우클릭한 다음 변수(Variables) 카테고리에서 프로퍼티 액세스 선택합니다.

프로퍼티 액세스 노드를 생성한 다음에는 액세스하려는 컴포넌트나 변수를 참조할 수 있도록 노드를 함수 에 바인딩해야 합니다. 필수 요구 사항을 충족한다면 커스텀 프로퍼티 액세스 함수 그래프도 바인딩할 수 있습니다. 함수를 프로퍼티 액세스 노드에 바인딩하려면, 바인드 드롭다운 메뉴에서 함수를 선택합니다.
함수는 계층구조로 정리되어 있으며, 부모 컴포넌트 함수에는 자손 프로퍼티에 해당하는 자손 함수가 포함되어 있습니다. 예를 들어, 부모 함수 그 이상을 탐색해 그 함수에 포함된 더 구체적인 프로퍼티를 분리할 수 있습니다. 이 예시에서는 TryGetPawnOwner 에서 GetActorLocation 을 거쳐 특정 축 float 값(X, Y, Z) 으로 Get 프로퍼티 경로를 생성합니다.

프로퍼티 액세스 노드를 바인딩한 다음에는 이 노드를 통해 그래프의 컴포넌트나 변수에 액세스하여 노드의 로직을 구동할 수 있습니다.

핀 사용
프로퍼티 액세스 함수를 일부 AnimNode 핀에 바로 바인딩할 수도 있습니다. AnimNode 핀에 프로퍼티 액세스 함수를 바인딩하려면, 그래프에서 노드를 선택하고 해당 노드의 디테일 패널에서 입력 핀 바인딩 세팅으로 이동합니다. 핀 드롭다운 메뉴에서 함수 를 선택하여 핀 값을 다이내믹하게 구동합니다.

프로퍼티 액세스 세팅
프로퍼티 액세스 컨텍스트 메뉴에는 다음과 같은 선택 항목과 프로퍼티가 포함되어 있습니다.

이름 | 설명 |
---|---|
호출 사이트(Call Site) | 호출 사이트 는 바인딩된 프로퍼티 액세스 함수를 실행할 스레드를 제어합니다. 다음 옵션 중에서 선택할 수 있습니다.
|
함수(Functions) | 노드나 핀에 바인딩할 프로퍼티 액세스 함수를 선택합니다. |
프로퍼티(Properties) | 애니메이션 블루프린트 내에 포함된, 프로퍼티 액세스 노드나 핀에 바인딩할 수 있는 변수나 컴포넌트 레퍼런스를 선택합니다. |
추가 리소스
블루프린트 스레드 세이프 함수 및 프로퍼티 액세스를 사용하여 애니메이션 시스템을 최적화하는 방법에 대한 자세한 내용은 애니메이션 최적화 문서를 참조하세요.
블루프린트 스레드 세이프 함수 및 프로퍼티 액세스를 사용하여 애니메이션 변수를 가져오는 워크플로 예시는 애니메이션 변수를 가져오는 방법 문서를 참조하세요.
스레드 세이프 함수를 사용하기 위해 언리얼 엔진 프로젝트를 최적화하는 워크플로 예시는 UE5 게임에 라이라 애니메이션 응용하기 블로그 게시물을 참조하세요.