게임 시작해요 언리얼 4

정선호·2023년 6월 2일
0

Unreal Study

목록 보기
9/13

4. 물리 엔진을 활용한 다양한 장치 제작

강의 영상

텔레포트 장치 만들기

발판을 블루프린트화한 후 버튼 스태틱 메시와 트리거 콜리전을 추가하였다

이후 액터 오브젝트 레퍼런스 형식의텔레포트지점이라는 변수를 만들어 뷰포트 디테일 창에서 편집할 수 있게 인스턴스 편집가능을 체크하였다.

레퍼런스 미참조 방어 스크립트

  1. 텔레포트 지점의 입력이 유효한지 IsValid 명령을 사용해 확인한다.
  2. 만약 valid하지 않으면 경고 문구를 띄우고 게임을 일시정지 시킨다.

캐릭터가 트리거에 닿을 시 텔레포트 시키기

  1. 트리거에 액터가 오버랩될 때 BP_ThirdPersonCharacter에 형변환으로 플레이어 블루프린트로 형변환을 시도해 해당 오브젝트가 플레이어인지 판별한다.
    플레이어가 아니면 이후의 명령들은 작동하지 않는다.
  2. 플레이어이면 Set Movement Mode를 이용해 캐릭터의 캐릭터의 이동모드를 None으로 설정한다.
    플레이어는 움직일 수 없는 상태가 된다.

  1. 활성화명령을 이용해 텔레포트 이펙트를 활성화시킨다.
  2. Delay명령을 이용해 3초 후에 다음 명령이 수행되도록 딜레이를 건다.
  3. 텔레포트명령을 이용해 플레이어를 지정한 위치와 방향으로 텔레포트시킨다.
    이 때 지정된 값은 Transform 형식이고, 텔레포트가 받는 값은 LocationRotation이므로 Get Actor Transform명령을 생성 후 우클릭 - 노드 펼치기를 사용해 트랜스폼을 분리시킨다.
  4. 마지막으로 Set Movement Mode를 다시 사용해 캐릭터의 이동모드를 Walking으로 바꿔 플레이어가 이동할 수 있게 해준다.

물리 기능으로 낙하하는 발판 만들기

일반적으로 스태틱 메시는 물리법칙의 적용을 받지 않는 고정된 물체이다.
이러한 스태틱 메시들에 물리법칙을 적용해 주기 위해서는 디테일 패널에서 시뮬레이트를 체크해주면 된다

콜리전 컴포넌트를 블루프린트화한 후 발판 스태틱 메시를 추가하였다.

이후에 블루프린트를 뷰포트 내에서 보기 위해 액터 게임에서 숨김 체크를 해제하고, 아이콘을 없애기 위해 에디터 빌보드 스케일을 0으로 만든다
마지막으로 트리거 박스의 디테일 내 액터 게임에서 숨김을 체크해 트리거 박스를 숨긴다

  1. 액터가 트리거에 오버랩되면 떨어지는시간 변수만큼 딜레이를 준 후 스태틱 메시의 Set Simulate Physics를 활성화해 발판을 떨어뜨린다

점프대 만들기

텔레포트와 거의 유사한 블루프린트 메시를 만든다

  1. 트리거에 액터가 오버랩될 때 BP_ThirdPersonCharacter에 형변환으로 플레이어 블루프린트로 형변환을 시도해 해당 오브젝트가 플레이어인지 판별한다.
    플레이어가 아니면 이후의 명령들은 작동하지 않는다.
  2. 플레이어이면 Add Impulse를 이용해 캐릭터에게 순간적으로 강한 힘을 준다.
    이 때 힘의 방향과 크기는 Vector3D형식으로 입력된다.
    Velocity Change를 추가되는 값이 무게를 고려하도록 한다.

미사일 함정 만들기

발사체

미사일로 사용할 구체를 블루프린트화 해준 이후 루트 컴포넌트에서 무버블설정을 해준다.

이후 발사체의 움직임을 구현해주는 ProjectileMovement컴포넌트를 추가한 후
중력의 영향을 덜 받기 위해 디테일에서 발사체 - 발사체 중력 스케일을 낮춰주고
플레이어에 닿으면 튕기게 하기 위해 발사체 바운스 - 바운스 필요를 체크한다.

게임이 시작하자마자 움직이지 않게 하기 위해 활성화 - 자동 활성화옵션을 체크해제한다.
마지막으로 맞으면 플레이어를 게임오버 시키게 하기 위해 캡슐 트리거를 추가해 실패 태그를 단다.

발판

낙하 발판과 거의 유사한 발판을 만든다

  1. 트리거에 액터가 오버랩될 때 BP_ThirdPersonCharacter에 형변환으로 플레이어 블루프린트로 형변환을 시도해 해당 오브젝트가 플레이어인지 판별한다.
    플레이어가 아니면 이후의 명령들은 작동하지 않는다.
  2. 플레이어이면 미사일 변수의 ProjectileMovement를 활성화해 미사일을 발사한다.

QnA

세이브포인트

  • SaveGame이라는 API를 이용해 슬롯을 지정하고 해당 슬롯에 내가 만든 객체의 데이터를 저장할 수 있다.

C++ 블루프린트 변환

  • 변환은 권장되지 않는다.
  • C++코드를 블루프린트에서 호출할 수 있다.
  • C++을 기반으로 삼고 그 위에 블루프린트를 얹어 사용하는 것이 좋다

원하는 모양의 콜리전

직접 블루프린트를 만드는 것이 낫다.

콘텐츠 브라우저의 우클릭으로 새 블루프린트를 만들고 해당 블루프린트에서 콜리전 컴포넌트를 추가해 루트 컴포넌트로 만들어준다.

게임 실행파일 만들기

뷰포트 창 위의 플랫폼버튼을 눌러 원하는 플랫폼으로 프로젝트 패키지를 익스포트 할 수 있다.
만들어진 게임의 시작 맵은 프로젝트 세팅 - 맵&모드 - Default Maps - 게임 기본 맵에서 설정 가능하다.

사운드 추가

전반적인 배경음을 추가할 때는 앰비언트 사운드 액터를 추가해 구현

특정 시점의 효과음을 추가할 때는 블루프린트에 오디오 컴포넌트를 추가해 구현

profile
학습한 내용을 빠르게 다시 찾기 위한 저장소

0개의 댓글