오늘 한일

  • 애니메이션 연결 문제 해결
  • 캐릭터 만들고 움직이기, 컨트롤러, 총기 구현

문제

선이 이어지지 않음

이유

첫 번째 SET Character 노드와 두 번째 SET Character Movement 노드를 자연스럽게 이어주려면, 중간에 캐릭터 안에서 컴포넌트를 꺼내오는 노드가 하나 필요합니다.

Character Movement(캐릭터 움직임 기능)는 캐릭터(Character)라는 커다란 주머니 안에 들어있는 하나의 부품(컴포넌트)입니다.

🔑 핵심 원리 : 컴포넌트 패턴 (Component Pattern)

이 구조는 언리얼 엔진의 핵심 아키텍처인 액터(Actor)와 컴포넌트(Component)의 종속 관계 때문에 발생합니다.

  • Character (액터/객체): Character Movement를 소유하고 있는 최상위 부모 객체입니다.

  • Character Movement (컴포넌트): 캐릭터의 이동 로직을 담당하며, 반드시 Character 액터 내부에 포함되어야만 존재하는 하위 컴포넌트입니다.

💻 메모리 및 참조(Reference)의 흐름
  1. SET Character

    • 캐스팅을 통해 참조된 Character 객체 인스턴스의 메모리 주소를 변수에 저장합니다.
  2. Get Character Movement (Target)

    • 저장된 Character 인스턴스를 참조(Target)하여, 해당 객체가 컴포넌트 리스트에 가지고 있는 UCharacterMovementComponent 객체의 주소값(포인터)을 Get(역참조) 합니다.
  3. SET Character Movement

    • 접근에 성공한 UCharacterMovementComponent 인스턴스의 메모리 주소를 최종적으로 변수에 할당(Assign)합니다.

💡 전문 용어 한 줄 요약 상위 객체(Character 인스턴스)의 메모리 주소를 거쳐야만, 그 하위에 종속된 멤버 컴포넌트(Character Movement)의 메모리 주소에 접근(Get)할 수 있기 때문에 인스턴스를 Target으로 연결해 주는 것입니다.

해결


문제

어떻게 저 get을 만들어서 이을 수 있는가

해결

  1. get character를 가져오고

  1. 우클릭 후 Convert to Validated Get 누르기

  2. 연결


계획

  • 기초반 학습자료 8강까지 학습&정리
  • 과제5번(도전 포함)까지 완료
  • TA용어 찾아보고 정리
  • 심화반 학습자료 3강까지인데 가능하면 읽어보기

TIL NBC