언리얼 기초 16 애니메이션 블루프린트(3)

Event Blueprint Initialize Animation

애니메이션 블루프린트의 초기화 루틴

생성 직후 Get Owning Actor함수를 이용해 오너 객체(Object형 최상위 클래스, 조상)를 가져와서 그것을 Character형 객체로 캐스팅 한다.

오너 객체는 이 애니메이션 블루프린트가 등록되어있는 캐릭터 블루프린트(BP_ThirdPersonCharacter)형 객체를 말한다. 우린 앞선 포스팅을 통해 이 관계를 알고 있다.

애니메이션 블루프린트가 지원해주는 함수 Get Owning Actor는 게임 실행 중 이 연관 관계를 파악해 관련 정보를 리턴해 준다.

참고로 여기서 말하는 캐릭터 블루프린트형은 클래스가 아닌 객체이다.

우리가 짠 로직은 기본적으로 게임이 실행중일 때 돌게 된다, 이때 로직이 다루는 것은 프로그램 코드 조각인 클래스나 블루프린트 자체가 아니라(빵틀) 그것을 통해 만들어진 메모리상의 데이터(객체, 빵)이다.

캐스팅(Casting)

여기 보이는 Object형을 바퀴가 달린 무언가라고 정의했다고 치자, 그럼 Character형은 포르쉐 카이옌으로 볼 수있다. 포르쉐 카이옌바퀴가 달린 무언가지만 바퀴가 달린 무언가포르쉐 카이옌이 아니다, 실수는 정수지만, 정수는 실수가 아니다.

따라서 캐스팅 함수는 경우에 따라 캐스팅(변환)에 성공하기도 하고 실패하기도 한다.

이 Cast To Charact 노드는 범용적으로 쓰이도록 만들어졌기, 작성 당시에는 자기가 무엇을 받아서 Character형으로 이름을 바꿔 리턴하게 될지 정확히 알 수 없다. 그래서 ‘모든 것’을 의미하는 Object를 인풋(입력 데이터형)으로 사용한다.

여기서는 Get Owning Actor함수가 리턴하는 Owner 자체가 Character형이므로 타입 이름만 Object에서 Chararacter로 바꿔주면 된다고 판단 그렇게 바꿔준다.

바꿀수 없다고 판단되면 노드상에 보이는 Cast Failed 아웃 핀을 통해 다른 실행 흐름을 탄다. 지금은 해당 흐름이 없으니 멈춘다

이후 초기화 로직은 이 에니메이션 블루프린트가 쓰는 공용 변수인 Character에 이 Character형 데이터를 넣어준다.

Character Movement

위의 BP_ThirdPersonCharacter좌측에 보면 Capcule Component이 캐릭터형 자료가 가지고 있는 부품, 해당 스크롤 내려보면 Character Movement가 있다.

초기화 루틴의 끝으로 이 에니메이션 블루프린트가 쓰는 공용 변수인 Movement Component에 Character Movement를 넣어준다.

Character Movement안에는 해당 물체의 속도 정보가 실시간으로 갱신된다, 에니에이션 블루프린트는 이를 통해 걸어야 하는지 뛰어야 하는지 등을 판단하게 될 것이다.

Leave a Comment