본문 바로가기

게임프로젝트/슈팅게임 블루프린트

(9)          글쓰기    
Unreal Shooting Game 패키징하기 우선 프로젝트세팅을 열고 메인 레벨을 지정합니다.Packaging을 선택하고  옵션을 선택합니다. 현재는 Development용으로 가볍게 합니다. 출시용으로는 Shipping 이나, Full Rebuild를 체크해야 합니다.Supported Platforms 카테고리에서 필요한 플랫폼을 체크합니다.프로젝트세팅을 닫고 에디터 가운데 위를 보면 Platforms를 열어 PakageProject를 선택하면  폴더창이 뜨고 폴더를 선택해주면 됩니다.에디터 오른쪽 아래 팜업창이 뜨고 진행됩니다.전 다음과 같은 에러가 나네요LogCook: Error: GlobalDefaultGameMode contains a redirected reference '/Game/Shooting/GM_Shooting'.GM_Shoot..
베타타입 버전 Shooting Game, SaveGame, Score 최고점수를 기록하고 불러오는 로직을 작성해 보겠습니다. WBP_Main을 열고 HoriozontalBox를 선택하고 Ctrl-D를 누르면 자식까지 복사됩니다. 텍스트를 변경합니다.최고점수 갱신하기점수를 획득할때 마다 최고 점수와 비교해 큰 경우 Best를 갱신해 줍니다.점수는 게임모드에서 저장하고 있으니 게임모드GM_Shooting 에서 갱신하겠습니다. 점수의 갱신은 BP_Bullet에서 적과 충돌할때 게임모드의 AddScore함수를 Call 했으므로 게임모드내 AddScore함수를 변경하면 됩니다.GM_Score 변수에 최고 점수를 담을 BestScore변수를 Integer로 마련합니다.AddScore 함수안에 CurrentScore를 저장후 다음 노드를 추가해 줍니다. Current가 Best보다 크..
점수 UI 제작하기 점수는 어디인가 저장되고 계산되어야 합니다.게임 전반의 관리를 GameModeBase에서 실행합니다.이전에 만들었던 GM_Shooting을 엽니다.Integer로 CurrentScore 변수를 만들고AddScore라는 함수를 만들고 Inputs+를 눌러 Integer Type의 Point입력을 만들어 줍니다.다음과 같이 함수를 만들어 줍니다.AddScore를 사용해야할 곳은 적과의 충돌을 관리하는 BP_Bullet입니다.BP_Bullet을 열어 Event ActorBeginOverlap 노드 뒤에 addScore함수를 추가합니다. 이 함수는 GM_Shooting의 메소드이므로 캐스트해서 사용합니다.widget_blueprint를 하나 만들고 이름을 WBP_Main으로 합니다.Cavas를 추가하고 해상도를..
알파 버전 스태틱메시 교체 https://github.com/araxrlab/lifeunreal/blob/main/%EC%9E%90%EB%A3%8C%EC%8B%A4/2%EC%9E%A5/SpaceShip.zip lifeunreal/자료실/2장/SpaceShip.zip at main · araxrlab/lifeunreal인생 언리얼 교과서 공식 예제. Contribute to araxrlab/lifeunreal development by creating an account on GitHub.github.comSpaceShip을 다운받아UV머터리얼을 열어 정리해주고BP_Ship을 열어 Cube 컴포넌트의 StaticMesh와 Materials를 교체합니다.스케일 로테이션 조정합니다.위 사이트에서 드론을 다운로드 합니다. 언리얼에디터에 ..
배경 만들기 M_Background 머터리얼을 만듭니다. 모드를 UnLit으로 합니다 그럼 EmmisiveColor만 남습니다. 이유는 배경이 조명과 반사되지 않게 하기 위해서입니다.언리얼의 텍스쳐를 이용했습니다. 교재에서는 우주그림을 찾아 사용했네요  플레이시 배경의 그림자가 눈에 거슬린다면 DirectionalLight의 CastShadows를 꺼줍니다.
충돌처리 Collision 액터들의 충돌처리를 해줍니다.BP_Bullet을 열고 Box Collision을 추가하고 root로 해줍니다. Shape Extent를 조정해 박스를 싸줍니다. BP_Enemy를 열고 역시 BoxCollisoin을 추가하고 루트로 만들고 사이즈롤 설정합니다.BP_Ship을 열고 같은 작업을 해줍니다.Project Setting의 Engine>Collision 카타고리에서 ObjectChannels의 NewObjectChannel을 3개 만듭니다.BP_Bullet열고  Box컴포넌트를 선택후 Collision Presets를 Custom ObjectType을 Bullet, Responses를 Enemy만 Overlap으로하고 나머지는 Ignore로 합니다. QueryOnly로도 문제 없지만 나중을 위해  ..
Enemy, Factory 제작하기 액터를 부모로  BP_Enemy를 제작합니다.Cube를 컴포넌트로 넣어주고 speed 변수를 float로 추가하고 BP_Bullet을 블루프린트를 복사해 옵니다.Speed노드를 우클릭후 Create variable speed 해주어도 변수가 만들어 집니다. 컴파일후 디폴트값을 150으로 합니다.Ship이 총알을 Spawn했듯이 적을 Spawn할 Manager가 필요합니다. Actor를 부모로 BP_EnemyFactory 블루프린트를 만듭니다. 화면에 표시할게 없으므로 컴포넌트를 추가할 필요는 없습니다. 변수를 만들고 컴파일후 delayTime 디폴트를 5초로 합니다.발사할 위치를 정하기 위해 Arrow를 추가하고 아래로 향하게 회전시켜줍니다.정해진 시간마다 적을 생성하기 위해서는 타이머가 필요합니다. T..
슈팅게임 - 총알발사 액터를 부모로 BP_Bullet을 만듭니다.컴포넌트로 큐브를 추가하고스케일을 조정합니다.speed변수를 float로 만들고 컴파일후 디폴트를 200으로 합니다. 다음과 같이 블루프린트를 입력합니다.노드를 잘보면 입력을 받았을때는 입력 벡터를 기준으로 날라 갔지만 지금은 총알 스스로 앞으로 나가기 위해 forward 벡터값을 활용합니다. BP_bullet을 레벨에 플레이어와 겹치지 않게 옆으로 배치하고 플레이해보면 혼자 앞으로 움직입니다 언리얼은 x방향이 forward입니다. 실제 총알은 위로 날라가야 하므로 이건 나중에 설정하겠습니다.레벨의 BP_Bullet는 지워줍니다. 총알발사 입력때 생성해서 날라가게 해주겠습니다. 총알을 발사하기 위한 인풋액션이 필요합니다. IA_ShipFire를 만들어주겠습니다 ..
Enhancement Input Blueprint, Pawn 이동 인생언리얼5가 새로 나와 한번 따라해보왔다. 이영호선생님 책은 쉽고 깔끔하게 쓰는것 같다.뉴레벨을 만들고 베이직을 선택하고 LV_Shooting을 저장합니다.키보드의 입력을 받기위해서 언리얼은 EnhancedInput System을 마련했다.Input Folder를 만들고 우선 InputAction을 만들어보자. 이름은 thirdPerson폴더의 이름과 다르게 하기위해 IA_ShipMoveValue Type을 Axis2D로 하자. InputAction의 변수 타입정도만 맞추면 되는것 같다.실제 키보드 맵핑을 할 InputMappingContext를 만들자WASD버튼을 누르면서 키보드 아이콘을  클릭하면 설정되고  비페이비어를 설정하자. 인풋이 XYZ로 들어오기 때문에 Y를 받기위해 Swizzle(벡터요소..