[게임 제작을 위한 시작해요 언리얼] 3주차: 블루프린트를 활용한 움직이는 장치 제작

김훈래·2024년 3월 25일
0

Blueprint

  • 블루프린트 사용 시 단순 반복 기능을 좀 더 효율적으로 관리 가능, 비주얼 스크립팅을 통해 노드 기반 게임 개발 가능

  • 블루프린트화 하고 싶은 액터 클릭 후 디테일 추가 버튼 오른쪽 노드 그림 클릭 시 액터 -> 블루프린트 생성 가능

  • 블루프린트 편집 창에서 컴포넌트 부분에 구성 요소 추가 및 관리 가능, 스태틱 메시, 박스 콜리전 추가로 목표 지점 블루프린트화 가능, 볼륨은 없고 박스 콜리전으로 같은 기능 구현 가능

  • 편집 완료한 블루프린트는 저장 말고도 컴파일 한 번 하는 게 좋음

  • 블루프린트 생성 시 가장 먼저 고민할 것은 Movable한 BP인지 생각해서 Mobility 설정하기

  • 블루 프린트에 Timeline 추가 후 BeginPlay이후 노드로 연결 시 게임 시작 후 시간에 따라 변화하는 값을 설정할 수 있음, 타임라인 더블클릭하여 편집, 시간에 따라 값이 어떻게 변할 지 편집 가능, 시퀀서랑 조작 비슷, 루프 선택 시 무한 반복 진행, 루프 없으면 한 번 타임 라인 돌고 끝남

  • Get Actor Location: 현재 액터 위치 가져와서 값 반환, 출력 값 변수로 승격하여 저장 가능

  • Multiply: 연산자, Timeline에 따른 값 (0~1)에 스칼라를 곱해 증폭시키기 가능

  • Get Forward Vector: 각 컴포넌트의 전방 벡터를 가져옴, 크기는 1인 단위 벡터

  • Add: 연산자, 시작 위치에 (증폭된 값 * 전방 벡터)를 더해 업데이트할 새로운 위치 계산 가능

  • Set Actor Location: 액터 위치 설정, 함수기 때문에 Timeline의 Update 흰 색 화살표에 연결해야 작동, New Location에 새로 계산된 위치 입력하여 완성

  • 대각선으로 움직이는 발판은 발판에 배치한 화살표의 방향만 바꿔서 구현 가능!

  • 완성한 움직이는 발판 BP는 이동 거리가 800으로 고정된 경우에만 완벽하게 작동, 변수로 승격시킨 뒤 디테일 -> 변수 -> Instance Editable 활성화 시 각 액터마다 값 변경 가능

  • Set Play Rate: target에 timeline component를 입력, 새로운 재생 속도를 주어 timeline의 속도 변경 가능

  • Delay: 정해진 시간 만큼 딜레이

Tips

  • V키 누르고 액터 움직이면 버택스 스냅핑 가능, 액터 기즈모 기준 흰 점을 다른 액터의 정점에 딱붙이기 가능

  • 카메라 콜리전: 벽에 카메라가 충돌할 경우 카메라를 캐릭터 쪽으로 당겨서 벽을 뚫지 못하게 함, 하지만 카메라 릭에 액터가 닿으면 카메라가 왔다갔다할 수 있음, 릭에 닿을 것 같은 액터 -> 스태틱 메시 컴포넌트 디테일 -> 콜리전 프리셋을 Default -> Custom으로 변경 후 트레이스 반응 -> 카메라 무시로 설정 시 카메라 릭에 액터가 닿아도 카메라가 당겨지지 않는다

  • 블루 프린트는 C++보다는 느리다. 스크립트로 동작하지 기계어로 동작하지 않기 때문. 빠른 것만을 보고 C++을 선택하기에는 블루프린트의 장점이 너무 많다.

  • 틱 기반은 타임 코스트가 크다. 60프레임 게임에서 60번 실행되기 때문. 최적화 측면에선 틱을 최소화하는 게 맞지만 컨텐츠를 만드는 단계에선 일단 막 쓰고 나중에 문제가 발생한다 싶으면 교체하는 방법이 나을 것.

  • 원 운동: 회전 이동 컴포넌트를 통해 배치한 물체를 돌릴 수 있음

0개의 댓글