분류 전체보기 269

언리얼엔진 강좌 74 [쥐를잡자-10] 쥐 다 잡았으면 다시 새 게임 시작

쥐를 잡자 찍찍찍 프로그램의 마무리입니다. 쥐를 잡는 동안 MC도 남의 쥐의 수를 계산하고, 플레이어도 남은 쥐의 수를 계산합니다. 이렇게 쥐의 수를 하나씩 빼 나가다가 쥐의 수가 0이 되면 플레이어는 만세를 부르고 MC는 새 게임을 다시 시작합니다. 새 게임을 다시 시작하기 위해 쥐의 수를 새로 정하고 각 플레이어들에게 알려주고 다음 플레이어가 누구인지 알려주며 게임을 새로 시작합니다. https://www.youtube.com/watch?v=TnDOfQy61lI&list=PLtmQsn29mAv9wq6s0BiUhusYW3dVrN7YS&index=10

언리얼엔진 강좌 72 [쥐를잡자-08] 내 선택을 다른 플레이어에게 알리기

사람이 쥐를잡자 찍찍찍 게임을 하면 말로 잡았다 놓쳤다를 하면서 나의 선택을 다른 플레이어들에게 쉽게 알려줄 수 있지만 컴퓨터 게임에서는 말로 하는 게 아니기 때문에 뭔가 내 선택을 다른 사람에게 알리는 방법을 생각해야 합니다. 이전 시간에 MC가 나한테서 이벤트가 발생하는지 기다리고 있다가, 나의 선택을 이벤트로 발생시키면 이 이벤트를 읽어 나의 선택이 뭐였는지를 MC가 알게되는 데까지 진행했습니다. 이번 시간에는 그렇게 나의 선택이 뭔지 알게된 MC가 전체 플레이어들에게 나의 선택을 알려주는 데까지 진행합니다. https://www.youtube.com/watch?v=qNe6R-3h5Ac&list=PLtmQsn29mAv9wq6s0BiUhusYW3dVrN7YS&index=8

언리얼엔진 강좌 71 [쥐를잡자-07] 플레이어가 자기 선택으로 이벤트 발생시키기

각 플레이어는 자기 순서가 되면 잡았다나 놓쳤다를 랜덤으로 선택합니다. 그리고 내가 지금 잡았다를 선택했는지 놓쳤다를 선택했는지 다른 플레이어들에게 알려야 하는데, 우리는 가장 쉬운 방법으로, 나의 선택을 MC에게 알리고, MC는 다시 모든 플레이어들에게 알려줍니다. (나를 포함한) 다른 플레이어들의 선택을 MC로부터 받으면, 계산에 들어갑니다. 이게 "잡았다" 이면 내가 그 동안 계산했던, 남은 쥐의 수에서 1을 빼고, '놓쳤다"면 그냥 아무 것도 안합니다. 플레이어가 자기 순서가 되어 잡았다 혹은 놓쳤다를 한 선택을 MC에게 알려주기 위해 이벤트를 발생시킵니다. "나 잡았다 선택했다" 라는 이벤트를 발생시키면, MC가 이 이벤트 발생하는 걸 듣고 자기가 가진 쥐의 수를 하나 빼고 다른 플레이어들에게도..

언리얼엔진 강좌 70 [쥐를잡자-06] 내 순서가 되면 잡았다 혹은 놓쳤다 결정하기

MC가 이번엔 몇 번쨰 플레이어가 할 차례다 라고 하면 그게 내 순서인지 확인한 다음 내 순서가 아니면 그냥 무시하고 가만 있고, 내 순서면 잡았다 혹은 놓쳤다 둘 중 하나를 선택합니다. 이 때 블루프린트의 Random Integer In Range 함수를 이용합니다. 0-1 사이의 숫자를 랜덤으로 만들고, 0이면 잡았다이고, 1이면 놓쳤다로 생각합니다. 실제로 사람이 이 게임을 하면 플레이어간 약 1초 정도 사이를 두고 진행됩니다. 세마리! - 1초 - 잡았다 - 1초 - 놓쳤다 - 1초 - 잡았다 - 1초 - 잡았다 - 1초 - 만세 이렇게 각 플레이어마다 1초 정도 사이가 있는거죠. 그래서 이 게임에서도 이용해 1초 뒤에 행동을 하도록 타이머를 둡니다. https://www.youtube.com/w..

언리얼엔진 강좌 69 [쥐를잡자-05] 다음 사람은 너다 - 게임 진행하기

먼저 모든 플레이어에게 자기가 몇 번째 순서인지를 미리 설정해 둡니다. 0, 1, 2, 3, 4로 zero base로 정해줍니다. MC의 역할 중 하나는 게임을 진행하는 것입니다. 모든 플레이어들에게 지금 잡았다 혹은 놓쳤다를 외쳐야 하는 플레이어는 누구라고 알려줘야 합니다. 그 기능을 하기 위해 MC는 내부에 integer 형의 변수를 하나 가지고 그 값을 계속 증가시켜 나갑니다. 이렇게 하면 처음 한 번은 0, 1, 2, 3, 4 의 숫자가 나올테니, 그 숫자에 맞게 각각 잡았다 혹은 놓쳤다를 하면 되는데, 숫자가 5가 되면, 5번째 플레이어는 없기 때문에 더 이상 진행을 할 수가 없게 됩니다. 이럴 때 쓰는 방법이 나머지 함수를 쓰는 겁니다. 어떤 숫자든지 5로 나누면 그 나눗셈의 나머지는 무조건 ..

언리얼엔진 강좌 68 [쥐를잡자-04] 게임 초기화하기

게임 진행을 위해 MC를 새로 만듭니다. MC는 다음의 일을 합니다. - 잡아야 하는 쥐의 수를 정합니다. - 모든 플레이어에게 쥐의 수를 알려줍니다. 또 더 해야 하는 일은 강의 진도에 맞게 또 알려드리겠습니다. MC가 모든 플레이어에게 쥐의 수를 알려주기 위해 MC에게 이런 식으로 모든 플레이어가 누구인지 알려줘야 합니다. 그럼 이렇게 5마리의 플레이어에게 쥐의 수를 알려줄 수 있게 됩니다. 이번 강의에서는 이렇게 각 플레이어에게 쥐의 수를 알려주는 데까지 진행합니다. https://youtu.be/X5iDQaBs9YE

언리얼엔진 강좌 67 [쥐를잡자-03] 포즈를 보여주는 함수 만들기

이전 시간에 팔을 3개 만들어 놓고 시작했는데, 사실 그렇게는 쓸 수가 없죠. 그래서 필요한 팔만 보여주고 나머지는 모두 감추는 blueprint 함수, setPose 함수를 만듭니다. 그리고 이렇게 하다보면 한번 등장했던 팔이 없어지지 않고 계속 남는 문제가 있어 모든 팔을 안보이게 해주는 removeAllPose 함수도 만들어 줍니다. 그리고 J 버튼을 누르면 잡았다 동작이 보여지도록 하고, K 버튼을 누르면 놓쳤다. L 버튼을 누르면 만세 동작이 보여지도록 해서 setPose 함수가 잘 동작하는지 테스트 해 봅니다.

언리얼엔진 강좌 65 [쥐를잡자-01] 쥐를잡자 찍찍찍 계획, 설계

신서유기라는 예능 프로에서 "쥐를잡자 쥐를잡자 찍찍찍" 게임 하는 것을 보고 언리얼엔진4 블루프린트로 개발해 보고 싶어 만들어 봤습니다. https://www.youtube.com/watch?v=xtp-KtxzVfY 쥐를잡자 찍찍찍의 룰을 간단하게 설명하면, 첫번째 사람이 잡아야 할 쥐의 수를 말하고 (예: 다섯마리!) 그 다음 사람부터 "잡았다" 혹은 "놓쳤다"를 말합니다. 만약 "잡았다"라고 말했다면 마음 속으로 쥐의 수를 하나 줄여줍니다. (예: 5 - 1 = 4마리 남음) 이런 식으로 쭉 진행하다 쥐를 다 잡아서 쥐가 0마리가 되면 "만세"라고 하면 됩니다. 이 게임은 블루프린트 버전으로 만들고, C++ 버전으로도 만들어 올릴 계획입니다.