본문 바로가기

언리얼엔진/블루프린트슈팅게임만들기

총알 만들기

총알은 마우스 좌클릭을 하면 자동으로 생성되어 발사될것이다. 이후 자동으로 움직이게 된다.

유저의 키입력으로 움직이지 않으므로 부모클래스는 Pawn이 아니라 Actor면 충분하다.

ContentDrawer를 열고 +Add를 눌러 Blueprint Class를 선택후 부모로 Actor를 선택한후 이름을 BP_Bullet로 Blueprints폴더에 저장한다.

BP_Bullet를 열어 Add Component 버튼을 클릭하고 기본 외형(Base Shape)중에서 Cube를 선택하여 뷰포트에 끌어다 놓고 Scale을 다음과 같이 한다.

EventGraph를 열어 다음과 같이 만들어 주고 컴파일 해준다. BP_Player와 비슷하다.

테스트를 위해 LevelEditor 뷰포트에 BP_Bullet를 배치하고 플레이 해보면  X축으로 이동한다. Transform의 Y Rotation을 90으로 해주면  Y축으로 위로 이동할것이다. 지금 설정은 인스턴스에 임식적으로 하는 것이다.

움직임을 확인했으면 아웃라이너에서 BP_Bullet를 지워준다.

 

총알발사 입력키 바인딩하기

프로젝트세팅창 Input 탭에서 Action Mapping + 를 눌러 Fire를 추가한후 다음과 같이 마우스 Ctrl-Left클릭을 지정한다.

BP_Player블루프린트를 열어 이벤트그래프의 빈곳에 우클릭후 Fire를 입력해서 추가한다. InputActionFire로 찾을수 없다.

눌리자 마다 총알이 발사될것이므로 Pressed에서 wire를 끌어 pawn actor로 검색해서 SpawnActor from Class를 추가한다. 파라미터 1번째 class는 BP_Bullet로 지정합니다.

2번째 Spawn Transform은 생성될 위치인데 총구위치인데 임시로 Arrow를 추가해 설정해 보겠습니다. Components +Add를 클릭 arrow를 검색 추가후 F2를 눌러 이름을 FirePosition으로 합니다. 

화살표가 오른쪽을 향하고 있어 y rotation을 90으로 설정해 위로 향하게 합니다. Z Location도 100으로 해서 약간 위로 올려보내줍니다.

이벤트그래프에서 우클릭후 world trnas를 입력해서 Set World Trnasform (FirePosition)을 클릭해서 노드가 추가되면 Spawn Trnasform핀에 연결해준다.

3번째 Collision Handling Override는 Always Spawn, Ignore Collisions로 한다. 생성시 다른 액터가 있어서 충돌이벤트가 일어나는걸 방지하기 위해서다.

컴파일후 마우스 좌클릭을 하면 잘 발사 된다.

총알발사음 넣기

언생언리얼교과서 공식 깃허브 자료실/2장으로가서 start-wars-blaster.WAV파일을 누르고 

https://github.com/araxrlab/lifeunreal

 

GitHub - araxrlab/lifeunreal: 인생 언리얼 교과서 공식 예제

인생 언리얼 교과서 공식 예제. Contribute to araxrlab/lifeunreal development by creating an account on GitHub.

github.com

오른쪽 다운로드를 누르면 받을수 있다.

다운받은 음원을 Content폴더밑에 Audio폴더를 만들고 끌어다 놓으면 아이콘이 보이고 플레이 해보면 총소리가 들립니다. 자주발사해야해서 더블클릭후 나오는 팝업에서 Sound Volume을 0.2로 줄여줍니다.

BP_Player 블루프린트 이벤트그래프에 다음과 같이 Play Sound 2D를 추가해주고 컴파일후 플레이해보면 총소리가 들립니다. 소리를 재생하는 기능은 Play Sound at Location 과 같은 거리표현이 가능한 노드도 있지만 단순 2D게임이므로 Play Sound 2D를 사용하였습니다.

'언리얼엔진 > 블루프린트슈팅게임만들기' 카테고리의 다른 글

충돌(Collision) 처리하기  (0) 2023.10.09
적 Enemy 만들기  (0) 2023.10.09
Player만들기  (0) 2023.10.08
프로젝트 만들기  (0) 2023.10.08