게임 스크립트 언어
액터를 게임 플레이 도중 어떤 방식으로 이동 또는 변화할 수 있도록 할지를 제어
빛과 그림자의 실시간 계산의 부하를 줄이기 위함
디폴트는 스태틱, 특별한 경우만 무버블로 하자
UE4에서 이동 컴포넌트(Movement Component)를 사용
부모클래스인 Character에 포함되어 있음
- 마티네: 에디터에서 컷신(시네마틱 영상)을 생성하고 재생하기 위한 구조
- 타임라인: 키 프레임을 사용해 벡터와 스칼라 값을 변경해주는 기능
게임 객체에 물리 파라미터를 지정하고, 이를 기반으로 물리 엔진이 모든 제어를 처리하는 방법
이동 컴포넌트와의 차이점: 이동 컴포넌트는 게임 물리(게임 관련 활용이 편리), 물리엔진은 현실 물리(예측이 힘듦)
장점: 파라미터가 많이 필요하지 않고 편리하게 사용 가능
단점: 제거나 예측이 어려움
UE4에서는 엔비디아의 PhysX가 통합되어 있다
블루프린트 -> 레벨 블루프린트 열기
BeginPlayEvent의 실행 핀을 PrintString 노드에 연결
액터 선택 후 액터에 대한 레퍼런스(reference) 생성 -> GetActorLocation 함수 호출
벡터 연산 노드를 통해 SetActorLocation의 New Location에 연결
움직이기 위해선 객체의 Mobility를 Movable로 해주기
디테일 -> 블루프린트/스크립트 추가
클래스 블루프린트로 만들면 어떤 월드에 배치하더라도 해당 Action을 재사용할 수 있음
디지털 입력 이벤트
아날로그축 입력 이벤트
Controller에 의해서 조작되는 액터
조작자: Controller라는 액터로 표현
입력 이벤트 처리
SpringArm 카메라 설정 값 Use Pawn Control Rotation 체크
Controller의 회전 값으로 SpringArm을 회전시킴
- 카메라가 항상 캐릭터 등을 바라보게 된다
플레이어의 하드웨어 입력을 액터가 이해하고 활용할 수 있는 형태의 데이터로 변한
액션 매핑: 디지털 입력 이벤트
축 매핑: 아날로그 축 입력 이벤트
액션 입력 이벤트, 축 입력 이벤트
표시: 입력 액션, 입력 축
프로젝트 세팅 -> 엔진 -> 입력 -> 바인딩 -> 액션 매핑, 축 매핑
위 아래 보기: LookUp 이벤트 입력 축 -> Add Controller Pitch Input에 연결
좌우 보기: LookRight 이벤트 입력 축 -> Add Controller Yaw Input에 연결
SpringArm의 카메라 세팅의 Use Pawn Control Rotation 체크
카메라 노드 -> Get Forward Vector의 타깃에 연결 -> Add MoveMent Input의 World Direction에 연결
PlayerController -> Player Camera Manager Class 의 + 선택하여 블루프린트 클래스 생성
View Min, Max 제한
뼈 구조를 가진 FBX 파일을 통해 캐릭터의 외형 변경
관절(joint), 뼈(bone)
Maya, 3dsMax, Blender 등에서 제작하여 FBX 포맷으로 저장
- import 시에 특별히 신경 쓸 필요 없이 축 문제 등이 거의 없다
스태틱 메시: 스태틱 메시 에디터
스켈레탈 메시: 에니메이션 에디터
스켈레톤 에디터
뼈대 구조를 편집
스켈레탈 메시 에디터
애니메이션 에디터
애니메이션 블루프린트 에디터
애니메이션의 동작을 블루프린트로 관리
피직스 데이터
스켈레탈 메시의 콜리전 물리 등을 관리
스태틱 메시
스켈레탈 메시
이러한 애니메이션 대응 콜리전 데이터를 피직스 애셋(Physics Assest)이라고 함
언리얼 에디터에서 작업해야 함
피직스 애셋은 필수가 아닌 선택
CharacterMovement 컴포넌트: 캡슐을 사용해 지형과 접촉을 판정함
정교함이 필요한 경우에는 사용하는 것이 좋음
격투게임의 발차기 같은 경우 콜리전이 더 정교해야 함
따라서, 콜리전 조합(지형 콜리전용 캡슐 콜리전 + 캐릭터 콜리전용 데이터)으로 운용하자
스켈레탈 메시 우클릭 -> 스켈레탈 메시 액션 -> 생성 -> 피직스 애셋 -> 생성
스켈레탈 메시 에디터에서 피직스를 연결