. 스태틱 메시로 폴리지 배치하기
스태틱 메시를 폴리지로 사용하려면 Foliage Mode에서 사용할 메시를 등록한 뒤, 브러시처럼 월드에 칠해서 배치할 수 있다.
Foliage Mode 진입→ 사용할 Static Mesh 추가→ 브러시 크기 / 밀도 / 랜덤 회전 / 스케일 설정→ 레벨 위에 칠하듯이 배치
폴리지는 같은 메시를 여러 개 배치할 때 유용하며, 나무, 풀, 돌, 장식물처럼 반복적으로 많이 배치되는 오브젝트에 적합하다.
일반 액터를 여러 개 배치하는 것보다 관리와 성능 면에서 유리하며, 랜덤 스케일이나 랜덤 회전을 통해 자연스러운 배치를 만들 수 있다.

2. 플레이어 입력 처리하기
플레이어 입력은 Project Settings의 Input 항목에서 먼저 정의한다.
Project Settings→ Input→ Action Mapping / Axis Mapping 등록
예를 들어 이동, 점프, 공격 같은 입력 이름을 등록한 뒤, 블루프린트에서 해당 입력 이름을 이벤트 노드로 가져와 사용할 수 있다.
InputAction JumpInputAction AttackInputAxis MoveForwardInputAxis MoveRight
이렇게 등록된 입력 이벤트는 플레이어 컨트롤러나 캐릭터 블루프린트에서 사용할 수 있다.
입력 이벤트를 받으면 그 결과를 변수에 저장하거나, 이동 함수, 공격 함수, 애니메이션 전환 조건 등에 연결할 수 있다.
예를 들어 왼쪽 아래 변수 패널에서 Boolean 변수를 만들고, 입력이 눌렸는지 여부를 저장할 수 있다.
공격 버튼 Pressed→ bIsAttacking = true공격 버튼 Released→ bIsAttacking = false
이런 식으로 입력 상태를 변수화하면 애니메이션 블루프린트나 상태 전환 로직에서 활용하기 쉬워진다.

3. 애니메이션 블루프린트와 상태 머신 만들기
캐릭터의 애니메이션 전환을 관리하려면 Animation Blueprint를 만든다.
Skeletal Mesh 선택→ Animation Blueprint 생성→ 해당 AnimBP를 캐릭터 블루프린트의 Mesh에 연결
애니메이션 블루프린트는 크게 두 부분으로 볼 수 있다.
Event Graph→ 필요한 변수 갱신Anim Graph→ 실제 애니메이션 출력 구조 구성
Event Graph
Event Blueprint Update Animation에서 매 프레임 필요한 정보를 가져온다.
예를 들어:
Try Get Pawn Owner→ 캐릭터 가져오기→ Velocity 확인→ Speed 계산→ bIsMoving 설정
이렇게 캐릭터의 속도, 이동 여부, 점프 여부, 공격 여부 같은 값을 변수로 저장한다.

Anim Graph
Anim Graph에서는 최종 포즈를 출력한다.
여기서 State Machine을 연결해 Idle, Walk, Run 같은 상태를 구성할 수 있다.
Anim Graph→ State Machine→ Output Pose
상태 머신 내부에서는 여러 애니메이션 상태를 만들고, 변수 조건에 따라 전환한다.
Idle→ WalkWalk→ Idle
전환 조건 예시:
Idle → Walk조건: Speed > 0Walk → Idle조건: Speed <= 0
즉, 캐릭터 블루프린트에서 직접 애니메이션을 계속 바꾸는 것이 아니라,
애니메이션 블루프린트가 캐릭터 상태를 읽고 그에 맞는 애니메이션을 자동으로 선택하게 만드는 구조다.
4. AI 컨트롤러 만들기
AI 캐릭터를 만들려면 AI Controller Blueprint를 생성하고, 해당 컨트롤러를 AI 캐릭터에 연결한다.
AI Controller Blueprint 생성→ AI 캐릭터의 AI Controller Class에 지정→ Auto Possess AI 설정
AI 컨트롤러는 플레이어 입력 대신 AI 로직을 통해 Pawn을 제어한다.
Player Controller→ 사용자 입력으로 Pawn 조작AI Controller→ AI 판단으로 Pawn 조작
블루프린트 이벤트 그래프에서 AI 행동을 만들 수 있다.
예를 들어:
Event BeginPlay→ Move To Location→ Move To Actor→ Delay→ Random Location 찾기→ 다시 이동
이런 식으로 순찰, 추적, 대기 같은 간단한 AI 행동을 구성할 수 있다.
AI 컨트롤러를 쓰면 캐릭터 자체는 동일한 Pawn 구조를 가지고 있어도,
누가 조종하느냐에 따라 플레이어 캐릭터가 되거나 AI 캐릭터가 될 수 있다.
5. Construction Script 활용
Construction Script는 액터가 월드에 배치되거나, 에디터에서 속성이 변경될 때 실행되는 초기 구성용 스크립트다.
액터 배치변수 값 변경블루프린트 컴파일레벨 로드
이런 시점에 실행된다.
게임이 시작된 뒤의 전투, 이동, 입력 처리보다는,
에디터에서 액터의 모양이나 설정을 미리 구성하는 데 사용한다.
예를 들어 머티리얼에 노출된 파라미터 이름을 블루프린트 변수와 연결하면,
블루프린트에서 값을 바꿨을 때 머티리얼의 색상이나 수치가 바뀌게 만들 수 있다.
블루프린트 변수→ Dynamic Material Instance 생성→ Set Scalar Parameter Value→ Set Vector Parameter Value→ 머티리얼에 반영
이 구조는 내가 직접 구현했던 머티리얼 인스턴스 / 셰이더 파라미터 관리 / 셰이더 리플렉션 개념과 비슷하게 느껴질 수 있다.
다만 정확히 구분하면:
언리얼 Construction Script→ 에디터에서 액터 초기 구성을 자동화하는 기능Material Instance→ 머티리얼 파라미터를 인스턴스 단위로 다르게 설정하는 기능Shader Reflection→ 셰이더 내부 변수 정보를 코드에서 자동으로 추출하고 관리하는 구조
즉, 완전히 같은 개념은 아니지만,
셰이더나 머티리얼에 정의된 값을 외부에서 변수처럼 제어한다는 점에서 연결해서 이해할 수 있다.
6. 블루프린트에서 Pawn 생성하기
블루프린트에서는 Spawn Actor from Class 또는 Pawn 관련 Spawn 노드를 사용해서 다른 블루프린트 액터를 생성할 수 있다.
Pawn을 생성할 때는 단순히 월드에 배치하는 것과, 컨트롤러가 조종하게 만드는 것을 구분해야 한다.
Spawn Actor from Class→ 월드에 액터 또는 Pawn 생성Spawn Default Controller→ 생성된 Pawn에 기본 컨트롤러 생성Possess→ 특정 Controller가 Pawn을 조종하게 함
AI 캐릭터를 생성할 때는 Spawn AI From Class를 사용할 수도 있다.
이 노드는 Pawn 생성과 AI Controller 연결을 함께 처리해주기 때문에 AI 캐릭터 스폰에 편하다.
Spawn AI From Class→ AI Pawn 생성→ AI Controller 연결→ 필요하면 Behavior Tree 실행
플레이어 컨트롤러에서 다른 Pawn을 생성하고 조종하려면 보통 이런 흐름이 된다.
Player Controller→ Spawn Actor from Class로 Pawn 생성→ Possess로 해당 Pawn 조종
즉, Pawn을 생성하는 것과 그 Pawn을 조종하는 것은 별개의 과정이다.